// 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 "base/utf_string_conversions.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/sync/about_sync_util.h" #include "chrome/browser/sync/profile_sync_service_mock.h" #include "content/public/test/test_browser_thread.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" using ::testing::NiceMock; using ::testing::Return; using ::testing::_; using content::BrowserThread; namespace sync_ui_util { namespace { TEST(SyncUIUtilTest, ConstructAboutInformationWithUnrecoverableErrorTest) { MessageLoopForUI message_loop; content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop); scoped_ptr profile( ProfileSyncServiceMock::MakeSignedInTestingProfile()); NiceMock service(profile.get()); // Will be released when the dictionary is destroyed string16 str(ASCIIToUTF16("none")); browser_sync::SyncBackendHost::Status status; EXPECT_CALL(service, HasSyncSetupCompleted()) .WillOnce(Return(true)); EXPECT_CALL(service, QueryDetailedSyncStatus(_)) .WillOnce(Return(false)); EXPECT_CALL(service, HasUnrecoverableError()) .WillRepeatedly(Return(true)); EXPECT_CALL(service, GetLastSyncedTimeString()) .WillOnce(Return(str)); scoped_ptr strings(ConstructAboutInformation(&service)); EXPECT_TRUE(strings->HasKey("unrecoverable_error_detected")); } } // namespace } // namespace sync_ui_util