| Index: sync/notifier/chrome_invalidation_client_unittest.cc
|
| diff --git a/sync/notifier/chrome_invalidation_client_unittest.cc b/sync/notifier/chrome_invalidation_client_unittest.cc
|
| index 92f697f12a2d2690f05dea5dfd46f57f13ae668a..0c7d92f823eba3c881e52db0785097560523589b 100644
|
| --- a/sync/notifier/chrome_invalidation_client_unittest.cc
|
| +++ b/sync/notifier/chrome_invalidation_client_unittest.cc
|
| @@ -20,6 +20,7 @@
|
| namespace sync_notifier {
|
|
|
| using ::testing::_;
|
| +using ::testing::InSequence;
|
| using ::testing::Return;
|
| using ::testing::StrictMock;
|
|
|
| @@ -44,7 +45,7 @@ class MockInvalidationClient : public invalidation::InvalidationClient {
|
| class MockListener : public ChromeInvalidationClient::Listener {
|
| public:
|
| MOCK_METHOD1(OnInvalidate, void(const syncable::ModelTypePayloadMap&));
|
| - MOCK_METHOD1(OnSessionStatusChanged, void(bool));
|
| + MOCK_METHOD1(OnSyncNotifierStateChange, void(SyncNotifierState));
|
| };
|
|
|
| } // namespace
|
| @@ -52,9 +53,8 @@ class MockListener : public ChromeInvalidationClient::Listener {
|
| class ChromeInvalidationClientTest : public testing::Test {
|
| protected:
|
| ChromeInvalidationClientTest()
|
| - : client_(
|
| - scoped_ptr<notifier::PushClient>(
|
| - new notifier::FakePushClient())) {}
|
| + : fake_push_client_(new notifier::FakePushClient()),
|
| + client_(scoped_ptr<notifier::PushClient>(fake_push_client_)) {}
|
|
|
| virtual void SetUp() {
|
| client_.Start(kClientId, kClientInfo, kState,
|
| @@ -116,6 +116,7 @@ class ChromeInvalidationClientTest : public testing::Test {
|
| StrictMock<MockInvalidationStateTracker>
|
| mock_invalidation_state_tracker_;
|
| StrictMock<MockInvalidationClient> mock_invalidation_client_;
|
| + notifier::FakePushClient* const fake_push_client_;
|
| ChromeInvalidationClient client_;
|
| };
|
|
|
| @@ -159,12 +160,6 @@ TEST_F(ChromeInvalidationClientTest, InvalidateWithPayload) {
|
| FireInvalidate("PREFERENCE", 1, "payload");
|
| }
|
|
|
| -TEST_F(ChromeInvalidationClientTest, WriteState) {
|
| - EXPECT_CALL(mock_invalidation_state_tracker_,
|
| - SetInvalidationState(kNewState));
|
| - client_.WriteState(kNewState);
|
| -}
|
| -
|
| TEST_F(ChromeInvalidationClientTest, InvalidateVersion) {
|
| using ::testing::Mock;
|
|
|
| @@ -266,6 +261,82 @@ TEST_F(ChromeInvalidationClientTest, RegisterTypes) {
|
| FireInvalidateAll();
|
| }
|
|
|
| -// TODO(akalin): Flesh out unit tests.
|
| +TEST_F(ChromeInvalidationClientTest, WriteState) {
|
| + EXPECT_CALL(mock_invalidation_state_tracker_,
|
| + SetInvalidationState(kNewState));
|
| + client_.WriteState(kNewState);
|
| +}
|
| +
|
| +TEST_F(ChromeInvalidationClientTest, StateChangesNotReady) {
|
| + InSequence dummy;
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(NOTIFICATIONS_OFF));
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(CREDENTIALS_REJECTED));
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(NOTIFICATIONS_OFF));
|
| +
|
| + fake_push_client_->SimulatePushClientStateChange(
|
| + notifier::NOTIFICATIONS_OFF);
|
| + fake_push_client_->SimulatePushClientStateChange(
|
| + notifier::CREDENTIALS_REJECTED);
|
| + fake_push_client_->SimulatePushClientStateChange(
|
| + notifier::NOTIFICATIONS_ON);
|
| +}
|
| +
|
| +TEST_F(ChromeInvalidationClientTest, StateChangesReady) {
|
| + InSequence dummy;
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(NOTIFICATIONS_OFF));
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(NOTIFICATIONS_ON));
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(NOTIFICATIONS_OFF));
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(CREDENTIALS_REJECTED));
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(NOTIFICATIONS_ON));
|
| +
|
| + fake_push_client_->SimulatePushClientStateChange(
|
| + notifier::NOTIFICATIONS_ON);
|
| + client_.Ready(NULL);
|
| + fake_push_client_->SimulatePushClientStateChange(
|
| + notifier::NOTIFICATIONS_OFF);
|
| + fake_push_client_->SimulatePushClientStateChange(
|
| + notifier::CREDENTIALS_REJECTED);
|
| + fake_push_client_->SimulatePushClientStateChange(
|
| + notifier::NOTIFICATIONS_ON);
|
| +}
|
| +
|
| +TEST_F(ChromeInvalidationClientTest, StateChangesAuthError) {
|
| + InSequence dummy;
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(NOTIFICATIONS_OFF));
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(NOTIFICATIONS_ON));
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(CREDENTIALS_REJECTED)).Times(4);
|
| + EXPECT_CALL(mock_listener_,
|
| + OnSyncNotifierStateChange(NOTIFICATIONS_ON));
|
| +
|
| + fake_push_client_->SimulatePushClientStateChange(
|
| + notifier::NOTIFICATIONS_ON);
|
| + client_.Ready(NULL);
|
| +
|
| + client_.InformError(
|
| + NULL,
|
| + invalidation::ErrorInfo(
|
| + invalidation::ErrorReason::AUTH_FAILURE,
|
| + false /* is_transient */,
|
| + "auth error",
|
| + invalidation::ErrorContext()));
|
| + fake_push_client_->SimulatePushClientStateChange(
|
| + notifier::NOTIFICATIONS_OFF);
|
| + fake_push_client_->SimulatePushClientStateChange(
|
| + notifier::CREDENTIALS_REJECTED);
|
| + fake_push_client_->SimulatePushClientStateChange(
|
| + notifier::NOTIFICATIONS_ON);
|
| + client_.Ready(NULL);
|
| +}
|
|
|
| } // namespace sync_notifier
|
|
|