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

Side by Side Diff: chrome/worker/worker_uitest.cc

Issue 509016: Refactored code to allow associating workers with multiple renderers. (Closed)
Patch Set: Disabled overly-aggressive assertion in ResourceDispatcherHost. Created 10 years, 11 months 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
« no previous file with comments | « chrome/test/data/workers/worker_common.js ('k') | tools/valgrind/memcheck/suppressions.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/string_util.h" 5 #include "base/string_util.h"
6 #include "chrome/app/chrome_dll_resource.h" 6 #include "chrome/app/chrome_dll_resource.h"
7 #include "chrome/browser/worker_host/worker_service.h" 7 #include "chrome/browser/worker_host/worker_service.h"
8 #include "chrome/common/chrome_switches.h" 8 #include "chrome/common/chrome_switches.h"
9 #include "chrome/test/automation/browser_proxy.h" 9 #include "chrome/test/automation/browser_proxy.h"
10 #include "chrome/test/automation/tab_proxy.h" 10 #include "chrome/test/automation/tab_proxy.h"
11 #include "chrome/test/ui/ui_layout_test.h" 11 #include "chrome/test/ui/ui_layout_test.h"
12 #include "net/url_request/url_request_unittest.h"
12 13
13 static const char kTestCompleteCookie[] = "status"; 14 static const char kTestCompleteCookie[] = "status";
14 static const char kTestCompleteSuccess[] = "OK"; 15 static const char kTestCompleteSuccess[] = "OK";
15 16
16 // Layout test files for WorkerFastLayoutTest for the WorkerFastLayoutTest 17 // Layout test files for WorkerFastLayoutTest for the WorkerFastLayoutTest
17 // shards. 18 // shards.
18 static const char* kWorkerFastLayoutTestFiles[] = { 19 static const char* kWorkerFastLayoutTestFiles[] = {
19 "stress-js-execution.html", 20 "stress-js-execution.html",
20 "use-machine-stack.html", 21 "use-machine-stack.html",
21 "worker-call.html", 22 "worker-call.html",
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 RunLayoutTest(kWorkerFastLayoutTestFiles[i], kNoHttpPort); 130 RunLayoutTest(kWorkerFastLayoutTestFiles[i], kNoHttpPort);
130 } 131 }
131 } 132 }
132 133
133 // Navigate away from to a blank page so that any workers are cleaned up. 134 // Navigate away from to a blank page so that any workers are cleaned up.
134 // This helps leaks trackers do a better job of reporting. 135 // This helps leaks trackers do a better job of reporting.
135 scoped_refptr<TabProxy> tab(GetActiveTab()); 136 scoped_refptr<TabProxy> tab(GetActiveTab());
136 GURL about_url(std::string("file://localhost/")); 137 GURL about_url(std::string("file://localhost/"));
137 EXPECT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS, tab->NavigateToURL(about_url)); 138 EXPECT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS, tab->NavigateToURL(about_url));
138 } 139 }
140
141 bool NavigateAndWaitForAuth(TabProxy* tab, const GURL& url) {
142 // Pass a large number of navigations to tell the tab to block until an auth
143 // dialog pops up.
144 bool timeout = false;
145 tab->NavigateToURLWithTimeout(url, 100, kTestWaitTimeoutMs, &timeout);
146 EXPECT_FALSE(timeout);
147 return tab->NeedsAuth();
148 }
139 }; 149 };
140 150
141 151
142 TEST_F(WorkerTest, SingleWorker) { 152 TEST_F(WorkerTest, SingleWorker) {
143 RunTest(L"single_worker.html"); 153 RunTest(L"single_worker.html");
144 } 154 }
145 155
146 #if defined(OS_LINUX) 156 #if defined(OS_LINUX)
147 // MultipleWorkers times out (process hangs, does not exit) occasionally. 157 // MultipleWorkers times out (process hangs, does not exit) occasionally.
148 // http://crbug.com/30353 158 // http://crbug.com/30353
(...skipping 17 matching lines...) Expand all
166 #endif 176 #endif
167 177
168 // Incognito windows should not share workers with non-incognito windows 178 // Incognito windows should not share workers with non-incognito windows
169 TEST_F(WorkerTest, IncognitoSharedWorkers) { 179 TEST_F(WorkerTest, IncognitoSharedWorkers) {
170 // Load a non-incognito tab and have it create a shared worker 180 // Load a non-incognito tab and have it create a shared worker
171 RunTest(L"incognito_worker.html"); 181 RunTest(L"incognito_worker.html");
172 // Incognito worker should not share with non-incognito 182 // Incognito worker should not share with non-incognito
173 RunIncognitoTest(L"incognito_worker.html"); 183 RunIncognitoTest(L"incognito_worker.html");
174 } 184 }
175 185
186 const wchar_t kDocRoot[] = L"chrome/test/data/workers";
187
188 // Make sure that auth dialog is displayed from worker context.
189 TEST_F(WorkerTest, WorkerHttpAuth) {
190 scoped_refptr<HTTPTestServer> server =
191 HTTPTestServer::CreateServer(kDocRoot, NULL);
192
193 ASSERT_TRUE(NULL != server.get());
194 scoped_refptr<TabProxy> tab(GetActiveTab());
195 GURL url = server->TestServerPage("files/worker_auth.html");
196 EXPECT_TRUE(NavigateAndWaitForAuth(tab, url));
197 }
198
199 // Make sure that auth dialog is displayed from shared worker context.
200 TEST_F(WorkerTest, SharedWorkerHttpAuth) {
201 scoped_refptr<HTTPTestServer> server =
202 HTTPTestServer::CreateServer(kDocRoot, NULL);
203 ASSERT_TRUE(NULL != server.get());
204 scoped_refptr<TabProxy> tab(GetActiveTab());
205 EXPECT_EQ(1, GetTabCount());
206 GURL url = server->TestServerPage("files/shared_worker_auth.html");
207 EXPECT_TRUE(NavigateAndWaitForAuth(tab, url));
208 // TODO(atwilson): Add support to automation framework to test for auth
209 // dialogs displayed by non-navigating tabs.
210 }
211
176 #if defined(OS_LINUX) 212 #if defined(OS_LINUX)
177 // Crashes on Linux - http://crbug.com/22898 213 // Crashes on Linux - http://crbug.com/22898
178 #define WorkerFastLayoutTests0 DISABLED_WorkerFastLayoutTests0 214 #define WorkerFastLayoutTests0 DISABLED_WorkerFastLayoutTests0
179 #define WorkerFastLayoutTests1 DISABLED_WorkerFastLayoutTests1 215 #define WorkerFastLayoutTests1 DISABLED_WorkerFastLayoutTests1
180 #define WorkerFastLayoutTests2 DISABLED_WorkerFastLayoutTests2 216 #define WorkerFastLayoutTests2 DISABLED_WorkerFastLayoutTests2
181 #elif defined(OS_MACOSX) 217 #elif defined(OS_MACOSX)
182 // Flaky on Mac - http://crbug.com/28445 218 // Flaky on Mac - http://crbug.com/28445
183 #define WorkerFastLayoutTests0 FLAKY_WorkerFastLayoutTests0 219 #define WorkerFastLayoutTests0 FLAKY_WorkerFastLayoutTests0
184 #endif 220 #endif
185 221
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 453
418 // Check that we didn't create more than the max number of workers. 454 // Check that we didn't create more than the max number of workers.
419 ASSERT_TRUE(WaitForProcessCountToBe(tab_count, total_workers)); 455 ASSERT_TRUE(WaitForProcessCountToBe(tab_count, total_workers));
420 456
421 // Now close a page and check that the queued workers were started. 457 // Now close a page and check that the queued workers were started.
422 tab->NavigateToURL(GetTestUrl(L"google", L"google.html")); 458 tab->NavigateToURL(GetTestUrl(L"google", L"google.html"));
423 459
424 ASSERT_TRUE(WaitForProcessCountToBe(tab_count, total_workers)); 460 ASSERT_TRUE(WaitForProcessCountToBe(tab_count, total_workers));
425 #endif 461 #endif
426 } 462 }
OLDNEW
« no previous file with comments | « chrome/test/data/workers/worker_common.js ('k') | tools/valgrind/memcheck/suppressions.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698