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

Side by Side Diff: chrome/browser/supervised_user/supervised_user_browsertest.cc

Issue 1409163006: Migrating tests to use EmbeddedTestServer (/chrome/browser misc) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 5 years, 1 month 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/prefs/pref_service.h" 6 #include "base/prefs/pref_service.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/chrome_notification_types.h" 9 #include "chrome/browser/chrome_notification_types.h"
10 #include "chrome/browser/history/history_service_factory.h" 10 #include "chrome/browser/history/history_service_factory.h"
(...skipping 16 matching lines...) Expand all
27 #include "components/infobars/core/infobar.h" 27 #include "components/infobars/core/infobar.h"
28 #include "components/pref_registry/pref_registry_syncable.h" 28 #include "components/pref_registry/pref_registry_syncable.h"
29 #include "content/public/browser/interstitial_page.h" 29 #include "content/public/browser/interstitial_page.h"
30 #include "content/public/browser/navigation_controller.h" 30 #include "content/public/browser/navigation_controller.h"
31 #include "content/public/browser/navigation_entry.h" 31 #include "content/public/browser/navigation_entry.h"
32 #include "content/public/browser/notification_service.h" 32 #include "content/public/browser/notification_service.h"
33 #include "content/public/browser/web_contents.h" 33 #include "content/public/browser/web_contents.h"
34 #include "content/public/browser/web_contents_observer.h" 34 #include "content/public/browser/web_contents_observer.h"
35 #include "content/public/common/content_switches.h" 35 #include "content/public/common/content_switches.h"
36 #include "content/public/test/browser_test_utils.h" 36 #include "content/public/test/browser_test_utils.h"
37 #include "net/test/embedded_test_server/embedded_test_server.h"
37 #include "testing/gmock/include/gmock/gmock.h" 38 #include "testing/gmock/include/gmock/gmock.h"
38 39
39 using content::InterstitialPage; 40 using content::InterstitialPage;
40 using content::NavigationController; 41 using content::NavigationController;
41 using content::NavigationEntry; 42 using content::NavigationEntry;
42 using content::WebContents; 43 using content::WebContents;
43 44
44 namespace { 45 namespace {
45 46
46 // Tests the filter mode in which all sites are blocked by default. 47 // Tests the filter mode in which all sites are blocked by default.
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 SupervisedUserSettingsService* supervised_user_settings_service = 110 SupervisedUserSettingsService* supervised_user_settings_service =
110 SupervisedUserSettingsServiceFactory::GetForProfile(profile); 111 SupervisedUserSettingsServiceFactory::GetForProfile(profile);
111 supervised_user_settings_service->SetLocalSetting( 112 supervised_user_settings_service->SetLocalSetting(
112 supervised_users::kContentPackDefaultFilteringBehavior, 113 supervised_users::kContentPackDefaultFilteringBehavior,
113 scoped_ptr<base::Value>( 114 scoped_ptr<base::Value>(
114 new base::FundamentalValue(SupervisedUserURLFilter::BLOCK))); 115 new base::FundamentalValue(SupervisedUserURLFilter::BLOCK)));
115 } 116 }
116 117
117 void SetUpCommandLine(base::CommandLine* command_line) override { 118 void SetUpCommandLine(base::CommandLine* command_line) override {
118 // Enable the test server and remap all URLs to it. 119 // Enable the test server and remap all URLs to it.
119 ASSERT_TRUE(test_server()->Start()); 120 ASSERT_TRUE(embedded_test_server()->Start());
120 std::string host_port = test_server()->host_port_pair().ToString(); 121 std::string host_port = embedded_test_server()->host_port_pair().ToString();
121 command_line->AppendSwitchASCII(switches::kHostResolverRules, 122 command_line->AppendSwitchASCII(switches::kHostResolverRules,
122 "MAP *.example.com " + host_port + "," + 123 "MAP *.example.com " + host_port + "," +
123 "MAP *.new-example.com " + host_port + "," + 124 "MAP *.new-example.com " + host_port + "," +
124 "MAP *.a.com " + host_port); 125 "MAP *.a.com " + host_port);
125 126
126 command_line->AppendSwitchASCII(switches::kSupervisedUserId, "asdf"); 127 command_line->AppendSwitchASCII(switches::kSupervisedUserId, "asdf");
127 } 128 }
128 129
129 // Acts like a synchronous call to history's QueryHistory. Modified from 130 // Acts like a synchronous call to history's QueryHistory. Modified from
130 // history_querying_unittest.cc. 131 // history_querying_unittest.cc.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 169
169 MOCK_METHOD3(TabClosingAt, void(TabStripModel*, content::WebContents*, int)); 170 MOCK_METHOD3(TabClosingAt, void(TabStripModel*, content::WebContents*, int));
170 171
171 private: 172 private:
172 TabStripModel* tab_strip_; 173 TabStripModel* tab_strip_;
173 }; 174 };
174 175
175 // Navigates to a blocked URL. 176 // Navigates to a blocked URL.
176 IN_PROC_BROWSER_TEST_F(SupervisedUserBlockModeTest, 177 IN_PROC_BROWSER_TEST_F(SupervisedUserBlockModeTest,
177 SendAccessRequestOnBlockedURL) { 178 SendAccessRequestOnBlockedURL) {
178 GURL test_url("http://www.example.com/files/simple.html"); 179 GURL test_url("http://www.example.com/simple.html");
179 ui_test_utils::NavigateToURL(browser(), test_url); 180 ui_test_utils::NavigateToURL(browser(), test_url);
180 181
181 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); 182 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
182 183
183 CheckShownPageIsInterstitial(tab); 184 CheckShownPageIsInterstitial(tab);
184 185
185 SendAccessRequest(tab); 186 SendAccessRequest(tab);
186 187
187 // TODO(sergiu): Properly check that the access request was sent here. 188 // TODO(sergiu): Properly check that the access request was sent here.
188 189
189 GoBack(tab); 190 GoBack(tab);
190 191
191 // Make sure that the tab is still there. 192 // Make sure that the tab is still there.
192 EXPECT_EQ(tab, browser()->tab_strip_model()->GetActiveWebContents()); 193 EXPECT_EQ(tab, browser()->tab_strip_model()->GetActiveWebContents());
193 194
194 CheckShownPageIsNotInterstitial(tab); 195 CheckShownPageIsNotInterstitial(tab);
195 } 196 }
196 197
197 // Navigates to a blocked URL in a new tab. We expect the tab to be closed 198 // Navigates to a blocked URL in a new tab. We expect the tab to be closed
198 // automatically on pressing the "back" button on the interstitial. 199 // automatically on pressing the "back" button on the interstitial.
199 IN_PROC_BROWSER_TEST_F(SupervisedUserBlockModeTest, OpenBlockedURLInNewTab) { 200 IN_PROC_BROWSER_TEST_F(SupervisedUserBlockModeTest, OpenBlockedURLInNewTab) {
200 TabStripModel* tab_strip = browser()->tab_strip_model(); 201 TabStripModel* tab_strip = browser()->tab_strip_model();
201 WebContents* prev_tab = tab_strip->GetActiveWebContents(); 202 WebContents* prev_tab = tab_strip->GetActiveWebContents();
202 203
203 // Open blocked URL in a new tab. 204 // Open blocked URL in a new tab.
204 GURL test_url("http://www.example.com/files/simple.html"); 205 GURL test_url("http://www.example.com/simple.html");
205 ui_test_utils::NavigateToURLWithDisposition( 206 ui_test_utils::NavigateToURLWithDisposition(
206 browser(), test_url, NEW_FOREGROUND_TAB, 207 browser(), test_url, NEW_FOREGROUND_TAB,
207 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 208 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
208 209
209 // Check that we got the interstitial. 210 // Check that we got the interstitial.
210 WebContents* tab = tab_strip->GetActiveWebContents(); 211 WebContents* tab = tab_strip->GetActiveWebContents();
211 CheckShownPageIsInterstitial(tab); 212 CheckShownPageIsInterstitial(tab);
212 213
213 // On pressing the "back" button, the new tab should be closed, and we should 214 // On pressing the "back" button, the new tab should be closed, and we should
214 // get back to the previous active tab. 215 // get back to the previous active tab.
215 MockTabStripModelObserver observer(tab_strip); 216 MockTabStripModelObserver observer(tab_strip);
216 base::RunLoop run_loop; 217 base::RunLoop run_loop;
217 EXPECT_CALL(observer, 218 EXPECT_CALL(observer,
218 TabClosingAt(tab_strip, tab, tab_strip->active_index())) 219 TabClosingAt(tab_strip, tab, tab_strip->active_index()))
219 .WillOnce(testing::InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); 220 .WillOnce(testing::InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
220 GoBack(tab); 221 GoBack(tab);
221 run_loop.Run(); 222 run_loop.Run();
222 EXPECT_EQ(prev_tab, tab_strip->GetActiveWebContents()); 223 EXPECT_EQ(prev_tab, tab_strip->GetActiveWebContents());
223 } 224 }
224 225
225 // Tests whether a visit attempt adds a special history entry. 226 // Tests whether a visit attempt adds a special history entry.
226 IN_PROC_BROWSER_TEST_F(SupervisedUserBlockModeTest, 227 IN_PROC_BROWSER_TEST_F(SupervisedUserBlockModeTest,
227 HistoryVisitRecorded) { 228 HistoryVisitRecorded) {
228 GURL allowed_url("http://www.example.com/files/simple.html"); 229 GURL allowed_url("http://www.example.com/simple.html");
229 230
230 scoped_refptr<SupervisedUserURLFilter> filter = 231 scoped_refptr<SupervisedUserURLFilter> filter =
231 supervised_user_service_->GetURLFilterForUIThread(); 232 supervised_user_service_->GetURLFilterForUIThread();
232 233
233 // Set the host as allowed. 234 // Set the host as allowed.
234 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); 235 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
235 dict->SetBooleanWithoutPathExpansion(allowed_url.host(), true); 236 dict->SetBooleanWithoutPathExpansion(allowed_url.host(), true);
236 SupervisedUserSettingsService* supervised_user_settings_service = 237 SupervisedUserSettingsService* supervised_user_settings_service =
237 SupervisedUserSettingsServiceFactory::GetForProfile( 238 SupervisedUserSettingsServiceFactory::GetForProfile(
238 browser()->profile()); 239 browser()->profile());
239 supervised_user_settings_service->SetLocalSetting( 240 supervised_user_settings_service->SetLocalSetting(
240 supervised_users::kContentPackManualBehaviorHosts, dict.Pass()); 241 supervised_users::kContentPackManualBehaviorHosts, dict.Pass());
241 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 242 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
242 filter->GetFilteringBehaviorForURL(allowed_url)); 243 filter->GetFilteringBehaviorForURL(allowed_url));
243 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 244 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
244 filter->GetFilteringBehaviorForURL(allowed_url.GetWithEmptyPath())); 245 filter->GetFilteringBehaviorForURL(allowed_url.GetWithEmptyPath()));
245 246
246 ui_test_utils::NavigateToURL(browser(), allowed_url); 247 ui_test_utils::NavigateToURL(browser(), allowed_url);
247 248
248 // Navigate to it and check that we don't get an interstitial. 249 // Navigate to it and check that we don't get an interstitial.
249 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); 250 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
250 CheckShownPageIsNotInterstitial(tab); 251 CheckShownPageIsNotInterstitial(tab);
251 252
252 // Navigate to a blocked page and go back on the interstitial. 253 // Navigate to a blocked page and go back on the interstitial.
253 GURL blocked_url("http://www.new-example.com/files/simple.html"); 254 GURL blocked_url("http://www.new-example.com/simple.html");
254 ui_test_utils::NavigateToURL(browser(), blocked_url); 255 ui_test_utils::NavigateToURL(browser(), blocked_url);
255 256
256 tab = browser()->tab_strip_model()->GetActiveWebContents(); 257 tab = browser()->tab_strip_model()->GetActiveWebContents();
257 258
258 CheckShownPageIsInterstitial(tab); 259 CheckShownPageIsInterstitial(tab);
259 GoBack(tab); 260 GoBack(tab);
260 261
261 // Check that we went back to the first URL and that the manual behaviors 262 // Check that we went back to the first URL and that the manual behaviors
262 // have not changed. 263 // have not changed.
263 EXPECT_EQ(allowed_url.spec(), tab->GetURL().spec()); 264 EXPECT_EQ(allowed_url.spec(), tab->GetURL().spec());
(...skipping 12 matching lines...) Expand all
276 277
277 // Check that the entries have the correct blocked_visit value. 278 // Check that the entries have the correct blocked_visit value.
278 ASSERT_EQ(2u, results.size()); 279 ASSERT_EQ(2u, results.size());
279 EXPECT_EQ(blocked_url.spec(), results[0].url().spec()); 280 EXPECT_EQ(blocked_url.spec(), results[0].url().spec());
280 EXPECT_TRUE(results[0].blocked_visit()); 281 EXPECT_TRUE(results[0].blocked_visit());
281 EXPECT_EQ(allowed_url.spec(), results[1].url().spec()); 282 EXPECT_EQ(allowed_url.spec(), results[1].url().spec());
282 EXPECT_FALSE(results[1].blocked_visit()); 283 EXPECT_FALSE(results[1].blocked_visit());
283 } 284 }
284 285
285 IN_PROC_BROWSER_TEST_F(SupervisedUserBlockModeTest, Unblock) { 286 IN_PROC_BROWSER_TEST_F(SupervisedUserBlockModeTest, Unblock) {
286 GURL test_url("http://www.example.com/files/simple.html"); 287 GURL test_url("http://www.example.com/simple.html");
287 ui_test_utils::NavigateToURL(browser(), test_url); 288 ui_test_utils::NavigateToURL(browser(), test_url);
288 289
289 WebContents* web_contents = 290 WebContents* web_contents =
290 browser()->tab_strip_model()->GetActiveWebContents(); 291 browser()->tab_strip_model()->GetActiveWebContents();
291 292
292 CheckShownPageIsInterstitial(web_contents); 293 CheckShownPageIsInterstitial(web_contents);
293 294
294 content::WindowedNotificationObserver observer( 295 content::WindowedNotificationObserver observer(
295 content::NOTIFICATION_LOAD_STOP, 296 content::NOTIFICATION_LOAD_STOP,
296 content::NotificationService::AllSources()); 297 content::NotificationService::AllSources());
(...skipping 10 matching lines...) Expand all
307 scoped_refptr<SupervisedUserURLFilter> filter = 308 scoped_refptr<SupervisedUserURLFilter> filter =
308 supervised_user_service_->GetURLFilterForUIThread(); 309 supervised_user_service_->GetURLFilterForUIThread();
309 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 310 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
310 filter->GetFilteringBehaviorForURL(test_url.GetWithEmptyPath())); 311 filter->GetFilteringBehaviorForURL(test_url.GetWithEmptyPath()));
311 312
312 observer.Wait(); 313 observer.Wait();
313 EXPECT_EQ(test_url, web_contents->GetURL()); 314 EXPECT_EQ(test_url, web_contents->GetURL());
314 } 315 }
315 316
316 } // namespace 317 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/storage/durable_storage_browsertest.cc ('k') | chrome/browser/sync/test/integration/sync_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698