Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(430)

Side by Side Diff: chrome/browser/protector/session_startup_change_unittest.cc

Issue 11493003: Remove the protector service. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix implicit ExtensionSystem -> TemplateURLService dependency Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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/memory/scoped_ptr.h"
6 #include "base/utf_string_conversions.h"
7 #include "base/values.h"
8 #include "chrome/browser/prefs/session_startup_pref.h"
9 #include "chrome/browser/protector/base_setting_change.h"
10 #include "chrome/browser/ui/startup/startup_tab.h"
11 #include "chrome/test/base/testing_profile.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13 #include "grit/generated_resources.h"
14 #include "ui/base/l10n/l10n_util.h"
15
16 namespace protector {
17
18 namespace {
19
20 const char kStartupUrl1[] = "http://google.com";
21 const char kStartupUrl2[] = "http://example.com";
22 const char kStartupUrl3[] = "http://example.org";
23 const char kStartupHost1[] = "google.com";
24 const char kStartupHost2[] = "example.com";
25 const char kStartupHost3[] = "example.org";
26
27 const BaseSettingChange::DisplayName kNoDisplayName(
28 BaseSettingChange::kDefaultNamePriority, string16());
29
30 } // namespace
31
32 class SessionStartupChangeTest : public testing::Test {
33 public:
34 SessionStartupChangeTest()
35 : initial_startup_pref_(SessionStartupPref::DEFAULT) {
36 }
37
38 virtual void SetUp() OVERRIDE {
39 // Ensure initial session startup pref.
40 SessionStartupPref::SetStartupPref(&profile_, initial_startup_pref_);
41 }
42
43 protected:
44 TestingProfile profile_;
45 SessionStartupPref initial_startup_pref_;
46 StartupTabs empty_pinned_tabs_;
47 };
48
49 TEST_F(SessionStartupChangeTest, InitAndApply) {
50 // Create a change and apply it.
51 SessionStartupPref backup_startup_pref(SessionStartupPref::LAST);
52 scoped_ptr<BaseSettingChange> change(
53 CreateSessionStartupChange(initial_startup_pref_, empty_pinned_tabs_,
54 backup_startup_pref, empty_pinned_tabs_));
55 ASSERT_TRUE(change->Init(&profile_));
56 // Setting is initially reverted to backup.
57 EXPECT_EQ(SessionStartupPref::LAST,
58 SessionStartupPref::GetStartupPref(&profile_).type);
59 change->Apply(NULL); // |browser| is unused.
60 // New setting active now.
61 EXPECT_EQ(SessionStartupPref::DEFAULT,
62 SessionStartupPref::GetStartupPref(&profile_).type);
63 }
64
65 TEST_F(SessionStartupChangeTest, InitAndDiscard) {
66 // Create a change and discard it.
67 SessionStartupPref backup_startup_pref(SessionStartupPref::LAST);
68 scoped_ptr<BaseSettingChange> change(
69 CreateSessionStartupChange(initial_startup_pref_, empty_pinned_tabs_,
70 backup_startup_pref, empty_pinned_tabs_));
71 ASSERT_TRUE(change->Init(&profile_));
72 // Setting is initially reverted to backup.
73 EXPECT_EQ(SessionStartupPref::LAST,
74 SessionStartupPref::GetStartupPref(&profile_).type);
75 change->Discard(NULL); // |browser| is unused.
76 // Nothing changed by Discard.
77 EXPECT_EQ(SessionStartupPref::LAST,
78 SessionStartupPref::GetStartupPref(&profile_).type);
79 }
80
81 TEST_F(SessionStartupChangeTest, ApplyButtonCaptions) {
82 // Apply button captions for "Open NTP" and "Open specific URLs" cases.
83 string16 open_ntp_caption =
84 l10n_util::GetStringUTF16(IDS_CHANGE_STARTUP_SETTINGS_NTP);
85 string16 open_url1_etc_caption =
86 l10n_util::GetStringFUTF16(IDS_CHANGE_STARTUP_SETTINGS_URLS,
87 UTF8ToUTF16(GURL(kStartupUrl1).host()));
88 string16 open_url2_etc_caption =
89 l10n_util::GetStringFUTF16(IDS_CHANGE_STARTUP_SETTINGS_URLS,
90 UTF8ToUTF16(GURL(kStartupUrl2).host()));
91 string16 open_url3_etc_caption =
92 l10n_util::GetStringFUTF16(IDS_CHANGE_STARTUP_SETTINGS_URLS,
93 UTF8ToUTF16(GURL(kStartupUrl3).host()));
94
95 // Open NTP.
96 initial_startup_pref_.type = SessionStartupPref::DEFAULT;
97 SessionStartupPref backup_startup_pref(SessionStartupPref::DEFAULT);
98 scoped_ptr<BaseSettingChange> change(
99 CreateSessionStartupChange(initial_startup_pref_, empty_pinned_tabs_,
100 backup_startup_pref, empty_pinned_tabs_));
101 ASSERT_TRUE(change->Init(&profile_));
102 EXPECT_EQ(open_ntp_caption, change->GetApplyButtonText());
103 EXPECT_EQ(GURL(), change->GetNewSettingURL());
104 EXPECT_EQ(kNoDisplayName, change->GetApplyDisplayName());
105
106 // Pinned tabs count as startup URLs as well.
107 StartupTabs new_pinned_tabs;
108 StartupTab pinned_tab;
109 pinned_tab.url = GURL(kStartupUrl3);
110 new_pinned_tabs.push_back(pinned_tab);
111 change.reset(
112 CreateSessionStartupChange(initial_startup_pref_, new_pinned_tabs,
113 backup_startup_pref, empty_pinned_tabs_));
114 ASSERT_TRUE(change->Init(&profile_));
115 EXPECT_EQ(open_url3_etc_caption, change->GetApplyButtonText());
116 EXPECT_EQ(GURL(kStartupUrl3), change->GetNewSettingURL());
117 EXPECT_EQ(UTF8ToUTF16(kStartupHost3), change->GetApplyDisplayName().second);
118
119 // "Open URLs" with no URLs is the same as "Open NTP".
120 initial_startup_pref_.type = SessionStartupPref::URLS;
121 change.reset(
122 CreateSessionStartupChange(initial_startup_pref_, empty_pinned_tabs_,
123 backup_startup_pref, empty_pinned_tabs_));
124 ASSERT_TRUE(change->Init(&profile_));
125 EXPECT_EQ(open_ntp_caption, change->GetApplyButtonText());
126 EXPECT_EQ(GURL(), change->GetNewSettingURL());
127 EXPECT_EQ(kNoDisplayName, change->GetApplyDisplayName());
128
129 // Single URL.
130 initial_startup_pref_.urls.push_back(GURL(kStartupUrl1));
131 change.reset(
132 CreateSessionStartupChange(initial_startup_pref_, empty_pinned_tabs_,
133 backup_startup_pref, empty_pinned_tabs_));
134 ASSERT_TRUE(change->Init(&profile_));
135 EXPECT_EQ(open_url1_etc_caption, change->GetApplyButtonText());
136 EXPECT_EQ(GURL(kStartupUrl1), change->GetNewSettingURL());
137 EXPECT_EQ(UTF8ToUTF16(kStartupHost1), change->GetApplyDisplayName().second);
138
139 // Multiple URLs: name of the first one used.
140 initial_startup_pref_.urls.push_back(GURL(kStartupUrl2));
141 change.reset(
142 CreateSessionStartupChange(initial_startup_pref_, empty_pinned_tabs_,
143 backup_startup_pref, empty_pinned_tabs_));
144 ASSERT_TRUE(change->Init(&profile_));
145 EXPECT_EQ(open_url1_etc_caption, change->GetApplyButtonText());
146 EXPECT_EQ(GURL(kStartupUrl1), change->GetNewSettingURL());
147 EXPECT_EQ(UTF8ToUTF16(kStartupHost1), change->GetApplyDisplayName().second);
148
149 // Pinned tabs go after the startup URLs.
150 change.reset(
151 CreateSessionStartupChange(initial_startup_pref_, new_pinned_tabs,
152 backup_startup_pref, empty_pinned_tabs_));
153 ASSERT_TRUE(change->Init(&profile_));
154 EXPECT_EQ(open_url1_etc_caption, change->GetApplyButtonText());
155 EXPECT_EQ(GURL(kStartupUrl1), change->GetNewSettingURL());
156 EXPECT_EQ(UTF8ToUTF16(kStartupHost1), change->GetApplyDisplayName().second);
157
158 // Multiple URLs, the first present in both backup and new settings.
159 backup_startup_pref.type = SessionStartupPref::URLS;
160 backup_startup_pref.urls.push_back(GURL(kStartupUrl1));
161 change.reset(
162 CreateSessionStartupChange(initial_startup_pref_, empty_pinned_tabs_,
163 backup_startup_pref, empty_pinned_tabs_));
164 ASSERT_TRUE(change->Init(&profile_));
165 EXPECT_EQ(open_url2_etc_caption, change->GetApplyButtonText());
166 EXPECT_EQ(GURL(kStartupUrl2), change->GetNewSettingURL());
167 EXPECT_EQ(UTF8ToUTF16(kStartupHost2), change->GetApplyDisplayName().second);
168
169 // Multiple URLs, all present in both backup and new settings: the first one
170 // is displayed in that case.
171 backup_startup_pref.urls.push_back(GURL(kStartupUrl2));
172 change.reset(
173 CreateSessionStartupChange(initial_startup_pref_, empty_pinned_tabs_,
174 backup_startup_pref, empty_pinned_tabs_));
175 ASSERT_TRUE(change->Init(&profile_));
176 EXPECT_EQ(open_url1_etc_caption, change->GetApplyButtonText());
177 EXPECT_EQ(GURL(kStartupUrl1), change->GetNewSettingURL());
178 EXPECT_EQ(UTF8ToUTF16(kStartupHost1), change->GetApplyDisplayName().second);
179
180 // Multiple URLs, all present in both backup and new settings, new pinned tabs
181 // added: the first pinned tab URL is used.
182 change.reset(
183 CreateSessionStartupChange(initial_startup_pref_, new_pinned_tabs,
184 backup_startup_pref, empty_pinned_tabs_));
185 ASSERT_TRUE(change->Init(&profile_));
186 EXPECT_EQ(open_url3_etc_caption, change->GetApplyButtonText());
187 EXPECT_EQ(GURL(kStartupUrl3), change->GetNewSettingURL());
188 EXPECT_EQ(UTF8ToUTF16(kStartupHost3), change->GetApplyDisplayName().second);
189 }
190
191 } // namespace protector
OLDNEW
« no previous file with comments | « chrome/browser/protector/session_startup_change.cc ('k') | chrome/browser/protector/settings_change_global_error.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698