Index: content/browser/worker_host/test/worker_browsertest.cc |
=================================================================== |
--- content/browser/worker_host/test/worker_browsertest.cc (revision 148205) |
+++ content/browser/worker_host/test/worker_browsertest.cc (working copy) |
@@ -11,14 +11,16 @@ |
#include "base/sys_info.h" |
#include "base/test/test_timeouts.h" |
#include "base/utf_string_conversions.h" |
-#include "chrome/browser/ui/browser.h" |
-#include "chrome/browser/ui/browser_tabstrip.h" |
-#include "chrome/test/base/ui_test_utils.h" |
#include "content/browser/worker_host/worker_process_host.h" |
#include "content/browser/worker_host/worker_service_impl.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/common/content_paths.h" |
#include "content/public/test/browser_test_utils.h" |
+#include "content/public/test/test_utils.h" |
+#include "content/shell/shell.h" |
+#include "content/shell/shell_content_browser_client.h" |
+#include "content/shell/shell_resource_dispatcher_host_delegate.h" |
+#include "content/test/content_browser_test_utils.h" |
#include "content/test/layout_browsertest.h" |
#include "googleurl/src/gurl.h" |
@@ -272,31 +274,29 @@ |
RunHttpLayoutTest(kLayoutTestFiles[i]); |
} |
-class WorkerTest : public InProcessBrowserTest { |
+class WorkerTest : public content::ContentBrowserTest { |
public: |
WorkerTest() {} |
GURL GetTestURL(const std::string& test_case, const std::string& query) { |
- FilePath test_file_path = ui_test_utils::GetTestFilePath( |
- FilePath(FILE_PATH_LITERAL("workers")), |
- FilePath().AppendASCII(test_case)); |
- return ui_test_utils::GetFileUrlWithQuery(test_file_path, query); |
+ FilePath test_file_path = content::GetTestFilePath( |
+ "workers", test_case.c_str()); |
+ return content::GetFileUrlWithQuery(test_file_path, query); |
} |
- void RunTest(Browser* browser, |
+ void RunTest(content::Shell* window, |
const std::string& test_case, |
const std::string& query) { |
GURL url = GetTestURL(test_case, query); |
const string16 expected_title = ASCIIToUTF16("OK"); |
- content::TitleWatcher title_watcher( |
- chrome::GetActiveWebContents(browser), expected_title); |
- ui_test_utils::NavigateToURL(browser, url); |
+ content::TitleWatcher title_watcher(window->web_contents(), expected_title); |
+ content::NavigateToURL(window, url); |
string16 final_title = title_watcher.WaitAndGetTitle(); |
EXPECT_EQ(expected_title, final_title); |
} |
void RunTest(const std::string& test_case, const std::string& query) { |
- RunTest(browser(), test_case, query); |
+ RunTest(shell(), test_case, query); |
} |
static void CountWorkerProcesses(int *cur_process_count) { |
@@ -313,7 +313,9 @@ |
BrowserThread::PostTask( |
BrowserThread::IO, FROM_HERE, |
base::Bind(&CountWorkerProcesses, &cur_process_count)); |
- ui_test_utils::RunMessageLoop(); |
+ |
+ base::RunLoop run_loop; |
+ content::RunThisRunLoop(&run_loop); |
if (cur_process_count == count) |
return true; |
@@ -325,6 +327,23 @@ |
EXPECT_EQ(cur_process_count, count); |
return false; |
} |
+ |
+ static void QuitUIMessageLoop(base::Callback<void()> callback) { |
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback); |
+ } |
+ |
+ void NavigateAndWaitForAuth(const GURL& url) { |
+ content::ShellContentBrowserClient* browser_client = |
+ static_cast<content::ShellContentBrowserClient*>( |
+ content::GetContentClient()->browser()); |
+ scoped_refptr<content::MessageLoopRunner> runner = |
+ new content::MessageLoopRunner(); |
+ browser_client->resource_dispatcher_host_delegate()-> |
+ set_login_request_callback( |
+ base::Bind(&QuitUIMessageLoop, runner->QuitClosure())); |
+ shell()->LoadURL(url); |
+ runner->Run(); |
+ } |
}; |
IN_PROC_BROWSER_TEST_F(WorkerTest, SingleWorker) { |
@@ -351,7 +370,7 @@ |
RunTest("incognito_worker.html", ""); |
// Incognito worker should not share with non-incognito |
- RunTest(CreateIncognitoBrowser(), "incognito_worker.html", ""); |
+ RunTest(CreateOffTheRecordBrowser(), "incognito_worker.html", ""); |
} |
// Make sure that auth dialog is displayed from worker context. |
@@ -360,8 +379,7 @@ |
ASSERT_TRUE(test_server()->Start()); |
GURL url = test_server()->GetURL("files/workers/worker_auth.html"); |
- ui_test_utils::NavigateToURLWithDisposition( |
- browser(), url, CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_AUTH); |
+ NavigateAndWaitForAuth(url); |
} |
// Make sure that auth dialog is displayed from shared worker context. |
@@ -369,8 +387,7 @@ |
IN_PROC_BROWSER_TEST_F(WorkerTest, SharedWorkerHttpAuth) { |
ASSERT_TRUE(test_server()->Start()); |
GURL url = test_server()->GetURL("files/workers/shared_worker_auth.html"); |
- ui_test_utils::NavigateToURLWithDisposition( |
- browser(), url, CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_AUTH); |
+ NavigateAndWaitForAuth(url); |
} |
#if defined(OS_LINUX) || defined(OS_CHROMEOS) |
@@ -384,7 +401,7 @@ |
std::string query = StringPrintf("?count=%d", max_workers_per_tab + 1); |
GURL url = GetTestURL("many_shared_workers.html", query); |
- ui_test_utils::NavigateToURL(browser(), url); |
+ content::NavigateToURL(shell(), url); |
ASSERT_TRUE(WaitForWorkerProcessCount(max_workers_per_tab)); |
} |
@@ -406,26 +423,22 @@ |
std::string query = StringPrintf("?count=%d", max_workers_per_tab); |
GURL url = GetTestURL("many_shared_workers.html", query); |
- ui_test_utils::NavigateToURL( |
- browser(), GURL(url.spec() + StringPrintf("&client_id=0"))); |
+ content::NavigateToURL( |
+ shell(), GURL(url.spec() + StringPrintf("&client_id=0"))); |
// Adding 1 so that we cause some workers to be queued. |
int tab_count = (total_workers / max_workers_per_tab) + 1; |
for (int i = 1; i < tab_count; ++i) { |
- ui_test_utils::NavigateToURLWithDisposition( |
- browser(), GURL(url.spec() + StringPrintf("&client_id=%d", i)), |
- NEW_FOREGROUND_TAB, |
- ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
+ content::NavigateToURL( |
+ CreateBrowser(), GURL(url.spec() + StringPrintf("&client_id=%d", i))); |
} |
// Check that we didn't create more than the max number of workers. |
ASSERT_TRUE(WaitForWorkerProcessCount(total_workers)); |
// Now close a page and check that the queued workers were started. |
- const FilePath kGoogleDir(FILE_PATH_LITERAL("google")); |
- const FilePath kGoogleFile(FILE_PATH_LITERAL("google.html")); |
- url = GURL(ui_test_utils::GetTestUrl(kGoogleDir, kGoogleFile)); |
- ui_test_utils::NavigateToURL(browser(), url); |
+ url = GURL(content::GetTestUrl("google", "google.html")); |
+ content::NavigateToURL(shell(), url); |
ASSERT_TRUE(WaitForWorkerProcessCount(total_workers)); |
} |
@@ -455,23 +468,19 @@ |
int max_workers_per_tab = WorkerServiceImpl::kMaxWorkersPerTabWhenSeparate; |
std::string query = StringPrintf("?count=%d", max_workers_per_tab + 1); |
GURL url = GetTestURL("many_shared_workers.html", query); |
- ui_test_utils::NavigateToURL(browser(), url); |
+ content::NavigateToURL(shell(), url); |
ASSERT_TRUE(WaitForWorkerProcessCount(max_workers_per_tab)); |
// Create same set of workers in new tab (leaves one worker queued from this |
// tab). |
url = GetTestURL("many_shared_workers.html", query); |
- ui_test_utils::NavigateToURLWithDisposition( |
- browser(), url, NEW_FOREGROUND_TAB, |
- ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
+ content::NavigateToURL(CreateBrowser(), url); |
ASSERT_TRUE(WaitForWorkerProcessCount(max_workers_per_tab)); |
// Now shutdown one of the shared workers - this will fire both queued |
// workers, but only one instance should be started. |
url = GetTestURL("shutdown_shared_worker.html", "?id=0"); |
- ui_test_utils::NavigateToURLWithDisposition( |
- browser(), url, NEW_FOREGROUND_TAB, |
- ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
+ content::NavigateToURL(CreateBrowser(), url); |
ASSERT_TRUE(WaitForWorkerProcessCount(max_workers_per_tab)); |
} |
@@ -482,7 +491,7 @@ |
int max_workers_per_tab = WorkerServiceImpl::kMaxWorkersPerTabWhenSeparate; |
std::string query = StringPrintf("?count=%d", max_workers_per_tab + 1); |
GURL url = GetTestURL("many_shared_workers.html", query); |
- ui_test_utils::NavigateToURL(browser(), url); |
+ content::NavigateToURL(shell(), url); |
ASSERT_TRUE(WaitForWorkerProcessCount(max_workers_per_tab)); |
// First window has hit its limit. Now launch second window which creates |
@@ -490,9 +499,7 @@ |
// connected to the first window too. |
query = StringPrintf("?id=%d", max_workers_per_tab); |
url = GetTestURL("single_shared_worker.html", query); |
- ui_test_utils::NavigateToURLWithDisposition( |
- browser(), url, NEW_FOREGROUND_TAB, |
- ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
+ content::NavigateToURL(CreateBrowser(), url); |
ASSERT_TRUE(WaitForWorkerProcessCount(max_workers_per_tab + 1)); |
} |