| Index: chrome/browser/services/gcm/gcm_driver_unittest.cc
|
| diff --git a/chrome/browser/services/gcm/gcm_driver_unittest.cc b/chrome/browser/services/gcm/gcm_driver_unittest.cc
|
| index 3d220797532e811fdc7eff7782e1884ac9bd1110..f894740fb3b94267e9d0417dcaebfea7faf6b915 100644
|
| --- a/chrome/browser/services/gcm/gcm_driver_unittest.cc
|
| +++ b/chrome/browser/services/gcm/gcm_driver_unittest.cc
|
| @@ -101,29 +101,6 @@ class FakeGCMAppHandler : public GCMAppHandler {
|
| DISALLOW_COPY_AND_ASSIGN(FakeGCMAppHandler);
|
| };
|
|
|
| -class TestGCMDriver : public GCMDriver {
|
| - public:
|
| - TestGCMDriver(
|
| - bool start_automatically,
|
| - scoped_ptr<IdentityProvider> identity_provider,
|
| - const scoped_refptr<net::URLRequestContextGetter>& request_context);
|
| - virtual ~TestGCMDriver();
|
| -
|
| - protected:
|
| - // GCMDriver:
|
| - virtual bool ShouldStartAutomatically() const OVERRIDE;
|
| - virtual base::FilePath GetStorePath() const OVERRIDE;
|
| - virtual scoped_refptr<net::URLRequestContextGetter>
|
| - GetURLRequestContextGetter() const OVERRIDE;
|
| -
|
| - private:
|
| - base::ScopedTempDir temp_dir_;
|
| - scoped_refptr<net::URLRequestContextGetter> request_context_;
|
| - const bool start_automatically_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestGCMDriver);
|
| -};
|
| -
|
| FakeGCMAppHandler::FakeGCMAppHandler() : received_event_(NO_EVENT) {
|
| }
|
|
|
| @@ -175,33 +152,6 @@ void FakeGCMAppHandler::ClearResults() {
|
| send_error_details_ = GCMClient::SendErrorDetails();
|
| }
|
|
|
| -TestGCMDriver::TestGCMDriver(
|
| - bool start_automatically,
|
| - scoped_ptr<IdentityProvider> identity_provider,
|
| - const scoped_refptr<net::URLRequestContextGetter>& request_context)
|
| - : GCMDriver(identity_provider.Pass()),
|
| - request_context_(request_context),
|
| - start_automatically_(start_automatically) {
|
| - if (!temp_dir_.CreateUniqueTempDir())
|
| - ADD_FAILURE();
|
| -}
|
| -
|
| -TestGCMDriver::~TestGCMDriver() {
|
| -}
|
| -
|
| -bool TestGCMDriver::ShouldStartAutomatically() const {
|
| - return start_automatically_;
|
| -}
|
| -
|
| -base::FilePath TestGCMDriver::GetStorePath() const {
|
| - return temp_dir_.path();
|
| -}
|
| -
|
| -scoped_refptr<net::URLRequestContextGetter>
|
| -TestGCMDriver::GetURLRequestContextGetter() const {
|
| - return request_context_;
|
| -}
|
| -
|
| } // namespace
|
|
|
| class GCMDriverTest : public testing::Test {
|
| @@ -218,7 +168,7 @@ class GCMDriverTest : public testing::Test {
|
| virtual void SetUp() OVERRIDE;
|
| virtual void TearDown() OVERRIDE;
|
|
|
| - TestGCMDriver* driver() { return driver_.get(); }
|
| + GCMDriver* driver() { return driver_.get(); }
|
| FakeGCMAppHandler* gcm_app_handler() { return gcm_app_handler_.get(); }
|
| const std::string& registration_id() const { return registration_id_; }
|
| GCMClient::Result registration_result() const { return registration_result_; }
|
| @@ -234,8 +184,7 @@ class GCMDriverTest : public testing::Test {
|
| bool HasAppHandlers() const;
|
| FakeGCMClient* GetGCMClient();
|
|
|
| - void CreateDriver(bool start_automatically,
|
| - FakeGCMClient::StartMode gcm_client_start_mode);
|
| + void CreateDriver(FakeGCMClient::StartMode gcm_client_start_mode);
|
|
|
| void SignIn(const std::string& account_id);
|
| void SignOut();
|
| @@ -258,10 +207,11 @@ class GCMDriverTest : public testing::Test {
|
| void UnregisterCompleted(GCMClient::Result result);
|
|
|
| scoped_ptr<content::TestBrowserThreadBundle> thread_bundle_;
|
| + base::ScopedTempDir temp_dir_;
|
| FakeOAuth2TokenService token_service_;
|
| scoped_ptr<FakeIdentityProvider> identity_provider_owner_;
|
| FakeIdentityProvider* identity_provider_;
|
| - scoped_ptr<TestGCMDriver> driver_;
|
| + scoped_ptr<GCMDriver> driver_;
|
| scoped_ptr<FakeGCMAppHandler> gcm_app_handler_;
|
|
|
| base::Closure async_operation_completed_callback_;
|
| @@ -290,13 +240,14 @@ GCMDriverTest::~GCMDriverTest() {
|
| void GCMDriverTest::SetUp() {
|
| thread_bundle_.reset(new content::TestBrowserThreadBundle(
|
| content::TestBrowserThreadBundle::REAL_IO_THREAD));
|
| + ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
|
| }
|
|
|
| void GCMDriverTest::TearDown() {
|
| if (!driver_)
|
| return;
|
|
|
| - driver_->ShutdownService();
|
| + driver_->Shutdown();
|
| driver_.reset();
|
| PumpIOLoop();
|
| }
|
| @@ -319,18 +270,17 @@ FakeGCMClient* GCMDriverTest::GetGCMClient() {
|
| }
|
|
|
| void GCMDriverTest::CreateDriver(
|
| - bool start_automatically,
|
| FakeGCMClient::StartMode gcm_client_start_mode) {
|
| scoped_refptr<net::URLRequestContextGetter> request_context =
|
| new net::TestURLRequestContextGetter(
|
| content::BrowserThread::GetMessageLoopProxyForThread(
|
| content::BrowserThread::IO));
|
| - driver_.reset(new TestGCMDriver(
|
| - start_automatically,
|
| + driver_.reset(new GCMDriver(
|
| + scoped_ptr<GCMClientFactory>(new FakeGCMClientFactory(
|
| + gcm_client_start_mode)).Pass(),
|
| identity_provider_owner_.PassAs<IdentityProvider>(),
|
| + temp_dir_.path(),
|
| request_context));
|
| - driver_->Initialize(scoped_ptr<GCMClientFactory>(
|
| - new FakeGCMClientFactory(gcm_client_start_mode)));
|
|
|
| gcm_app_handler_.reset(new FakeGCMAppHandler);
|
| driver_->AddAppHandler(kTestAppID1, gcm_app_handler_.get());
|
| @@ -419,7 +369,7 @@ void GCMDriverTest::UnregisterCompleted(GCMClient::Result result) {
|
|
|
| TEST_F(GCMDriverTest, CreateGCMDriverBeforeSignIn) {
|
| // Create CreateGMCService first.
|
| - CreateDriver(true, FakeGCMClient::NO_DELAY_START);
|
| + CreateDriver(FakeGCMClient::NO_DELAY_START);
|
| EXPECT_FALSE(driver()->IsStarted());
|
|
|
| // Sign in. This will kick off the check-in.
|
| @@ -432,20 +382,20 @@ TEST_F(GCMDriverTest, CreateGCMDriverAfterSignIn) {
|
| SignIn(kTestAccountID1);
|
|
|
| // Create GCMeService after sign-in.
|
| - CreateDriver(true, FakeGCMClient::NO_DELAY_START);
|
| + CreateDriver(FakeGCMClient::NO_DELAY_START);
|
| EXPECT_TRUE(driver()->IsStarted());
|
| }
|
|
|
| TEST_F(GCMDriverTest, Shutdown) {
|
| - CreateDriver(true, FakeGCMClient::NO_DELAY_START);
|
| + CreateDriver(FakeGCMClient::NO_DELAY_START);
|
| EXPECT_TRUE(HasAppHandlers());
|
|
|
| - driver()->ShutdownService();
|
| + driver()->Shutdown();
|
| EXPECT_FALSE(HasAppHandlers());
|
| }
|
|
|
| TEST_F(GCMDriverTest, SignInAndSignOutUnderPositiveChannelSignal) {
|
| - CreateDriver(true, FakeGCMClient::NO_DELAY_START);
|
| + CreateDriver(FakeGCMClient::NO_DELAY_START);
|
| SignIn(kTestAccountID1);
|
|
|
| // GCMClient should be loaded.
|
| @@ -459,25 +409,8 @@ TEST_F(GCMDriverTest, SignInAndSignOutUnderPositiveChannelSignal) {
|
| EXPECT_EQ(FakeGCMClient::CHECKED_OUT, GetGCMClient()->status());
|
| }
|
|
|
| -TEST_F(GCMDriverTest, SignInAndSignOutUnderNonPositiveChannelSignal) {
|
| - // Non-positive channel signal will prevent GCMClient from checking in during
|
| - // sign-in.
|
| - CreateDriver(false, FakeGCMClient::NO_DELAY_START);
|
| - SignIn(kTestAccountID1);
|
| -
|
| - // GCMClient should not be loaded.
|
| - EXPECT_FALSE(driver()->IsGCMClientReady());
|
| - EXPECT_EQ(FakeGCMClient::UNINITIALIZED, GetGCMClient()->status());
|
| -
|
| - SignOut();
|
| -
|
| - // Check-out should still be performed.
|
| - EXPECT_FALSE(driver()->IsGCMClientReady());
|
| - EXPECT_EQ(FakeGCMClient::CHECKED_OUT, GetGCMClient()->status());
|
| -}
|
| -
|
| TEST_F(GCMDriverTest, SignOutAndThenSignIn) {
|
| - CreateDriver(true, FakeGCMClient::NO_DELAY_START);
|
| + CreateDriver(FakeGCMClient::NO_DELAY_START);
|
| SignIn(kTestAccountID1);
|
|
|
| // GCMClient should be loaded.
|
| @@ -499,7 +432,7 @@ TEST_F(GCMDriverTest, SignOutAndThenSignIn) {
|
| }
|
|
|
| TEST_F(GCMDriverTest, StopAndRestartGCM) {
|
| - CreateDriver(true, FakeGCMClient::NO_DELAY_START);
|
| + CreateDriver(FakeGCMClient::NO_DELAY_START);
|
| SignIn(kTestAccountID1);
|
|
|
| // GCMClient should be loaded.
|
| @@ -507,7 +440,7 @@ TEST_F(GCMDriverTest, StopAndRestartGCM) {
|
| EXPECT_EQ(FakeGCMClient::STARTED, GetGCMClient()->status());
|
|
|
| // Stops the GCM.
|
| - driver()->Stop();
|
| + driver()->Disable();
|
| PumpIOLoop();
|
| PumpUILoop();
|
|
|
| @@ -516,7 +449,7 @@ TEST_F(GCMDriverTest, StopAndRestartGCM) {
|
| EXPECT_EQ(FakeGCMClient::STOPPED, GetGCMClient()->status());
|
|
|
| // Restarts the GCM.
|
| - driver()->Start();
|
| + driver()->Enable();
|
| PumpIOLoop();
|
| PumpUILoop();
|
|
|
| @@ -525,7 +458,7 @@ TEST_F(GCMDriverTest, StopAndRestartGCM) {
|
| EXPECT_EQ(FakeGCMClient::STARTED, GetGCMClient()->status());
|
|
|
| // Stops the GCM.
|
| - driver()->Stop();
|
| + driver()->Disable();
|
| PumpIOLoop();
|
| PumpUILoop();
|
|
|
| @@ -542,7 +475,7 @@ TEST_F(GCMDriverTest, StopAndRestartGCM) {
|
| }
|
|
|
| TEST_F(GCMDriverTest, RegisterWhenNotSignedIn) {
|
| - CreateDriver(true, FakeGCMClient::NO_DELAY_START);
|
| + CreateDriver(FakeGCMClient::NO_DELAY_START);
|
|
|
| std::vector<std::string> sender_ids;
|
| sender_ids.push_back("sender1");
|
| @@ -552,34 +485,8 @@ TEST_F(GCMDriverTest, RegisterWhenNotSignedIn) {
|
| EXPECT_EQ(GCMClient::NOT_SIGNED_IN, registration_result());
|
| }
|
|
|
| -TEST_F(GCMDriverTest, RegisterUnderNonPositiveChannelSignal) {
|
| - // Non-positive channel signal will prevent GCMClient from checking in during
|
| - // sign-in.
|
| - CreateDriver(false, FakeGCMClient::NO_DELAY_START);
|
| - SignIn(kTestAccountID1);
|
| -
|
| - // GCMClient should not be checked in.
|
| - EXPECT_FALSE(driver()->IsGCMClientReady());
|
| - EXPECT_EQ(FakeGCMClient::UNINITIALIZED, GetGCMClient()->status());
|
| -
|
| - // Invoking register will make GCMClient checked in.
|
| - std::vector<std::string> sender_ids;
|
| - sender_ids.push_back("sender1");
|
| - Register(kTestAppID1, sender_ids, GCMDriverTest::WAIT);
|
| -
|
| - // GCMClient should be checked in.
|
| - EXPECT_TRUE(driver()->IsGCMClientReady());
|
| - EXPECT_EQ(FakeGCMClient::STARTED, GetGCMClient()->status());
|
| -
|
| - // Registration should succeed.
|
| - const std::string expected_registration_id =
|
| - FakeGCMClient::GetRegistrationIdFromSenderIds(sender_ids);
|
| - EXPECT_EQ(expected_registration_id, registration_id());
|
| - EXPECT_EQ(GCMClient::SUCCESS, registration_result());
|
| -}
|
| -
|
| TEST_F(GCMDriverTest, SendWhenNotSignedIn) {
|
| - CreateDriver(true, FakeGCMClient::NO_DELAY_START);
|
| + CreateDriver(FakeGCMClient::NO_DELAY_START);
|
|
|
| GCMClient::OutgoingMessage message;
|
| message.id = "1";
|
| @@ -590,34 +497,9 @@ TEST_F(GCMDriverTest, SendWhenNotSignedIn) {
|
| EXPECT_EQ(GCMClient::NOT_SIGNED_IN, send_result());
|
| }
|
|
|
| -TEST_F(GCMDriverTest, SendUnderNonPositiveChannelSignal) {
|
| - // Non-positive channel signal will prevent GCMClient from checking in during
|
| - // sign-in.
|
| - CreateDriver(false, FakeGCMClient::NO_DELAY_START);
|
| - SignIn(kTestAccountID1);
|
| -
|
| - // GCMClient should not be checked in.
|
| - EXPECT_FALSE(driver()->IsGCMClientReady());
|
| - EXPECT_EQ(FakeGCMClient::UNINITIALIZED, GetGCMClient()->status());
|
| -
|
| - // Invoking send will make GCMClient checked in.
|
| - GCMClient::OutgoingMessage message;
|
| - message.id = "1";
|
| - message.data["key1"] = "value1";
|
| - Send(kTestAppID1, kUserID1, message, GCMDriverTest::WAIT);
|
| -
|
| - // GCMClient should be checked in.
|
| - EXPECT_TRUE(driver()->IsGCMClientReady());
|
| - EXPECT_EQ(FakeGCMClient::STARTED, GetGCMClient()->status());
|
| -
|
| - // Sending should succeed.
|
| - EXPECT_EQ(message.id, send_message_id());
|
| - EXPECT_EQ(GCMClient::SUCCESS, send_result());
|
| -}
|
| -
|
| TEST_F(GCMDriverTest, GCMClientNotReadyBeforeRegistration) {
|
| // Make GCMClient not ready initially.
|
| - CreateDriver(true, FakeGCMClient::DELAY_START);
|
| + CreateDriver(FakeGCMClient::DELAY_START);
|
| SignIn(kTestAccountID1);
|
|
|
| // The registration is on hold until GCMClient is ready.
|
| @@ -640,7 +522,7 @@ TEST_F(GCMDriverTest, GCMClientNotReadyBeforeRegistration) {
|
|
|
| TEST_F(GCMDriverTest, GCMClientNotReadyBeforeSending) {
|
| // Make GCMClient not ready initially.
|
| - CreateDriver(true, FakeGCMClient::DELAY_START);
|
| + CreateDriver(FakeGCMClient::DELAY_START);
|
| SignIn(kTestAccountID1);
|
|
|
| // The sending is on hold until GCMClient is ready.
|
| @@ -684,7 +566,7 @@ GCMDriverFunctionalTest::~GCMDriverFunctionalTest() {
|
| void GCMDriverFunctionalTest::SetUp() {
|
| GCMDriverTest::SetUp();
|
|
|
| - CreateDriver(true, FakeGCMClient::NO_DELAY_START);
|
| + CreateDriver(FakeGCMClient::NO_DELAY_START);
|
| SignIn(kTestAccountID1);
|
| }
|
|
|
|
|