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/test/integration/profile_sync_service_harness.h" 7#include "chrome/browser/sync/test/integration/sync_test.h" 8#include "chrome/browser/sync/test/integration/themes_helper.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 45 ASSERT_EQ(GetCustomTheme(0), GetThemeID(GetProfile(0))); 46 ASSERT_EQ(GetCustomTheme(0), GetThemeID(verifier())); 47} 48 49// TODO(sync): Fails on Chrome OS. See http://crbug.com/84575. 50#if defined(OS_CHROMEOS) 51IN_PROC_BROWSER_TEST_F(SingleClientThemesSyncTest, DISABLED_NativeTheme) { 52#else 53IN_PROC_BROWSER_TEST_F(SingleClientThemesSyncTest, NativeTheme) { 54#endif // OS_CHROMEOS 55 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 56 57 UseCustomTheme(GetProfile(0), 0); 58 UseCustomTheme(verifier(), 0); 59 ASSERT_FALSE(UsingNativeTheme(GetProfile(0))); 60 ASSERT_FALSE(UsingNativeTheme(verifier())); 61 62 ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion()); 63 64 UseNativeTheme(GetProfile(0)); 65 UseNativeTheme(verifier()); 66 ASSERT_TRUE(UsingNativeTheme(GetProfile(0))); 67 ASSERT_TRUE(UsingNativeTheme(verifier())); 68 69 ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion()); 70 71 ASSERT_TRUE(UsingNativeTheme(GetProfile(0))); 72 ASSERT_TRUE(UsingNativeTheme(verifier())); 73} 74 75IN_PROC_BROWSER_TEST_F(SingleClientThemesSyncTest, DefaultTheme) { 76 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 77 78 UseCustomTheme(GetProfile(0), 0); 79 UseCustomTheme(verifier(), 0); 80 ASSERT_FALSE(UsingDefaultTheme(GetProfile(0))); 81 ASSERT_FALSE(UsingDefaultTheme(verifier())); 82 83 ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion()); 84 85 UseDefaultTheme(GetProfile(0)); 86 UseDefaultTheme(verifier()); 87 ASSERT_TRUE(UsingDefaultTheme(GetProfile(0))); 88 ASSERT_TRUE(UsingDefaultTheme(verifier())); 89 90 ASSERT_TRUE(GetClient(0)->AwaitFullSyncCompletion()); 91 92 ASSERT_TRUE(UsingDefaultTheme(GetProfile(0))); 93 ASSERT_TRUE(UsingDefaultTheme(verifier())); 94} 95