single_client_themes_sync_test.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2011 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/basictypes.h" 6#include "chrome/browser/sync/profile_sync_service_harness.h" 7#include "chrome/browser/sync/test/integration/themes_helper.h" 8#include "chrome/browser/sync/test/integration/sync_test.h" 9 10using themes_helper::GetCustomTheme; 11using themes_helper::GetThemeID; 12using themes_helper::UseCustomTheme; 13using themes_helper::UseDefaultTheme; 14using themes_helper::UseNativeTheme; 15using themes_helper::UsingCustomTheme; 16using themes_helper::UsingDefaultTheme; 17using themes_helper::UsingNativeTheme; 18 19class SingleClientThemesSyncTest : public SyncTest { 20 public: 21 SingleClientThemesSyncTest() : SyncTest(SINGLE_CLIENT) {} 22 virtual ~SingleClientThemesSyncTest() {} 23 24 private: 25 DISALLOW_COPY_AND_ASSIGN(SingleClientThemesSyncTest); 26}; 27 28// TODO(akalin): Add tests for model association (i.e., tests that 29// start with SetupClients(), change the theme state, then call 30// SetupSync()). 31 32IN_PROC_BROWSER_TEST_F(SingleClientThemesSyncTest, CustomTheme) { 33 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 34 35 ASSERT_FALSE(UsingCustomTheme(GetProfile(0))); 36 ASSERT_FALSE(UsingCustomTheme(verifier())); 37 38 UseCustomTheme(GetProfile(0), 0); 39 UseCustomTheme(verifier(), 0); 40 ASSERT_EQ(GetCustomTheme(0), GetThemeID(GetProfile(0))); 41 ASSERT_EQ(GetCustomTheme(0), GetThemeID(verifier())); 42 43 ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion( 44 "Waiting for custom themes change.")); 45 46 ASSERT_EQ(GetCustomTheme(0), GetThemeID(GetProfile(0))); 47 ASSERT_EQ(GetCustomTheme(0), GetThemeID(verifier())); 48} 49 50// TODO(sync): Fails on Chrome OS. See http://crbug.com/84575. 51#if defined(OS_CHROMEOS) 52IN_PROC_BROWSER_TEST_F(SingleClientThemesSyncTest, DISABLED_NativeTheme) { 53#else 54IN_PROC_BROWSER_TEST_F(SingleClientThemesSyncTest, NativeTheme) { 55#endif // OS_CHROMEOS 56 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 57 58 UseCustomTheme(GetProfile(0), 0); 59 UseCustomTheme(verifier(), 0); 60 ASSERT_FALSE(UsingNativeTheme(GetProfile(0))); 61 ASSERT_FALSE(UsingNativeTheme(verifier())); 62 63 ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion( 64 "Waiting for custom themes change.")); 65 66 UseNativeTheme(GetProfile(0)); 67 UseNativeTheme(verifier()); 68 ASSERT_TRUE(UsingNativeTheme(GetProfile(0))); 69 ASSERT_TRUE(UsingNativeTheme(verifier())); 70 71 ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion( 72 "Waiting for native themes change.")); 73 74 ASSERT_TRUE(UsingNativeTheme(GetProfile(0))); 75 ASSERT_TRUE(UsingNativeTheme(verifier())); 76} 77 78IN_PROC_BROWSER_TEST_F(SingleClientThemesSyncTest, DefaultTheme) { 79 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 80 81 UseCustomTheme(GetProfile(0), 0); 82 UseCustomTheme(verifier(), 0); 83 ASSERT_FALSE(UsingDefaultTheme(GetProfile(0))); 84 ASSERT_FALSE(UsingDefaultTheme(verifier())); 85 86 ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion( 87 "Waiting for custom themes change.")); 88 89 UseDefaultTheme(GetProfile(0)); 90 UseDefaultTheme(verifier()); 91 ASSERT_TRUE(UsingDefaultTheme(GetProfile(0))); 92 ASSERT_TRUE(UsingDefaultTheme(verifier())); 93 94 ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion( 95 "Waiting for native themes change.")); 96 97 ASSERT_TRUE(UsingDefaultTheme(GetProfile(0))); 98 ASSERT_TRUE(UsingDefaultTheme(verifier())); 99} 100