Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/gcm_driver/gcm_driver_desktop.h" | 5 #include "components/gcm_driver/gcm_driver_desktop.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 266 driver_->RemoveAppHandler(kTestAppID2); | 266 driver_->RemoveAppHandler(kTestAppID2); |
| 267 } | 267 } |
| 268 | 268 |
| 269 void GCMDriverTest::SignIn(const std::string& account_id) { | 269 void GCMDriverTest::SignIn(const std::string& account_id) { |
| 270 driver_->OnSignedIn(); | 270 driver_->OnSignedIn(); |
| 271 PumpIOLoop(); | 271 PumpIOLoop(); |
| 272 PumpUILoop(); | 272 PumpUILoop(); |
| 273 } | 273 } |
| 274 | 274 |
| 275 void GCMDriverTest::SignOut() { | 275 void GCMDriverTest::SignOut() { |
| 276 driver_->Purge(); | 276 driver_->OnSignedOut(); |
| 277 PumpIOLoop(); | 277 PumpIOLoop(); |
| 278 PumpUILoop(); | 278 PumpUILoop(); |
| 279 } | 279 } |
| 280 | 280 |
| 281 void GCMDriverTest::Register(const std::string& app_id, | 281 void GCMDriverTest::Register(const std::string& app_id, |
| 282 const std::vector<std::string>& sender_ids, | 282 const std::vector<std::string>& sender_ids, |
| 283 WaitToFinish wait_to_finish) { | 283 WaitToFinish wait_to_finish) { |
| 284 base::RunLoop run_loop; | 284 base::RunLoop run_loop; |
| 285 async_operation_completed_callback_ = run_loop.QuitClosure(); | 285 async_operation_completed_callback_ = run_loop.QuitClosure(); |
| 286 driver_->Register(app_id, | 286 driver_->Register(app_id, |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 372 EXPECT_FALSE(driver()->IsStarted()); | 372 EXPECT_FALSE(driver()->IsStarted()); |
| 373 EXPECT_FALSE(driver()->IsConnected()); | 373 EXPECT_FALSE(driver()->IsConnected()); |
| 374 EXPECT_FALSE(gcm_connection_observer()->connected()); | 374 EXPECT_FALSE(gcm_connection_observer()->connected()); |
| 375 | 375 |
| 376 // GCM will be started after app handler is added. | 376 // GCM will be started after app handler is added. |
| 377 AddAppHandlers(); | 377 AddAppHandlers(); |
| 378 EXPECT_TRUE(driver()->IsStarted()); | 378 EXPECT_TRUE(driver()->IsStarted()); |
| 379 PumpIOLoop(); | 379 PumpIOLoop(); |
| 380 EXPECT_TRUE(driver()->IsConnected()); | 380 EXPECT_TRUE(driver()->IsConnected()); |
| 381 EXPECT_TRUE(gcm_connection_observer()->connected()); | 381 EXPECT_TRUE(gcm_connection_observer()->connected()); |
| 382 | |
| 383 // Sign-in will not affect GCM state. | |
| 384 SignIn(kTestAccountID1); | |
| 385 PumpIOLoop(); | |
| 386 EXPECT_TRUE(driver()->IsStarted()); | |
| 387 EXPECT_TRUE(driver()->IsConnected()); | |
| 388 | |
| 389 // Sign-out will not affect GCM state. | |
| 390 SignOut(); | |
| 391 PumpIOLoop(); | |
| 392 EXPECT_TRUE(driver()->IsStarted()); | |
| 393 EXPECT_TRUE(driver()->IsConnected()); | |
| 382 } | 394 } |
| 383 | 395 |
| 384 TEST_F(GCMDriverTest, Shutdown) { | 396 TEST_F(GCMDriverTest, Shutdown) { |
| 385 CreateDriver(FakeGCMClient::NO_DELAY_START); | 397 CreateDriver(FakeGCMClient::NO_DELAY_START); |
| 386 EXPECT_FALSE(HasAppHandlers()); | 398 EXPECT_FALSE(HasAppHandlers()); |
| 387 | 399 |
| 388 AddAppHandlers(); | 400 AddAppHandlers(); |
| 389 EXPECT_TRUE(HasAppHandlers()); | 401 EXPECT_TRUE(HasAppHandlers()); |
| 390 | 402 |
| 391 ShutdownDriver(); | 403 ShutdownDriver(); |
| 392 EXPECT_FALSE(HasAppHandlers()); | 404 EXPECT_FALSE(HasAppHandlers()); |
| 393 EXPECT_FALSE(driver()->IsConnected()); | 405 EXPECT_FALSE(driver()->IsConnected()); |
| 394 EXPECT_FALSE(gcm_connection_observer()->connected()); | 406 EXPECT_FALSE(gcm_connection_observer()->connected()); |
| 395 } | 407 } |
| 396 | 408 |
| 397 TEST_F(GCMDriverTest, SignInAndSignOutOnGCMEnabled) { | 409 TEST_F(GCMDriverTest, SignInAndSignOutOnGCMEnabled) { |
|
fgorski
2014/10/01 16:54:09
I don't understand why we are stopping. Is GCM onl
jianli
2014/10/01 21:56:23
Before we drop the sign-in enforcement and roll ou
| |
| 398 // By default, GCM is enabled. | 410 // By default, GCM is enabled. |
| 399 CreateDriver(FakeGCMClient::NO_DELAY_START); | 411 CreateDriver(FakeGCMClient::NO_DELAY_START); |
| 400 AddAppHandlers(); | 412 AddAppHandlers(); |
| 401 | 413 |
| 402 // GCMClient should be started after sign-in. | 414 // GCMClient should be started after sign-in. |
| 403 SignIn(kTestAccountID1); | 415 SignIn(kTestAccountID1); |
| 404 EXPECT_EQ(FakeGCMClient::STARTED, GetGCMClient()->status()); | 416 EXPECT_EQ(FakeGCMClient::STARTED, GetGCMClient()->status()); |
| 405 | 417 |
| 406 // GCMClient should be checked out after sign-out. | 418 // GCMClient should be stopped out after sign-out. |
| 407 SignOut(); | 419 SignOut(); |
| 408 EXPECT_EQ(FakeGCMClient::CHECKED_OUT, GetGCMClient()->status()); | 420 EXPECT_EQ(FakeGCMClient::STOPPED, GetGCMClient()->status()); |
| 409 } | 421 } |
| 410 | 422 |
| 411 TEST_F(GCMDriverTest, SignInAndSignOutOnGCMDisabled) { | 423 TEST_F(GCMDriverTest, SignInAndSignOutOnGCMDisabled) { |
| 412 // By default, GCM is enabled. | 424 // By default, GCM is enabled. |
| 413 CreateDriver(FakeGCMClient::NO_DELAY_START); | 425 CreateDriver(FakeGCMClient::NO_DELAY_START); |
| 414 AddAppHandlers(); | 426 AddAppHandlers(); |
| 415 | 427 |
| 416 // Disable GCM. | 428 // Disable GCM. |
| 417 driver()->Disable(); | 429 driver()->Disable(); |
| 418 | 430 |
| 419 // GCMClient should not be started after sign-in. | 431 // GCMClient should not be started after sign-in. |
| 420 SignIn(kTestAccountID1); | 432 SignIn(kTestAccountID1); |
| 421 EXPECT_EQ(FakeGCMClient::UNINITIALIZED, GetGCMClient()->status()); | 433 EXPECT_EQ(FakeGCMClient::UNINITIALIZED, GetGCMClient()->status()); |
| 422 | 434 |
| 423 // Check-out should still be performed after sign-out. | 435 // GCMClient should still be not started after sign-out. |
| 424 SignOut(); | 436 SignOut(); |
| 425 EXPECT_EQ(FakeGCMClient::CHECKED_OUT, GetGCMClient()->status()); | 437 EXPECT_EQ(FakeGCMClient::UNINITIALIZED, GetGCMClient()->status()); |
| 426 } | 438 } |
| 427 | 439 |
| 428 TEST_F(GCMDriverTest, SignOutAndThenSignIn) { | 440 TEST_F(GCMDriverTest, SignOutAndThenSignIn) { |
| 429 CreateDriver(FakeGCMClient::NO_DELAY_START); | 441 CreateDriver(FakeGCMClient::NO_DELAY_START); |
| 430 AddAppHandlers(); | 442 AddAppHandlers(); |
| 431 | 443 |
| 432 // GCMClient should be started after sign-in. | 444 // GCMClient should be started after sign-in. |
| 433 SignIn(kTestAccountID1); | 445 SignIn(kTestAccountID1); |
| 434 EXPECT_EQ(FakeGCMClient::STARTED, GetGCMClient()->status()); | 446 EXPECT_EQ(FakeGCMClient::STARTED, GetGCMClient()->status()); |
| 435 | 447 |
| 436 // GCMClient should be checked out after sign-out. | 448 // GCMClient should be stopped after sign-out. |
| 437 SignOut(); | 449 SignOut(); |
| 438 EXPECT_EQ(FakeGCMClient::CHECKED_OUT, GetGCMClient()->status()); | 450 EXPECT_EQ(FakeGCMClient::STOPPED, GetGCMClient()->status()); |
| 439 | 451 |
| 440 // Sign-in with a different account. | 452 // Sign-in with a different account. |
| 441 SignIn(kTestAccountID2); | 453 SignIn(kTestAccountID2); |
| 442 | 454 |
| 443 // GCMClient should be started again. | 455 // GCMClient should be started again. |
| 444 EXPECT_EQ(FakeGCMClient::STARTED, GetGCMClient()->status()); | 456 EXPECT_EQ(FakeGCMClient::STARTED, GetGCMClient()->status()); |
| 445 } | 457 } |
| 446 | 458 |
| 447 TEST_F(GCMDriverTest, DisableAndReenableGCM) { | 459 TEST_F(GCMDriverTest, DisableAndReenableGCM) { |
| 448 CreateDriver(FakeGCMClient::NO_DELAY_START); | 460 CreateDriver(FakeGCMClient::NO_DELAY_START); |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 472 driver()->Disable(); | 484 driver()->Disable(); |
| 473 PumpIOLoop(); | 485 PumpIOLoop(); |
| 474 PumpUILoop(); | 486 PumpUILoop(); |
| 475 | 487 |
| 476 // GCMClient should be stopped. | 488 // GCMClient should be stopped. |
| 477 EXPECT_EQ(FakeGCMClient::STOPPED, GetGCMClient()->status()); | 489 EXPECT_EQ(FakeGCMClient::STOPPED, GetGCMClient()->status()); |
| 478 | 490 |
| 479 // Sign out. | 491 // Sign out. |
| 480 SignOut(); | 492 SignOut(); |
| 481 | 493 |
| 482 // GCMClient should be checked out. | 494 // GCMClient should be stopped. |
| 483 EXPECT_EQ(FakeGCMClient::CHECKED_OUT, GetGCMClient()->status()); | 495 EXPECT_EQ(FakeGCMClient::STOPPED, GetGCMClient()->status()); |
| 484 } | 496 } |
| 485 | 497 |
| 486 TEST_F(GCMDriverTest, StartOrStopGCMOnDemand) { | 498 TEST_F(GCMDriverTest, StartOrStopGCMOnDemand) { |
| 487 CreateDriver(FakeGCMClient::NO_DELAY_START); | 499 CreateDriver(FakeGCMClient::NO_DELAY_START); |
| 488 SignIn(kTestAccountID1); | 500 SignIn(kTestAccountID1); |
| 489 | 501 |
| 490 // GCMClient is not started. | 502 // GCMClient is not started. |
| 491 EXPECT_EQ(FakeGCMClient::UNINITIALIZED, GetGCMClient()->status()); | 503 EXPECT_EQ(FakeGCMClient::UNINITIALIZED, GetGCMClient()->status()); |
| 492 | 504 |
| 493 // GCMClient is started after an app handler has been added. | 505 // GCMClient is started after an app handler has been added. |
| (...skipping 686 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1180 // After start-up, the request should still be scheduled at the expected | 1192 // After start-up, the request should still be scheduled at the expected |
| 1181 // updated interval. | 1193 // updated interval. |
| 1182 actual_delay_seconds = | 1194 actual_delay_seconds = |
| 1183 syncer()->current_request_delay_interval().InSeconds(); | 1195 syncer()->current_request_delay_interval().InSeconds(); |
| 1184 EXPECT_TRUE(CompareDelaySeconds(expected_delay_seconds, actual_delay_seconds)) | 1196 EXPECT_TRUE(CompareDelaySeconds(expected_delay_seconds, actual_delay_seconds)) |
| 1185 << "expected delay: " << expected_delay_seconds | 1197 << "expected delay: " << expected_delay_seconds |
| 1186 << " actual delay: " << actual_delay_seconds; | 1198 << " actual delay: " << actual_delay_seconds; |
| 1187 } | 1199 } |
| 1188 | 1200 |
| 1189 } // namespace gcm | 1201 } // namespace gcm |
| OLD | NEW |