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