1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "base/strings/utf_string_conversions.h" 6#include "chrome/browser/profiles/profile.h" 7#include "chrome/browser/sync/about_sync_util.h" 8#include "chrome/browser/sync/profile_sync_service_mock.h" 9#include "content/public/test/test_browser_thread.h" 10#include "testing/gmock/include/gmock/gmock.h" 11#include "testing/gtest/include/gtest/gtest.h" 12 13using ::testing::NiceMock; 14using ::testing::Return; 15using ::testing::_; 16using content::BrowserThread; 17 18namespace sync_ui_util { 19namespace { 20 21TEST(SyncUIUtilTestAbout, ConstructAboutInformationWithUnrecoverableErrorTest) { 22 base::MessageLoopForUI message_loop; 23 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop); 24 scoped_ptr<Profile> profile( 25 ProfileSyncServiceMock::MakeSignedInTestingProfile()); 26 NiceMock<ProfileSyncServiceMock> service(profile.get()); 27 28 // Will be released when the dictionary is destroyed 29 base::string16 str(ASCIIToUTF16("none")); 30 31 browser_sync::SyncBackendHost::Status status; 32 33 EXPECT_CALL(service, HasSyncSetupCompleted()) 34 .WillOnce(Return(true)); 35 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) 36 .WillOnce(Return(false)); 37 38 EXPECT_CALL(service, HasUnrecoverableError()) 39 .WillRepeatedly(Return(true)); 40 41 EXPECT_CALL(service, GetLastSyncedTimeString()) 42 .WillOnce(Return(str)); 43 44 scoped_ptr<DictionaryValue> strings(ConstructAboutInformation(&service)); 45 46 EXPECT_TRUE(strings->HasKey("unrecoverable_error_detected")); 47} 48 49} // namespace 50} // namespace sync_ui_util 51