| Index: chrome/worker/worker_uitest.cc
|
| diff --git a/chrome/worker/worker_uitest.cc b/chrome/worker/worker_uitest.cc
|
| index 204c106311f0234263e2024a1f82b62982a84f2b..3978e75e81bbca8882dfd20d53a88650acf3c0c5 100644
|
| --- a/chrome/worker/worker_uitest.cc
|
| +++ b/chrome/worker/worker_uitest.cc
|
| @@ -9,6 +9,7 @@
|
| #include "chrome/test/automation/browser_proxy.h"
|
| #include "chrome/test/automation/tab_proxy.h"
|
| #include "chrome/test/ui/ui_layout_test.h"
|
| +#include "net/url_request/url_request_unittest.h"
|
|
|
| static const char kTestCompleteCookie[] = "status";
|
| static const char kTestCompleteSuccess[] = "OK";
|
| @@ -136,6 +137,15 @@ class WorkerTest : public UILayoutTest {
|
| GURL about_url(std::string("file://localhost/"));
|
| EXPECT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS, tab->NavigateToURL(about_url));
|
| }
|
| +
|
| + bool NavigateAndWaitForAuth(TabProxy* tab, const GURL& url) {
|
| + // Pass a large number of navigations to tell the tab to block until an auth
|
| + // dialog pops up.
|
| + bool timeout = false;
|
| + tab->NavigateToURLWithTimeout(url, 100, kTestWaitTimeoutMs, &timeout);
|
| + EXPECT_FALSE(timeout);
|
| + return tab->NeedsAuth();
|
| + }
|
| };
|
|
|
|
|
| @@ -173,6 +183,32 @@ TEST_F(WorkerTest, IncognitoSharedWorkers) {
|
| RunIncognitoTest(L"incognito_worker.html");
|
| }
|
|
|
| +const wchar_t kDocRoot[] = L"chrome/test/data/workers";
|
| +
|
| +// Make sure that auth dialog is displayed from worker context.
|
| +TEST_F(WorkerTest, WorkerHttpAuth) {
|
| + scoped_refptr<HTTPTestServer> server =
|
| + HTTPTestServer::CreateServer(kDocRoot, NULL);
|
| +
|
| + ASSERT_TRUE(NULL != server.get());
|
| + scoped_refptr<TabProxy> tab(GetActiveTab());
|
| + GURL url = server->TestServerPage("files/worker_auth.html");
|
| + EXPECT_TRUE(NavigateAndWaitForAuth(tab, url));
|
| +}
|
| +
|
| +// Make sure that auth dialog is displayed from shared worker context.
|
| +TEST_F(WorkerTest, SharedWorkerHttpAuth) {
|
| + scoped_refptr<HTTPTestServer> server =
|
| + HTTPTestServer::CreateServer(kDocRoot, NULL);
|
| + ASSERT_TRUE(NULL != server.get());
|
| + scoped_refptr<TabProxy> tab(GetActiveTab());
|
| + EXPECT_EQ(1, GetTabCount());
|
| + GURL url = server->TestServerPage("files/shared_worker_auth.html");
|
| + EXPECT_TRUE(NavigateAndWaitForAuth(tab, url));
|
| + // TODO(atwilson): Add support to automation framework to test for auth
|
| + // dialogs displayed by non-navigating tabs.
|
| +}
|
| +
|
| #if defined(OS_LINUX)
|
| // Crashes on Linux - http://crbug.com/22898
|
| #define WorkerFastLayoutTests0 DISABLED_WorkerFastLayoutTests0
|
|
|