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

Side by Side Diff: chrome/browser/content_settings/content_settings_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: Fix rebase bug. 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 (c) 2012 The Chromium Authors. All rights reserved. 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 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/path_service.h" 6 #include "base/path_service.h"
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/chrome_notification_types.h" 9 #include "chrome/browser/chrome_notification_types.h"
10 #include "chrome/browser/content_settings/cookie_settings_factory.h" 10 #include "chrome/browser/content_settings/cookie_settings_factory.h"
(...skipping 15 matching lines...) Expand all
26 #include "content/public/browser/notification_observer.h" 26 #include "content/public/browser/notification_observer.h"
27 #include "content/public/browser/notification_service.h" 27 #include "content/public/browser/notification_service.h"
28 #include "content/public/browser/plugin_service.h" 28 #include "content/public/browser/plugin_service.h"
29 #include "content/public/browser/render_frame_host.h" 29 #include "content/public/browser/render_frame_host.h"
30 #include "content/public/browser/render_process_host.h" 30 #include "content/public/browser/render_process_host.h"
31 #include "content/public/browser/render_view_host.h" 31 #include "content/public/browser/render_view_host.h"
32 #include "content/public/browser/web_contents.h" 32 #include "content/public/browser/web_contents.h"
33 #include "content/public/common/content_switches.h" 33 #include "content/public/common/content_switches.h"
34 #include "content/public/test/browser_test_utils.h" 34 #include "content/public/test/browser_test_utils.h"
35 #include "content/public/test/test_utils.h" 35 #include "content/public/test/test_utils.h"
36 #include "net/test/spawned_test_server/spawned_test_server.h" 36 #include "net/test/embedded_test_server/embedded_test_server.h"
37 #include "net/test/url_request/url_request_mock_http_job.h" 37 #include "net/test/url_request/url_request_mock_http_job.h"
38 38
39 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. 39 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
40 40
41 #if defined(OS_MACOSX) 41 #if defined(OS_MACOSX)
42 #include "base/mac/scoped_nsautorelease_pool.h" 42 #include "base/mac/scoped_nsautorelease_pool.h"
43 #endif 43 #endif
44 44
45 using content::BrowserThread; 45 using content::BrowserThread;
46 using net::URLRequestMockHTTPJob; 46 using net::URLRequestMockHTTPJob;
47 47
48 class ContentSettingsTest : public InProcessBrowserTest { 48 class ContentSettingsTest : public InProcessBrowserTest {
49 public: 49 public:
50 ContentSettingsTest() 50 ContentSettingsTest() : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
51 : https_server_(net::SpawnedTestServer::TYPE_HTTPS, 51 https_server_.ServeFilesFromSourceDirectory("chrome/test/data");
52 net::SpawnedTestServer::SSLOptions(
53 net::SpawnedTestServer::SSLOptions::CERT_OK),
54 base::FilePath(FILE_PATH_LITERAL("chrome/test/data"))) {
55 } 52 }
56 53
57 void SetUpOnMainThread() override { 54 void SetUpOnMainThread() override {
58 BrowserThread::PostTask( 55 BrowserThread::PostTask(
59 BrowserThread::IO, FROM_HERE, 56 BrowserThread::IO, FROM_HERE,
60 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); 57 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true));
61 } 58 }
62 59
63 // Check the cookie for the given URL in an incognito window. 60 // Check the cookie for the given URL in an incognito window.
64 void CookieCheckIncognitoWindow(const GURL& url, bool cookies_enabled) { 61 void CookieCheckIncognitoWindow(const GURL& url, bool cookies_enabled) {
(...skipping 22 matching lines...) Expand all
87 CookieCheckIncognitoWindow(url, true); 84 CookieCheckIncognitoWindow(url, true);
88 85
89 ui_test_utils::NavigateToURL(browser(), url); 86 ui_test_utils::NavigateToURL(browser(), url);
90 ASSERT_FALSE(GetCookies(browser()->profile(), url).empty()); 87 ASSERT_FALSE(GetCookies(browser()->profile(), url).empty());
91 } 88 }
92 89
93 void Basic(const GURL& url) { 90 void Basic(const GURL& url) {
94 ASSERT_FALSE(GetCookies(browser()->profile(), url).empty()); 91 ASSERT_FALSE(GetCookies(browser()->profile(), url).empty());
95 } 92 }
96 93
97 net::SpawnedTestServer https_server_; 94 net::EmbeddedTestServer https_server_;
98 }; 95 };
99 96
100 // Sanity check on cookies before we do other tests. While these can be written 97 // Sanity check on cookies before we do other tests. While these can be written
101 // in content_browsertests, we want to verify Chrome's cookie storage and how it 98 // in content_browsertests, we want to verify Chrome's cookie storage and how it
102 // handles incognito windows. 99 // handles incognito windows.
103 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, PRE_BasicCookies) { 100 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, PRE_BasicCookies) {
104 ASSERT_TRUE(test_server()->Start()); 101 ASSERT_TRUE(embedded_test_server()->Start());
105 GURL http_url = test_server()->GetURL("files/setcookie.html"); 102 GURL http_url = embedded_test_server()->GetURL("/setcookie.html");
106 PreBasic(http_url); 103 PreBasic(http_url);
107 } 104 }
108 105
109 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, BasicCookies) { 106 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, BasicCookies) {
110 ASSERT_TRUE(test_server()->Start()); 107 ASSERT_TRUE(embedded_test_server()->Start());
111 GURL http_url = test_server()->GetURL("files/setcookie.html"); 108 GURL http_url = embedded_test_server()->GetURL("/setcookie.html");
112 Basic(http_url); 109 Basic(http_url);
113 } 110 }
114 111
115 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, PRE_BasicCookiesHttps) { 112 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, PRE_BasicCookiesHttps) {
116 ASSERT_TRUE(https_server_.Start()); 113 ASSERT_TRUE(https_server_.Start());
117 GURL https_url = https_server_.GetURL("files/setcookie.html"); 114 GURL https_url = https_server_.GetURL("/setcookie.html");
118 PreBasic(https_url); 115 PreBasic(https_url);
119 } 116 }
120 117
121 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, BasicCookiesHttps) { 118 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, BasicCookiesHttps) {
122 ASSERT_TRUE(https_server_.Start()); 119 ASSERT_TRUE(https_server_.Start());
123 GURL https_url = https_server_.GetURL("files/setcookie.html"); 120 GURL https_url = https_server_.GetURL("/setcookie.html");
124 Basic(https_url); 121 Basic(https_url);
125 } 122 }
126 123
127 // Verify that cookies are being blocked. 124 // Verify that cookies are being blocked.
128 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, PRE_BlockCookies) { 125 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, PRE_BlockCookies) {
129 ASSERT_TRUE(test_server()->Start()); 126 ASSERT_TRUE(embedded_test_server()->Start());
130 CookieSettingsFactory::GetForProfile(browser()->profile()) 127 CookieSettingsFactory::GetForProfile(browser()->profile())
131 ->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK); 128 ->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
132 GURL url = test_server()->GetURL("files/setcookie.html"); 129 GURL url = embedded_test_server()->GetURL("/setcookie.html");
133 ui_test_utils::NavigateToURL(browser(), url); 130 ui_test_utils::NavigateToURL(browser(), url);
134 ASSERT_TRUE(GetCookies(browser()->profile(), url).empty()); 131 ASSERT_TRUE(GetCookies(browser()->profile(), url).empty());
135 CookieCheckIncognitoWindow(url, false); 132 CookieCheckIncognitoWindow(url, false);
136 } 133 }
137 134
138 // Ensure that the setting persists. 135 // Ensure that the setting persists.
139 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, BlockCookies) { 136 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, BlockCookies) {
140 ASSERT_EQ(CONTENT_SETTING_BLOCK, 137 ASSERT_EQ(CONTENT_SETTING_BLOCK,
141 CookieSettingsFactory::GetForProfile(browser()->profile()) 138 CookieSettingsFactory::GetForProfile(browser()->profile())
142 ->GetDefaultCookieSetting(NULL)); 139 ->GetDefaultCookieSetting(NULL));
143 } 140 }
144 141
145 // Verify that cookies can be allowed and set using exceptions for particular 142 // Verify that cookies can be allowed and set using exceptions for particular
146 // website(s) when all others are blocked. 143 // website(s) when all others are blocked.
147 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, AllowCookiesUsingExceptions) { 144 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, AllowCookiesUsingExceptions) {
148 ASSERT_TRUE(test_server()->Start()); 145 ASSERT_TRUE(embedded_test_server()->Start());
149 GURL url = test_server()->GetURL("files/setcookie.html"); 146 GURL url = embedded_test_server()->GetURL("/setcookie.html");
150 content_settings::CookieSettings* settings = 147 content_settings::CookieSettings* settings =
151 CookieSettingsFactory::GetForProfile(browser()->profile()).get(); 148 CookieSettingsFactory::GetForProfile(browser()->profile()).get();
152 settings->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK); 149 settings->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
153 150
154 ui_test_utils::NavigateToURL(browser(), url); 151 ui_test_utils::NavigateToURL(browser(), url);
155 ASSERT_TRUE(GetCookies(browser()->profile(), url).empty()); 152 ASSERT_TRUE(GetCookies(browser()->profile(), url).empty());
156 153
157 settings->SetCookieSetting( 154 settings->SetCookieSetting(
158 ContentSettingsPattern::FromURL(url), 155 ContentSettingsPattern::FromURL(url),
159 ContentSettingsPattern::Wildcard(), CONTENT_SETTING_ALLOW); 156 ContentSettingsPattern::Wildcard(), CONTENT_SETTING_ALLOW);
160 157
161 ui_test_utils::NavigateToURL(browser(), url); 158 ui_test_utils::NavigateToURL(browser(), url);
162 ASSERT_FALSE(GetCookies(browser()->profile(), url).empty()); 159 ASSERT_FALSE(GetCookies(browser()->profile(), url).empty());
163 } 160 }
164 161
165 // Verify that cookies can be blocked for a specific website using exceptions. 162 // Verify that cookies can be blocked for a specific website using exceptions.
166 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, BlockCookiesUsingExceptions) { 163 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, BlockCookiesUsingExceptions) {
167 ASSERT_TRUE(test_server()->Start()); 164 ASSERT_TRUE(embedded_test_server()->Start());
168 GURL url = test_server()->GetURL("files/setcookie.html"); 165 GURL url = embedded_test_server()->GetURL("/setcookie.html");
169 content_settings::CookieSettings* settings = 166 content_settings::CookieSettings* settings =
170 CookieSettingsFactory::GetForProfile(browser()->profile()).get(); 167 CookieSettingsFactory::GetForProfile(browser()->profile()).get();
171 settings->SetCookieSetting(ContentSettingsPattern::FromURL(url), 168 settings->SetCookieSetting(ContentSettingsPattern::FromURL(url),
172 ContentSettingsPattern::Wildcard(), 169 ContentSettingsPattern::Wildcard(),
173 CONTENT_SETTING_BLOCK); 170 CONTENT_SETTING_BLOCK);
174 171
175 ui_test_utils::NavigateToURL(browser(), url); 172 ui_test_utils::NavigateToURL(browser(), url);
176 ASSERT_TRUE(GetCookies(browser()->profile(), url).empty()); 173 ASSERT_TRUE(GetCookies(browser()->profile(), url).empty());
177 174
178 ASSERT_TRUE(https_server_.Start()); 175 ASSERT_TRUE(https_server_.Start());
179 GURL unblocked_url = https_server_.GetURL("files/cookie1.html"); 176 GURL unblocked_url = https_server_.GetURL("/cookie1.html");
180 177
181 ui_test_utils::NavigateToURL(browser(), unblocked_url); 178 ui_test_utils::NavigateToURL(browser(), unblocked_url);
182 ASSERT_FALSE(GetCookies(browser()->profile(), unblocked_url).empty()); 179 ASSERT_FALSE(GetCookies(browser()->profile(), unblocked_url).empty());
183 } 180 }
184 181
185 // This fails on ChromeOS because kRestoreOnStartup is ignored and the startup 182 // This fails on ChromeOS because kRestoreOnStartup is ignored and the startup
186 // preference is always "continue where I left off. 183 // preference is always "continue where I left off.
187 #if !defined(OS_CHROMEOS) 184 #if !defined(OS_CHROMEOS)
188 185
189 // Verify that cookies can be allowed and set using exceptions for particular 186 // Verify that cookies can be allowed and set using exceptions for particular
(...skipping 20 matching lines...) Expand all
210 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, 207 IN_PROC_BROWSER_TEST_F(ContentSettingsTest,
211 AllowCookiesForASessionUsingExceptions) { 208 AllowCookiesForASessionUsingExceptions) {
212 GURL url = URLRequestMockHTTPJob::GetMockUrl("setcookie.html"); 209 GURL url = URLRequestMockHTTPJob::GetMockUrl("setcookie.html");
213 ASSERT_TRUE(GetCookies(browser()->profile(), url).empty()); 210 ASSERT_TRUE(GetCookies(browser()->profile(), url).empty());
214 } 211 }
215 212
216 #endif // !CHROME_OS 213 #endif // !CHROME_OS
217 214
218 // Regression test for http://crbug.com/63649. 215 // Regression test for http://crbug.com/63649.
219 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, RedirectLoopCookies) { 216 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, RedirectLoopCookies) {
220 ASSERT_TRUE(test_server()->Start()); 217 ASSERT_TRUE(embedded_test_server()->Start());
221 218
222 GURL test_url = test_server()->GetURL("files/redirect-loop.html"); 219 GURL test_url = embedded_test_server()->GetURL("/redirect-loop.html");
223 220
224 CookieSettingsFactory::GetForProfile(browser()->profile()) 221 CookieSettingsFactory::GetForProfile(browser()->profile())
225 ->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK); 222 ->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
226 223
227 ui_test_utils::NavigateToURL(browser(), test_url); 224 ui_test_utils::NavigateToURL(browser(), test_url);
228 225
229 content::WebContents* web_contents = 226 content::WebContents* web_contents =
230 browser()->tab_strip_model()->GetActiveWebContents(); 227 browser()->tab_strip_model()->GetActiveWebContents();
231 ASSERT_EQ(base::UTF8ToUTF16(test_url.spec() + " failed to load"), 228 ASSERT_EQ(base::UTF8ToUTF16(test_url.spec() + " failed to load"),
232 web_contents->GetTitle()); 229 web_contents->GetTitle());
(...skipping 15 matching lines...) Expand all
248 browser()->tab_strip_model()->GetActiveWebContents(); 245 browser()->tab_strip_model()->GetActiveWebContents();
249 ASSERT_EQ(base::UTF8ToUTF16("Data URL"), web_contents->GetTitle()); 246 ASSERT_EQ(base::UTF8ToUTF16("Data URL"), web_contents->GetTitle());
250 247
251 EXPECT_TRUE(TabSpecificContentSettings::FromWebContents(web_contents)-> 248 EXPECT_TRUE(TabSpecificContentSettings::FromWebContents(web_contents)->
252 IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); 249 IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT));
253 } 250 }
254 251
255 // Tests that if redirect across origins occurs, the new process still gets the 252 // Tests that if redirect across origins occurs, the new process still gets the
256 // content settings before the resource headers. 253 // content settings before the resource headers.
257 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, RedirectCrossOrigin) { 254 IN_PROC_BROWSER_TEST_F(ContentSettingsTest, RedirectCrossOrigin) {
258 ASSERT_TRUE(test_server()->Start()); 255 ASSERT_TRUE(embedded_test_server()->Start());
259 256
260 net::HostPortPair host_port = test_server()->host_port_pair(); 257 net::HostPortPair host_port = embedded_test_server()->host_port_pair();
261 DCHECK_EQ(host_port.host(), std::string("127.0.0.1")); 258 DCHECK_EQ(host_port.host(), std::string("127.0.0.1"));
262 259
263 std::string redirect(base::StringPrintf( 260 std::string redirect(base::StringPrintf(
264 "http://localhost:%d/files/redirect-cross-origin.html", 261 "http://localhost:%d/redirect-cross-origin.html", host_port.port()));
265 host_port.port())); 262 GURL test_url =
266 GURL test_url = test_server()->GetURL("server-redirect?" + redirect); 263 embedded_test_server()->GetURL("/server-redirect?" + redirect);
267 264
268 CookieSettingsFactory::GetForProfile(browser()->profile()) 265 CookieSettingsFactory::GetForProfile(browser()->profile())
269 ->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK); 266 ->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
270 267
271 ui_test_utils::NavigateToURL(browser(), test_url); 268 ui_test_utils::NavigateToURL(browser(), test_url);
272 269
273 content::WebContents* web_contents = 270 content::WebContents* web_contents =
274 browser()->tab_strip_model()->GetActiveWebContents(); 271 browser()->tab_strip_model()->GetActiveWebContents();
275 272
276 EXPECT_TRUE(TabSpecificContentSettings::FromWebContents(web_contents)-> 273 EXPECT_TRUE(TabSpecificContentSettings::FromWebContents(web_contents)->
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 // Disable this test in Metro+Ash for now (http://crbug.com/262796). 546 // Disable this test in Metro+Ash for now (http://crbug.com/262796).
550 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 547 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
551 switches::kAshBrowserTests)) 548 switches::kAshBrowserTests))
552 return; 549 return;
553 #endif 550 #endif
554 RunJavaScriptBlockedTest("load_nacl_no_js.html", true); 551 RunJavaScriptBlockedTest("load_nacl_no_js.html", true);
555 } 552 }
556 #endif // !defined(DISABLE_NACL) 553 #endif // !defined(DISABLE_NACL)
557 554
558 #endif // defined(ENABLE_PLUGINS) 555 #endif // defined(ENABLE_PLUGINS)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698