blob: 7c96c97e118903895f572c071e5dfe52edd5afb9 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/* DO NOT EDIT. Generated from components/cronet/native/generated/cronet.idl */
#include "components/cronet/native/generated/cronet.idl_c.h"
#include "base/logging.h"
#include "base/macros.h"
#include "testing/gtest/include/gtest/gtest.h"
// Test of Cronet_Buffer interface.
class Cronet_BufferTest : public ::testing::Test {
protected:
void SetUp() override {}
void TearDown() override {}
Cronet_BufferTest() = default;
~Cronet_BufferTest() override = default;
public:
bool InitWithDataAndCallback_called_ = false;
bool InitWithAlloc_called_ = false;
bool GetSize_called_ = false;
bool GetData_called_ = false;
private:
DISALLOW_COPY_AND_ASSIGN(Cronet_BufferTest);
};
namespace {
// Implementation of Cronet_Buffer methods for testing.
void TestCronet_Buffer_InitWithDataAndCallback(
Cronet_BufferPtr self,
Cronet_RawDataPtr data,
uint64_t size,
Cronet_BufferCallbackPtr callback) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Buffer_GetClientContext(self);
auto* test = static_cast<Cronet_BufferTest*>(client_context);
CHECK(test);
test->InitWithDataAndCallback_called_ = true;
}
void TestCronet_Buffer_InitWithAlloc(Cronet_BufferPtr self, uint64_t size) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Buffer_GetClientContext(self);
auto* test = static_cast<Cronet_BufferTest*>(client_context);
CHECK(test);
test->InitWithAlloc_called_ = true;
}
uint64_t TestCronet_Buffer_GetSize(Cronet_BufferPtr self) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Buffer_GetClientContext(self);
auto* test = static_cast<Cronet_BufferTest*>(client_context);
CHECK(test);
test->GetSize_called_ = true;
return static_cast<uint64_t>(0);
}
Cronet_RawDataPtr TestCronet_Buffer_GetData(Cronet_BufferPtr self) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Buffer_GetClientContext(self);
auto* test = static_cast<Cronet_BufferTest*>(client_context);
CHECK(test);
test->GetData_called_ = true;
return static_cast<Cronet_RawDataPtr>(0);
}
} // namespace
// Test that Cronet_Buffer stub forwards function calls as expected.
TEST_F(Cronet_BufferTest, TestCreate) {
Cronet_BufferPtr test = Cronet_Buffer_CreateWith(
TestCronet_Buffer_InitWithDataAndCallback,
TestCronet_Buffer_InitWithAlloc, TestCronet_Buffer_GetSize,
TestCronet_Buffer_GetData);
CHECK(test);
Cronet_Buffer_SetClientContext(test, this);
CHECK(!InitWithDataAndCallback_called_);
CHECK(!InitWithAlloc_called_);
Cronet_Buffer_GetSize(test);
CHECK(GetSize_called_);
Cronet_Buffer_GetData(test);
CHECK(GetData_called_);
Cronet_Buffer_Destroy(test);
}
// Test of Cronet_BufferCallback interface.
class Cronet_BufferCallbackTest : public ::testing::Test {
protected:
void SetUp() override {}
void TearDown() override {}
Cronet_BufferCallbackTest() = default;
~Cronet_BufferCallbackTest() override = default;
public:
bool OnDestroy_called_ = false;
private:
DISALLOW_COPY_AND_ASSIGN(Cronet_BufferCallbackTest);
};
namespace {
// Implementation of Cronet_BufferCallback methods for testing.
void TestCronet_BufferCallback_OnDestroy(Cronet_BufferCallbackPtr self,
Cronet_BufferPtr buffer) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_BufferCallback_GetClientContext(self);
auto* test = static_cast<Cronet_BufferCallbackTest*>(client_context);
CHECK(test);
test->OnDestroy_called_ = true;
}
} // namespace
// Test that Cronet_BufferCallback stub forwards function calls as expected.
TEST_F(Cronet_BufferCallbackTest, TestCreate) {
Cronet_BufferCallbackPtr test =
Cronet_BufferCallback_CreateWith(TestCronet_BufferCallback_OnDestroy);
CHECK(test);
Cronet_BufferCallback_SetClientContext(test, this);
CHECK(!OnDestroy_called_);
Cronet_BufferCallback_Destroy(test);
}
// Test of Cronet_Runnable interface.
class Cronet_RunnableTest : public ::testing::Test {
protected:
void SetUp() override {}
void TearDown() override {}
Cronet_RunnableTest() = default;
~Cronet_RunnableTest() override = default;
public:
bool Run_called_ = false;
private:
DISALLOW_COPY_AND_ASSIGN(Cronet_RunnableTest);
};
namespace {
// Implementation of Cronet_Runnable methods for testing.
void TestCronet_Runnable_Run(Cronet_RunnablePtr self) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Runnable_GetClientContext(self);
auto* test = static_cast<Cronet_RunnableTest*>(client_context);
CHECK(test);
test->Run_called_ = true;
}
} // namespace
// Test that Cronet_Runnable stub forwards function calls as expected.
TEST_F(Cronet_RunnableTest, TestCreate) {
Cronet_RunnablePtr test = Cronet_Runnable_CreateWith(TestCronet_Runnable_Run);
CHECK(test);
Cronet_Runnable_SetClientContext(test, this);
Cronet_Runnable_Run(test);
CHECK(Run_called_);
Cronet_Runnable_Destroy(test);
}
// Test of Cronet_Executor interface.
class Cronet_ExecutorTest : public ::testing::Test {
protected:
void SetUp() override {}
void TearDown() override {}
Cronet_ExecutorTest() = default;
~Cronet_ExecutorTest() override = default;
public:
bool Execute_called_ = false;
private:
DISALLOW_COPY_AND_ASSIGN(Cronet_ExecutorTest);
};
namespace {
// Implementation of Cronet_Executor methods for testing.
void TestCronet_Executor_Execute(Cronet_ExecutorPtr self,
Cronet_RunnablePtr command) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Executor_GetClientContext(self);
auto* test = static_cast<Cronet_ExecutorTest*>(client_context);
CHECK(test);
test->Execute_called_ = true;
}
} // namespace
// Test that Cronet_Executor stub forwards function calls as expected.
TEST_F(Cronet_ExecutorTest, TestCreate) {
Cronet_ExecutorPtr test =
Cronet_Executor_CreateWith(TestCronet_Executor_Execute);
CHECK(test);
Cronet_Executor_SetClientContext(test, this);
CHECK(!Execute_called_);
Cronet_Executor_Destroy(test);
}
// Test of Cronet_Engine interface.
class Cronet_EngineTest : public ::testing::Test {
protected:
void SetUp() override {}
void TearDown() override {}
Cronet_EngineTest() = default;
~Cronet_EngineTest() override = default;
public:
bool StartWithParams_called_ = false;
bool StartNetLogToFile_called_ = false;
bool StopNetLog_called_ = false;
bool Shutdown_called_ = false;
bool GetVersionString_called_ = false;
bool GetDefaultUserAgent_called_ = false;
private:
DISALLOW_COPY_AND_ASSIGN(Cronet_EngineTest);
};
namespace {
// Implementation of Cronet_Engine methods for testing.
Cronet_RESULT TestCronet_Engine_StartWithParams(Cronet_EnginePtr self,
Cronet_EngineParamsPtr params) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Engine_GetClientContext(self);
auto* test = static_cast<Cronet_EngineTest*>(client_context);
CHECK(test);
test->StartWithParams_called_ = true;
return static_cast<Cronet_RESULT>(0);
}
bool TestCronet_Engine_StartNetLogToFile(Cronet_EnginePtr self,
Cronet_String file_name,
bool log_all) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Engine_GetClientContext(self);
auto* test = static_cast<Cronet_EngineTest*>(client_context);
CHECK(test);
test->StartNetLogToFile_called_ = true;
return static_cast<bool>(0);
}
void TestCronet_Engine_StopNetLog(Cronet_EnginePtr self) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Engine_GetClientContext(self);
auto* test = static_cast<Cronet_EngineTest*>(client_context);
CHECK(test);
test->StopNetLog_called_ = true;
}
Cronet_RESULT TestCronet_Engine_Shutdown(Cronet_EnginePtr self) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Engine_GetClientContext(self);
auto* test = static_cast<Cronet_EngineTest*>(client_context);
CHECK(test);
test->Shutdown_called_ = true;
return static_cast<Cronet_RESULT>(0);
}
Cronet_String TestCronet_Engine_GetVersionString(Cronet_EnginePtr self) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Engine_GetClientContext(self);
auto* test = static_cast<Cronet_EngineTest*>(client_context);
CHECK(test);
test->GetVersionString_called_ = true;
return static_cast<Cronet_String>(0);
}
Cronet_String TestCronet_Engine_GetDefaultUserAgent(Cronet_EnginePtr self) {
CHECK(self);
Cronet_ClientContext client_context = Cronet_Engine_GetClientContext(self);
auto* test = static_cast<Cronet_EngineTest*>(client_context);
CHECK(test);
test->GetDefaultUserAgent_called_ = true;
return static_cast<Cronet_String>(0);
}
} // namespace
// Test that Cronet_Engine stub forwards function calls as expected.
TEST_F(Cronet_EngineTest, TestCreate) {
Cronet_EnginePtr test = Cronet_Engine_CreateWith(
TestCronet_Engine_StartWithParams, TestCronet_Engine_StartNetLogToFile,
TestCronet_Engine_StopNetLog, TestCronet_Engine_Shutdown,
TestCronet_Engine_GetVersionString,
TestCronet_Engine_GetDefaultUserAgent);
CHECK(test);
Cronet_Engine_SetClientContext(test, this);
CHECK(!StartWithParams_called_);
CHECK(!StartNetLogToFile_called_);
Cronet_Engine_StopNetLog(test);
CHECK(StopNetLog_called_);
Cronet_Engine_Shutdown(test);
CHECK(Shutdown_called_);
Cronet_Engine_GetVersionString(test);
CHECK(GetVersionString_called_);
Cronet_Engine_GetDefaultUserAgent(test);
CHECK(GetDefaultUserAgent_called_);
Cronet_Engine_Destroy(test);
}
// Test of Cronet_UrlRequestStatusListener interface.
class Cronet_UrlRequestStatusListenerTest : public ::testing::Test {
protected:
void SetUp() override {}
void TearDown() override {}
Cronet_UrlRequestStatusListenerTest() = default;
~Cronet_UrlRequestStatusListenerTest() override = default;
public:
bool OnStatus_called_ = false;
private:
DISALLOW_COPY_AND_ASSIGN(Cronet_UrlRequestStatusListenerTest);
};
namespace {
// Implementation of Cronet_UrlRequestStatusListener methods for testing.
void TestCronet_UrlRequestStatusListener_OnStatus(
Cronet_UrlRequestStatusListenerPtr self,
Cronet_UrlRequestStatusListener_Status status) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequestStatusListener_GetClientContext(self);
auto* test =
static_cast<Cronet_UrlRequestStatusListenerTest*>(client_context);
CHECK(test);
test->OnStatus_called_ = true;
}
} // namespace
// Test that Cronet_UrlRequestStatusListener stub forwards function calls as
// expected.
TEST_F(Cronet_UrlRequestStatusListenerTest, TestCreate) {
Cronet_UrlRequestStatusListenerPtr test =
Cronet_UrlRequestStatusListener_CreateWith(
TestCronet_UrlRequestStatusListener_OnStatus);
CHECK(test);
Cronet_UrlRequestStatusListener_SetClientContext(test, this);
CHECK(!OnStatus_called_);
Cronet_UrlRequestStatusListener_Destroy(test);
}
// Test of Cronet_UrlRequestCallback interface.
class Cronet_UrlRequestCallbackTest : public ::testing::Test {
protected:
void SetUp() override {}
void TearDown() override {}
Cronet_UrlRequestCallbackTest() = default;
~Cronet_UrlRequestCallbackTest() override = default;
public:
bool OnRedirectReceived_called_ = false;
bool OnResponseStarted_called_ = false;
bool OnReadCompleted_called_ = false;
bool OnSucceeded_called_ = false;
bool OnFailed_called_ = false;
bool OnCanceled_called_ = false;
private:
DISALLOW_COPY_AND_ASSIGN(Cronet_UrlRequestCallbackTest);
};
namespace {
// Implementation of Cronet_UrlRequestCallback methods for testing.
void TestCronet_UrlRequestCallback_OnRedirectReceived(
Cronet_UrlRequestCallbackPtr self,
Cronet_UrlRequestPtr request,
Cronet_UrlResponseInfoPtr info,
Cronet_String new_location_url) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequestCallback_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestCallbackTest*>(client_context);
CHECK(test);
test->OnRedirectReceived_called_ = true;
}
void TestCronet_UrlRequestCallback_OnResponseStarted(
Cronet_UrlRequestCallbackPtr self,
Cronet_UrlRequestPtr request,
Cronet_UrlResponseInfoPtr info) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequestCallback_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestCallbackTest*>(client_context);
CHECK(test);
test->OnResponseStarted_called_ = true;
}
void TestCronet_UrlRequestCallback_OnReadCompleted(
Cronet_UrlRequestCallbackPtr self,
Cronet_UrlRequestPtr request,
Cronet_UrlResponseInfoPtr info,
Cronet_BufferPtr buffer,
uint64_t bytes_read) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequestCallback_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestCallbackTest*>(client_context);
CHECK(test);
test->OnReadCompleted_called_ = true;
}
void TestCronet_UrlRequestCallback_OnSucceeded(
Cronet_UrlRequestCallbackPtr self,
Cronet_UrlRequestPtr request,
Cronet_UrlResponseInfoPtr info) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequestCallback_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestCallbackTest*>(client_context);
CHECK(test);
test->OnSucceeded_called_ = true;
}
void TestCronet_UrlRequestCallback_OnFailed(Cronet_UrlRequestCallbackPtr self,
Cronet_UrlRequestPtr request,
Cronet_UrlResponseInfoPtr info,
Cronet_ErrorPtr error) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequestCallback_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestCallbackTest*>(client_context);
CHECK(test);
test->OnFailed_called_ = true;
}
void TestCronet_UrlRequestCallback_OnCanceled(Cronet_UrlRequestCallbackPtr self,
Cronet_UrlRequestPtr request,
Cronet_UrlResponseInfoPtr info) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequestCallback_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestCallbackTest*>(client_context);
CHECK(test);
test->OnCanceled_called_ = true;
}
} // namespace
// Test that Cronet_UrlRequestCallback stub forwards function calls as expected.
TEST_F(Cronet_UrlRequestCallbackTest, TestCreate) {
Cronet_UrlRequestCallbackPtr test = Cronet_UrlRequestCallback_CreateWith(
TestCronet_UrlRequestCallback_OnRedirectReceived,
TestCronet_UrlRequestCallback_OnResponseStarted,
TestCronet_UrlRequestCallback_OnReadCompleted,
TestCronet_UrlRequestCallback_OnSucceeded,
TestCronet_UrlRequestCallback_OnFailed,
TestCronet_UrlRequestCallback_OnCanceled);
CHECK(test);
Cronet_UrlRequestCallback_SetClientContext(test, this);
CHECK(!OnRedirectReceived_called_);
CHECK(!OnResponseStarted_called_);
CHECK(!OnReadCompleted_called_);
CHECK(!OnSucceeded_called_);
CHECK(!OnFailed_called_);
CHECK(!OnCanceled_called_);
Cronet_UrlRequestCallback_Destroy(test);
}
// Test of Cronet_UploadDataSink interface.
class Cronet_UploadDataSinkTest : public ::testing::Test {
protected:
void SetUp() override {}
void TearDown() override {}
Cronet_UploadDataSinkTest() = default;
~Cronet_UploadDataSinkTest() override = default;
public:
bool OnReadSucceeded_called_ = false;
bool OnReadError_called_ = false;
bool OnRewindSucceeded_called_ = false;
bool OnRewindError_called_ = false;
private:
DISALLOW_COPY_AND_ASSIGN(Cronet_UploadDataSinkTest);
};
namespace {
// Implementation of Cronet_UploadDataSink methods for testing.
void TestCronet_UploadDataSink_OnReadSucceeded(Cronet_UploadDataSinkPtr self,
uint64_t bytes_read,
bool final_chunk) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UploadDataSink_GetClientContext(self);
auto* test = static_cast<Cronet_UploadDataSinkTest*>(client_context);
CHECK(test);
test->OnReadSucceeded_called_ = true;
}
void TestCronet_UploadDataSink_OnReadError(Cronet_UploadDataSinkPtr self,
Cronet_String error_message) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UploadDataSink_GetClientContext(self);
auto* test = static_cast<Cronet_UploadDataSinkTest*>(client_context);
CHECK(test);
test->OnReadError_called_ = true;
}
void TestCronet_UploadDataSink_OnRewindSucceeded(
Cronet_UploadDataSinkPtr self) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UploadDataSink_GetClientContext(self);
auto* test = static_cast<Cronet_UploadDataSinkTest*>(client_context);
CHECK(test);
test->OnRewindSucceeded_called_ = true;
}
void TestCronet_UploadDataSink_OnRewindError(Cronet_UploadDataSinkPtr self,
Cronet_String error_message) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UploadDataSink_GetClientContext(self);
auto* test = static_cast<Cronet_UploadDataSinkTest*>(client_context);
CHECK(test);
test->OnRewindError_called_ = true;
}
} // namespace
// Test that Cronet_UploadDataSink stub forwards function calls as expected.
TEST_F(Cronet_UploadDataSinkTest, TestCreate) {
Cronet_UploadDataSinkPtr test = Cronet_UploadDataSink_CreateWith(
TestCronet_UploadDataSink_OnReadSucceeded,
TestCronet_UploadDataSink_OnReadError,
TestCronet_UploadDataSink_OnRewindSucceeded,
TestCronet_UploadDataSink_OnRewindError);
CHECK(test);
Cronet_UploadDataSink_SetClientContext(test, this);
CHECK(!OnReadSucceeded_called_);
CHECK(!OnReadError_called_);
Cronet_UploadDataSink_OnRewindSucceeded(test);
CHECK(OnRewindSucceeded_called_);
CHECK(!OnRewindError_called_);
Cronet_UploadDataSink_Destroy(test);
}
// Test of Cronet_UploadDataProvider interface.
class Cronet_UploadDataProviderTest : public ::testing::Test {
protected:
void SetUp() override {}
void TearDown() override {}
Cronet_UploadDataProviderTest() = default;
~Cronet_UploadDataProviderTest() override = default;
public:
bool GetLength_called_ = false;
bool Read_called_ = false;
bool Rewind_called_ = false;
bool Close_called_ = false;
private:
DISALLOW_COPY_AND_ASSIGN(Cronet_UploadDataProviderTest);
};
namespace {
// Implementation of Cronet_UploadDataProvider methods for testing.
int64_t TestCronet_UploadDataProvider_GetLength(
Cronet_UploadDataProviderPtr self) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UploadDataProvider_GetClientContext(self);
auto* test = static_cast<Cronet_UploadDataProviderTest*>(client_context);
CHECK(test);
test->GetLength_called_ = true;
return static_cast<int64_t>(0);
}
void TestCronet_UploadDataProvider_Read(
Cronet_UploadDataProviderPtr self,
Cronet_UploadDataSinkPtr upload_data_sink,
Cronet_BufferPtr buffer) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UploadDataProvider_GetClientContext(self);
auto* test = static_cast<Cronet_UploadDataProviderTest*>(client_context);
CHECK(test);
test->Read_called_ = true;
}
void TestCronet_UploadDataProvider_Rewind(
Cronet_UploadDataProviderPtr self,
Cronet_UploadDataSinkPtr upload_data_sink) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UploadDataProvider_GetClientContext(self);
auto* test = static_cast<Cronet_UploadDataProviderTest*>(client_context);
CHECK(test);
test->Rewind_called_ = true;
}
void TestCronet_UploadDataProvider_Close(Cronet_UploadDataProviderPtr self) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UploadDataProvider_GetClientContext(self);
auto* test = static_cast<Cronet_UploadDataProviderTest*>(client_context);
CHECK(test);
test->Close_called_ = true;
}
} // namespace
// Test that Cronet_UploadDataProvider stub forwards function calls as expected.
TEST_F(Cronet_UploadDataProviderTest, TestCreate) {
Cronet_UploadDataProviderPtr test = Cronet_UploadDataProvider_CreateWith(
TestCronet_UploadDataProvider_GetLength,
TestCronet_UploadDataProvider_Read, TestCronet_UploadDataProvider_Rewind,
TestCronet_UploadDataProvider_Close);
CHECK(test);
Cronet_UploadDataProvider_SetClientContext(test, this);
Cronet_UploadDataProvider_GetLength(test);
CHECK(GetLength_called_);
CHECK(!Read_called_);
CHECK(!Rewind_called_);
Cronet_UploadDataProvider_Close(test);
CHECK(Close_called_);
Cronet_UploadDataProvider_Destroy(test);
}
// Test of Cronet_UrlRequest interface.
class Cronet_UrlRequestTest : public ::testing::Test {
protected:
void SetUp() override {}
void TearDown() override {}
Cronet_UrlRequestTest() = default;
~Cronet_UrlRequestTest() override = default;
public:
bool InitWithParams_called_ = false;
bool Start_called_ = false;
bool FollowRedirect_called_ = false;
bool Read_called_ = false;
bool Cancel_called_ = false;
bool IsDone_called_ = false;
bool GetStatus_called_ = false;
private:
DISALLOW_COPY_AND_ASSIGN(Cronet_UrlRequestTest);
};
namespace {
// Implementation of Cronet_UrlRequest methods for testing.
Cronet_RESULT TestCronet_UrlRequest_InitWithParams(
Cronet_UrlRequestPtr self,
Cronet_EnginePtr engine,
Cronet_String url,
Cronet_UrlRequestParamsPtr params,
Cronet_UrlRequestCallbackPtr callback,
Cronet_ExecutorPtr executor) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequest_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestTest*>(client_context);
CHECK(test);
test->InitWithParams_called_ = true;
return static_cast<Cronet_RESULT>(0);
}
Cronet_RESULT TestCronet_UrlRequest_Start(Cronet_UrlRequestPtr self) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequest_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestTest*>(client_context);
CHECK(test);
test->Start_called_ = true;
return static_cast<Cronet_RESULT>(0);
}
Cronet_RESULT TestCronet_UrlRequest_FollowRedirect(Cronet_UrlRequestPtr self) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequest_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestTest*>(client_context);
CHECK(test);
test->FollowRedirect_called_ = true;
return static_cast<Cronet_RESULT>(0);
}
Cronet_RESULT TestCronet_UrlRequest_Read(Cronet_UrlRequestPtr self,
Cronet_BufferPtr buffer) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequest_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestTest*>(client_context);
CHECK(test);
test->Read_called_ = true;
return static_cast<Cronet_RESULT>(0);
}
void TestCronet_UrlRequest_Cancel(Cronet_UrlRequestPtr self) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequest_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestTest*>(client_context);
CHECK(test);
test->Cancel_called_ = true;
}
bool TestCronet_UrlRequest_IsDone(Cronet_UrlRequestPtr self) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequest_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestTest*>(client_context);
CHECK(test);
test->IsDone_called_ = true;
return static_cast<bool>(0);
}
void TestCronet_UrlRequest_GetStatus(
Cronet_UrlRequestPtr self,
Cronet_UrlRequestStatusListenerPtr listener) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_UrlRequest_GetClientContext(self);
auto* test = static_cast<Cronet_UrlRequestTest*>(client_context);
CHECK(test);
test->GetStatus_called_ = true;
}
} // namespace
// Test that Cronet_UrlRequest stub forwards function calls as expected.
TEST_F(Cronet_UrlRequestTest, TestCreate) {
Cronet_UrlRequestPtr test = Cronet_UrlRequest_CreateWith(
TestCronet_UrlRequest_InitWithParams, TestCronet_UrlRequest_Start,
TestCronet_UrlRequest_FollowRedirect, TestCronet_UrlRequest_Read,
TestCronet_UrlRequest_Cancel, TestCronet_UrlRequest_IsDone,
TestCronet_UrlRequest_GetStatus);
CHECK(test);
Cronet_UrlRequest_SetClientContext(test, this);
CHECK(!InitWithParams_called_);
Cronet_UrlRequest_Start(test);
CHECK(Start_called_);
Cronet_UrlRequest_FollowRedirect(test);
CHECK(FollowRedirect_called_);
CHECK(!Read_called_);
Cronet_UrlRequest_Cancel(test);
CHECK(Cancel_called_);
Cronet_UrlRequest_IsDone(test);
CHECK(IsDone_called_);
CHECK(!GetStatus_called_);
Cronet_UrlRequest_Destroy(test);
}
// Test of Cronet_RequestFinishedInfoListener interface.
class Cronet_RequestFinishedInfoListenerTest : public ::testing::Test {
protected:
void SetUp() override {}
void TearDown() override {}
Cronet_RequestFinishedInfoListenerTest() = default;
~Cronet_RequestFinishedInfoListenerTest() override = default;
public:
bool OnRequestFinished_called_ = false;
private:
DISALLOW_COPY_AND_ASSIGN(Cronet_RequestFinishedInfoListenerTest);
};
namespace {
// Implementation of Cronet_RequestFinishedInfoListener methods for testing.
void TestCronet_RequestFinishedInfoListener_OnRequestFinished(
Cronet_RequestFinishedInfoListenerPtr self,
Cronet_RequestFinishedInfoPtr request_info) {
CHECK(self);
Cronet_ClientContext client_context =
Cronet_RequestFinishedInfoListener_GetClientContext(self);
auto* test =
static_cast<Cronet_RequestFinishedInfoListenerTest*>(client_context);
CHECK(test);
test->OnRequestFinished_called_ = true;
}
} // namespace
// Test that Cronet_RequestFinishedInfoListener stub forwards function calls as
// expected.
TEST_F(Cronet_RequestFinishedInfoListenerTest, TestCreate) {
Cronet_RequestFinishedInfoListenerPtr test =
Cronet_RequestFinishedInfoListener_CreateWith(
TestCronet_RequestFinishedInfoListener_OnRequestFinished);
CHECK(test);
Cronet_RequestFinishedInfoListener_SetClientContext(test, this);
CHECK(!OnRequestFinished_called_);
Cronet_RequestFinishedInfoListener_Destroy(test);
}