Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(352)

Unified Diff: sync/notifier/chrome_invalidation_client_unittest.cc

Issue 10907070: [Sync] Rename classes in sync/ that start with Chrome (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
deleted file mode 100644
index a7c8f8afd8f296f2b129032f1ddf47c8142a0c34..0000000000000000000000000000000000000000
--- a/sync/notifier/chrome_invalidation_client_unittest.cc
+++ /dev/null
@@ -1,764 +0,0 @@
-// Copyright (c) 2012 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.
-
-#include <cstddef>
-#include <set>
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "base/message_loop.h"
-#include "google/cacheinvalidation/include/invalidation-client.h"
-#include "google/cacheinvalidation/include/types.h"
-#include "jingle/notifier/listener/fake_push_client.h"
-#include "sync/internal_api/public/util/weak_handle.h"
-#include "sync/notifier/chrome_invalidation_client.h"
-#include "sync/notifier/fake_invalidation_state_tracker.h"
-#include "sync/notifier/invalidation_util.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace syncer {
-
-namespace {
-
-using invalidation::AckHandle;
-using invalidation::ObjectId;
-
-const char kClientId[] = "client_id";
-const char kClientInfo[] = "client_info";
-
-const char kState[] = "state";
-const char kNewState[] = "new_state";
-
-const char kPayload1[] = "payload1";
-const char kPayload2[] = "payload2";
-
-const int64 kMinVersion = FakeInvalidationStateTracker::kMinVersion;
-const int64 kVersion1 = 1LL;
-const int64 kVersion2 = 2LL;
-
-const int kChromeSyncSourceId = 1004;
-
-struct AckHandleLessThan {
- bool operator()(const AckHandle& lhs, const AckHandle& rhs) const {
- return lhs.handle_data() < rhs.handle_data();
- }
-};
-
-typedef std::set<AckHandle, AckHandleLessThan> AckHandleSet;
-
-// Fake invalidation::InvalidationClient implementation that keeps
-// track of registered IDs and acked handles.
-class FakeInvalidationClient : public invalidation::InvalidationClient {
- public:
- FakeInvalidationClient() : started_(false) {}
- virtual ~FakeInvalidationClient() {}
-
- const ObjectIdSet& GetRegisteredIds() const {
- return registered_ids_;
- }
-
- void ClearAckedHandles() {
- acked_handles_.clear();
- }
-
- bool IsAckedHandle(const AckHandle& ack_handle) const {
- return (acked_handles_.find(ack_handle) != acked_handles_.end());
- }
-
- // invalidation::InvalidationClient implementation.
-
- virtual void Start() OVERRIDE {
- started_ = true;
- }
-
- virtual void Stop() OVERRIDE {
- started_ = false;
- }
-
- virtual void Register(const ObjectId& object_id) OVERRIDE {
- if (!started_) {
- ADD_FAILURE();
- return;
- }
- registered_ids_.insert(object_id);
- }
-
- virtual void Register(
- const invalidation::vector<ObjectId>& object_ids) OVERRIDE {
- if (!started_) {
- ADD_FAILURE();
- return;
- }
- registered_ids_.insert(object_ids.begin(), object_ids.end());
- }
-
- virtual void Unregister(const ObjectId& object_id) OVERRIDE {
- if (!started_) {
- ADD_FAILURE();
- return;
- }
- registered_ids_.erase(object_id);
- }
-
- virtual void Unregister(
- const invalidation::vector<ObjectId>& object_ids) OVERRIDE {
- if (!started_) {
- ADD_FAILURE();
- return;
- }
- for (invalidation::vector<ObjectId>::const_iterator
- it = object_ids.begin(); it != object_ids.end(); ++it) {
- registered_ids_.erase(*it);
- }
- }
-
- virtual void Acknowledge(const AckHandle& ack_handle) OVERRIDE {
- if (!started_) {
- ADD_FAILURE();
- return;
- }
- acked_handles_.insert(ack_handle);
- }
-
- private:
- bool started_;
- ObjectIdSet registered_ids_;
- AckHandleSet acked_handles_;
-};
-
-// Fake listener tkat keeps track of invalidation counts, payloads,
-// and state.
-class FakeListener : public ChromeInvalidationClient::Listener {
- public:
- FakeListener() : reason_(TRANSIENT_NOTIFICATION_ERROR) {}
- virtual ~FakeListener() {}
-
- int GetInvalidationCount(const ObjectId& id) const {
- ObjectIdCountMap::const_iterator it = invalidation_counts_.find(id);
- return (it == invalidation_counts_.end()) ? 0 : it->second;
- }
-
- std::string GetPayload(const ObjectId& id) const {
- ObjectIdStateMap::const_iterator it = states_.find(id);
- return (it == states_.end()) ? "" : it->second.payload;
- }
-
- // NO_NOTIFICATION_ERROR is the enabled state.
- NotificationsDisabledReason GetNotificationsDisabledReason() const {
- return reason_;
- }
-
- // ChromeInvalidationClient::Listener implementation.
-
- virtual void OnInvalidate(const ObjectIdStateMap& id_state_map) OVERRIDE {
- for (ObjectIdStateMap::const_iterator it = id_state_map.begin();
- it != id_state_map.end(); ++it) {
- ++invalidation_counts_[it->first];
- states_[it->first] = it->second;
- }
- }
-
- virtual void OnNotificationsEnabled() {
- reason_ = NO_NOTIFICATION_ERROR;
- }
-
- virtual void OnNotificationsDisabled(NotificationsDisabledReason reason) {
- reason_ = reason;
- }
-
- private:
- typedef std::map<ObjectId, int, ObjectIdLessThan> ObjectIdCountMap;
- ObjectIdCountMap invalidation_counts_;
- ObjectIdStateMap states_;
- NotificationsDisabledReason reason_;
-};
-
-invalidation::InvalidationClient* CreateFakeInvalidationClient(
- FakeInvalidationClient** fake_invalidation_client,
- invalidation::SystemResources* resources,
- int client_type,
- const invalidation::string& client_name,
- const invalidation::string& application_name,
- invalidation::InvalidationListener* listener) {
- *fake_invalidation_client = new FakeInvalidationClient();
- return *fake_invalidation_client;
-}
-
-class ChromeInvalidationClientTest : public testing::Test {
- protected:
- ChromeInvalidationClientTest()
- : kBookmarksId_(kChromeSyncSourceId, "BOOKMARK"),
- kPreferencesId_(kChromeSyncSourceId, "PREFERENCE"),
- kExtensionsId_(kChromeSyncSourceId, "EXTENSION"),
- kAppsId_(kChromeSyncSourceId, "APP"),
- fake_push_client_(new notifier::FakePushClient()),
- fake_invalidation_client_(NULL),
- client_(scoped_ptr<notifier::PushClient>(fake_push_client_)) {}
-
- virtual void SetUp() {
- StartClient();
-
- registered_ids_.insert(kBookmarksId_);
- registered_ids_.insert(kPreferencesId_);
- client_.UpdateRegisteredIds(registered_ids_);
- }
-
- virtual void TearDown() {
- StopClient();
- }
-
- // Restart client without re-registering IDs.
- void RestartClient() {
- StopClient();
- StartClient();
- }
-
- int GetInvalidationCount(const ObjectId& id) const {
- return fake_listener_.GetInvalidationCount(id);
- }
-
- std::string GetPayload(const ObjectId& id) const {
- return fake_listener_.GetPayload(id);
- }
-
- NotificationsDisabledReason GetNotificationsDisabledReason() const {
- return fake_listener_.GetNotificationsDisabledReason();
- }
-
- int64 GetMaxVersion(const ObjectId& id) const {
- return fake_tracker_.GetMaxVersion(id);
- }
-
- std::string GetInvalidationState() const {
- return fake_tracker_.GetInvalidationState();
- }
-
- ObjectIdSet GetRegisteredIds() const {
- return fake_invalidation_client_->GetRegisteredIds();
- }
-
- // |payload| can be NULL.
- void FireInvalidate(const ObjectId& object_id,
- int64 version, const char* payload) {
- invalidation::Invalidation inv;
- if (payload) {
- inv = invalidation::Invalidation(object_id, version, payload);
- } else {
- inv = invalidation::Invalidation(object_id, version);
- }
- const AckHandle ack_handle("fakedata");
- fake_invalidation_client_->ClearAckedHandles();
- client_.Invalidate(fake_invalidation_client_, inv, ack_handle);
- EXPECT_TRUE(fake_invalidation_client_->IsAckedHandle(ack_handle));
- // Pump message loop to trigger
- // InvalidationStateTracker::SetMaxVersion().
- message_loop_.RunAllPending();
- }
-
- // |payload| can be NULL, but not |type_name|.
- void FireInvalidateUnknownVersion(const ObjectId& object_id) {
- const AckHandle ack_handle("fakedata_unknown");
- fake_invalidation_client_->ClearAckedHandles();
- client_.InvalidateUnknownVersion(fake_invalidation_client_, object_id,
- ack_handle);
- EXPECT_TRUE(fake_invalidation_client_->IsAckedHandle(ack_handle));
- }
-
- void FireInvalidateAll() {
- const AckHandle ack_handle("fakedata_all");
- fake_invalidation_client_->ClearAckedHandles();
- client_.InvalidateAll(fake_invalidation_client_, ack_handle);
- EXPECT_TRUE(fake_invalidation_client_->IsAckedHandle(ack_handle));
- }
-
- void WriteState(const std::string& new_state) {
- client_.WriteState(new_state);
- // Pump message loop to trigger
- // InvalidationStateTracker::WriteState().
- message_loop_.RunAllPending();
- }
-
- void EnableNotifications() {
- fake_push_client_->EnableNotifications();
- }
-
- void DisableNotifications(notifier::NotificationsDisabledReason reason) {
- fake_push_client_->DisableNotifications(reason);
- }
-
- const ObjectId kBookmarksId_;
- const ObjectId kPreferencesId_;
- const ObjectId kExtensionsId_;
- const ObjectId kAppsId_;
-
- ObjectIdSet registered_ids_;
-
- private:
- void StartClient() {
- fake_invalidation_client_ = NULL;
- client_.Start(base::Bind(&CreateFakeInvalidationClient,
- &fake_invalidation_client_),
- kClientId, kClientInfo, kState,
- InvalidationVersionMap(),
- MakeWeakHandle(fake_tracker_.AsWeakPtr()),
- &fake_listener_);
- DCHECK(fake_invalidation_client_);
- }
-
- void StopClient() {
- // client_.StopForTest() stops the invalidation scheduler, which
- // deletes any pending tasks without running them. Some tasks
- // "run and delete" another task, so they must be run in order to
- // avoid leaking the inner task. client_.StopForTest() does not
- // schedule any tasks, so it's both necessary and sufficient to
- // drain the task queue before calling it.
- message_loop_.RunAllPending();
- fake_invalidation_client_ = NULL;
- client_.StopForTest();
- }
-
- MessageLoop message_loop_;
-
- FakeListener fake_listener_;
- FakeInvalidationStateTracker fake_tracker_;
- notifier::FakePushClient* const fake_push_client_;
-
- protected:
- // Tests need to access these directly.
- FakeInvalidationClient* fake_invalidation_client_;
- ChromeInvalidationClient client_;
-};
-
-// Write a new state to the client. It should propagate to the
-// tracker.
-TEST_F(ChromeInvalidationClientTest, WriteState) {
- WriteState(kNewState);
-
- EXPECT_EQ(kNewState, GetInvalidationState());
-}
-
-// Invalidation tests.
-
-// Fire an invalidation without a payload. It should be processed,
-// the payload should remain empty, and the version should be updated.
-TEST_F(ChromeInvalidationClientTest, InvalidateNoPayload) {
- const ObjectId& id = kBookmarksId_;
-
- FireInvalidate(id, kVersion1, NULL);
-
- EXPECT_EQ(1, GetInvalidationCount(id));
- EXPECT_EQ("", GetPayload(id));
- EXPECT_EQ(kVersion1, GetMaxVersion(id));
-}
-
-// Fire an invalidation with an empty payload. It should be
-// processed, the payload should remain empty, and the version should
-// be updated.
-TEST_F(ChromeInvalidationClientTest, InvalidateEmptyPayload) {
- const ObjectId& id = kBookmarksId_;
-
- FireInvalidate(id, kVersion1, "");
-
- EXPECT_EQ(1, GetInvalidationCount(id));
- EXPECT_EQ("", GetPayload(id));
- EXPECT_EQ(kVersion1, GetMaxVersion(id));
-}
-
-// Fire an invalidation with a payload. It should be processed, and
-// both the payload and the version should be updated.
-TEST_F(ChromeInvalidationClientTest, InvalidateWithPayload) {
- const ObjectId& id = kPreferencesId_;
-
- FireInvalidate(id, kVersion1, kPayload1);
-
- EXPECT_EQ(1, GetInvalidationCount(id));
- EXPECT_EQ(kPayload1, GetPayload(id));
- EXPECT_EQ(kVersion1, GetMaxVersion(id));
-}
-
-// Fire an invalidation with a payload. It should still be processed,
-// and both the payload and the version should be updated.
-TEST_F(ChromeInvalidationClientTest, InvalidateUnregistered) {
- const ObjectId kUnregisteredId(
- kChromeSyncSourceId, "unregistered");
- const ObjectId& id = kUnregisteredId;
-
- EXPECT_EQ(0, GetInvalidationCount(id));
- EXPECT_EQ("", GetPayload(id));
- EXPECT_EQ(kMinVersion, GetMaxVersion(id));
-
- FireInvalidate(id, kVersion1, NULL);
-
- EXPECT_EQ(1, GetInvalidationCount(id));
- EXPECT_EQ("", GetPayload(id));
- EXPECT_EQ(kVersion1, GetMaxVersion(id));
-}
-
-// Fire an invalidation, then fire another one with a lower version.
-// The first one should be processed and should update the payload and
-// version, but the second one shouldn't.
-TEST_F(ChromeInvalidationClientTest, InvalidateVersion) {
- const ObjectId& id = kPreferencesId_;
-
- FireInvalidate(id, kVersion2, kPayload2);
-
- EXPECT_EQ(1, GetInvalidationCount(id));
- EXPECT_EQ(kPayload2, GetPayload(id));
- EXPECT_EQ(kVersion2, GetMaxVersion(id));
-
- FireInvalidate(id, kVersion1, kPayload1);
-
- EXPECT_EQ(1, GetInvalidationCount(id));
- EXPECT_EQ(kPayload2, GetPayload(id));
- EXPECT_EQ(kVersion2, GetMaxVersion(id));
-}
-
-// Fire an invalidation with an unknown version twice. It shouldn't
-// update the payload or version either time, but it should still be
-// processed.
-TEST_F(ChromeInvalidationClientTest, InvalidateUnknownVersion) {
- const ObjectId& id = kBookmarksId_;
-
- FireInvalidateUnknownVersion(id);
-
- EXPECT_EQ(1, GetInvalidationCount(id));
- EXPECT_EQ("", GetPayload(id));
- EXPECT_EQ(kMinVersion, GetMaxVersion(id));
-
- FireInvalidateUnknownVersion(id);
-
- EXPECT_EQ(2, GetInvalidationCount(id));
- EXPECT_EQ("", GetPayload(id));
- EXPECT_EQ(kMinVersion, GetMaxVersion(id));
-}
-
-// Fire an invalidation for all enabled IDs. It shouldn't update the
-// payload or version, but it should still invalidate the IDs.
-TEST_F(ChromeInvalidationClientTest, InvalidateAll) {
- FireInvalidateAll();
-
- for (ObjectIdSet::const_iterator it = registered_ids_.begin();
- it != registered_ids_.end(); ++it) {
- EXPECT_EQ(1, GetInvalidationCount(*it));
- EXPECT_EQ("", GetPayload(*it));
- EXPECT_EQ(kMinVersion, GetMaxVersion(*it));
- }
-}
-
-// Comprehensive test of various scenarios for multiple IDs.
-TEST_F(ChromeInvalidationClientTest, InvalidateMultipleIds) {
- FireInvalidate(kBookmarksId_, 3, NULL);
-
- EXPECT_EQ(1, GetInvalidationCount(kBookmarksId_));
- EXPECT_EQ("", GetPayload(kBookmarksId_));
- EXPECT_EQ(3, GetMaxVersion(kBookmarksId_));
-
- FireInvalidate(kExtensionsId_, 2, NULL);
-
- EXPECT_EQ(1, GetInvalidationCount(kExtensionsId_));
- EXPECT_EQ("", GetPayload(kExtensionsId_));
- EXPECT_EQ(2, GetMaxVersion(kExtensionsId_));
-
- // Invalidations with lower version numbers should be ignored.
-
- FireInvalidate(kBookmarksId_, 1, NULL);
-
- EXPECT_EQ(1, GetInvalidationCount(kBookmarksId_));
- EXPECT_EQ("", GetPayload(kBookmarksId_));
- EXPECT_EQ(3, GetMaxVersion(kBookmarksId_));
-
- FireInvalidate(kExtensionsId_, 1, NULL);
-
- EXPECT_EQ(1, GetInvalidationCount(kExtensionsId_));
- EXPECT_EQ("", GetPayload(kExtensionsId_));
- EXPECT_EQ(2, GetMaxVersion(kExtensionsId_));
-
- // InvalidateAll shouldn't change any version state.
-
- FireInvalidateAll();
-
- EXPECT_EQ(2, GetInvalidationCount(kBookmarksId_));
- EXPECT_EQ("", GetPayload(kBookmarksId_));
- EXPECT_EQ(3, GetMaxVersion(kBookmarksId_));
-
- EXPECT_EQ(1, GetInvalidationCount(kPreferencesId_));
- EXPECT_EQ("", GetPayload(kPreferencesId_));
- EXPECT_EQ(kMinVersion, GetMaxVersion(kPreferencesId_));
-
- EXPECT_EQ(1, GetInvalidationCount(kExtensionsId_));
- EXPECT_EQ("", GetPayload(kExtensionsId_));
- EXPECT_EQ(2, GetMaxVersion(kExtensionsId_));
-
- // Invalidations with higher version numbers should be processed.
-
- FireInvalidate(kPreferencesId_, 5, NULL);
- EXPECT_EQ(2, GetInvalidationCount(kPreferencesId_));
- EXPECT_EQ("", GetPayload(kPreferencesId_));
- EXPECT_EQ(5, GetMaxVersion(kPreferencesId_));
-
- FireInvalidate(kExtensionsId_, 3, NULL);
- EXPECT_EQ(2, GetInvalidationCount(kExtensionsId_));
- EXPECT_EQ("", GetPayload(kExtensionsId_));
- EXPECT_EQ(3, GetMaxVersion(kExtensionsId_));
-
- FireInvalidate(kBookmarksId_, 4, NULL);
- EXPECT_EQ(3, GetInvalidationCount(kBookmarksId_));
- EXPECT_EQ("", GetPayload(kBookmarksId_));
- EXPECT_EQ(4, GetMaxVersion(kBookmarksId_));
-}
-
-// Registration tests.
-
-// With IDs already registered, enable notifications then ready the
-// client. The IDs should be registered only after the client is
-// readied.
-TEST_F(ChromeInvalidationClientTest, RegisterEnableReady) {
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- EnableNotifications();
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_EQ(registered_ids_, GetRegisteredIds());
-}
-
-// With IDs already registered, ready the client then enable
-// notifications. The IDs should be registered after the client is
-// readied.
-TEST_F(ChromeInvalidationClientTest, RegisterReadyEnable) {
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_EQ(registered_ids_, GetRegisteredIds());
-
- EnableNotifications();
-
- EXPECT_EQ(registered_ids_, GetRegisteredIds());
-}
-
-// Unregister the IDs, enable notifications, re-register the IDs, then
-// ready the client. The IDs should be registered only after the
-// client is readied.
-TEST_F(ChromeInvalidationClientTest, EnableRegisterReady) {
- client_.UpdateRegisteredIds(ObjectIdSet());
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- EnableNotifications();
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.UpdateRegisteredIds(registered_ids_);
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_EQ(registered_ids_, GetRegisteredIds());
-}
-
-// Unregister the IDs, enable notifications, ready the client, then
-// re-register the IDs. The IDs should be registered only after the
-// client is readied.
-TEST_F(ChromeInvalidationClientTest, EnableReadyRegister) {
- client_.UpdateRegisteredIds(ObjectIdSet());
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- EnableNotifications();
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.UpdateRegisteredIds(registered_ids_);
-
- EXPECT_EQ(registered_ids_, GetRegisteredIds());
-}
-
-// Unregister the IDs, ready the client, enable notifications, then
-// re-register the IDs. The IDs should be registered only after the
-// client is readied.
-TEST_F(ChromeInvalidationClientTest, ReadyEnableRegister) {
- client_.UpdateRegisteredIds(ObjectIdSet());
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- EnableNotifications();
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.UpdateRegisteredIds(registered_ids_);
-
- EXPECT_EQ(registered_ids_, GetRegisteredIds());
-}
-
-// Unregister the IDs, ready the client, re-register the IDs, then
-// enable notifications. The IDs should be registered only after the
-// client is readied.
-//
-// This test is important: see http://crbug.com/139424.
-TEST_F(ChromeInvalidationClientTest, ReadyRegisterEnable) {
- client_.UpdateRegisteredIds(ObjectIdSet());
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.UpdateRegisteredIds(registered_ids_);
-
- EXPECT_EQ(registered_ids_, GetRegisteredIds());
-
- EnableNotifications();
-
- EXPECT_EQ(registered_ids_, GetRegisteredIds());
-}
-
-// With IDs already registered, ready the client, restart the client,
-// then re-ready it. The IDs should still be registered.
-TEST_F(ChromeInvalidationClientTest, RegisterTypesPreserved) {
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_EQ(registered_ids_, GetRegisteredIds());
-
- RestartClient();
-
- EXPECT_TRUE(GetRegisteredIds().empty());
-
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_EQ(registered_ids_, GetRegisteredIds());
-}
-
-// Without readying the client, disable notifications, then enable
-// them. The listener should still think notifications are disabled.
-TEST_F(ChromeInvalidationClientTest, EnableNotificationsNotReady) {
- EXPECT_EQ(TRANSIENT_NOTIFICATION_ERROR,
- GetNotificationsDisabledReason());
-
- DisableNotifications(
- notifier::TRANSIENT_NOTIFICATION_ERROR);
-
- EXPECT_EQ(TRANSIENT_NOTIFICATION_ERROR,
- GetNotificationsDisabledReason());
-
- DisableNotifications(
- notifier::NOTIFICATION_CREDENTIALS_REJECTED);
-
- EXPECT_EQ(NOTIFICATION_CREDENTIALS_REJECTED,
- GetNotificationsDisabledReason());
-
- EnableNotifications();
-
- EXPECT_EQ(TRANSIENT_NOTIFICATION_ERROR,
- GetNotificationsDisabledReason());
-}
-
-// Enable notifications then Ready the invalidation client. The
-// listener should then be ready.
-TEST_F(ChromeInvalidationClientTest, EnableNotificationsThenReady) {
- EXPECT_EQ(TRANSIENT_NOTIFICATION_ERROR, GetNotificationsDisabledReason());
-
- EnableNotifications();
-
- EXPECT_EQ(TRANSIENT_NOTIFICATION_ERROR, GetNotificationsDisabledReason());
-
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_EQ(NO_NOTIFICATION_ERROR, GetNotificationsDisabledReason());
-}
-
-// Ready the invalidation client then enable notifications. The
-// listener should then be ready.
-TEST_F(ChromeInvalidationClientTest, ReadyThenEnableNotifications) {
- EXPECT_EQ(TRANSIENT_NOTIFICATION_ERROR, GetNotificationsDisabledReason());
-
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_EQ(TRANSIENT_NOTIFICATION_ERROR, GetNotificationsDisabledReason());
-
- EnableNotifications();
-
- EXPECT_EQ(NO_NOTIFICATION_ERROR, GetNotificationsDisabledReason());
-}
-
-// Enable notifications and ready the client. Then disable
-// notifications with an auth error and re-enable notifications. The
-// listener should go into an auth error mode and then back out.
-TEST_F(ChromeInvalidationClientTest, PushClientAuthError) {
- EnableNotifications();
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_EQ(NO_NOTIFICATION_ERROR, GetNotificationsDisabledReason());
-
- DisableNotifications(
- notifier::NOTIFICATION_CREDENTIALS_REJECTED);
-
- EXPECT_EQ(NOTIFICATION_CREDENTIALS_REJECTED,
- GetNotificationsDisabledReason());
-
- EnableNotifications();
-
- EXPECT_EQ(NO_NOTIFICATION_ERROR, GetNotificationsDisabledReason());
-}
-
-// Enable notifications and ready the client. Then simulate an auth
-// error from the invalidation client. Simulate some notification
-// events, then re-ready the client. The listener should go into an
-// auth error mode and come out of it only after the client is ready.
-TEST_F(ChromeInvalidationClientTest, InvalidationClientAuthError) {
- EnableNotifications();
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_EQ(NO_NOTIFICATION_ERROR, GetNotificationsDisabledReason());
-
- client_.InformError(
- fake_invalidation_client_,
- invalidation::ErrorInfo(
- invalidation::ErrorReason::AUTH_FAILURE,
- false /* is_transient */,
- "auth error",
- invalidation::ErrorContext()));
-
- EXPECT_EQ(NOTIFICATION_CREDENTIALS_REJECTED,
- GetNotificationsDisabledReason());
-
- DisableNotifications(
- notifier::TRANSIENT_NOTIFICATION_ERROR);
-
- EXPECT_EQ(NOTIFICATION_CREDENTIALS_REJECTED,
- GetNotificationsDisabledReason());
-
- DisableNotifications(
- notifier::TRANSIENT_NOTIFICATION_ERROR);
-
- EXPECT_EQ(NOTIFICATION_CREDENTIALS_REJECTED,
- GetNotificationsDisabledReason());
-
- EnableNotifications();
-
- EXPECT_EQ(NOTIFICATION_CREDENTIALS_REJECTED,
- GetNotificationsDisabledReason());
-
- client_.Ready(fake_invalidation_client_);
-
- EXPECT_EQ(NO_NOTIFICATION_ERROR, GetNotificationsDisabledReason());
-}
-
-} // namespace
-
-} // namespace syncer

Powered by Google App Engine
This is Rietveld 408576698