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

Unified Diff: content/browser/renderer_host/resource_dispatcher_host_browsertest.cc

Issue 10829070: Move resource_dispatcher_host_browsertest.cc to content_browsertests. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync Created 8 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/perf/shutdown_test.cc ('k') | content/content_tests.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/resource_dispatcher_host_browsertest.cc
===================================================================
--- content/browser/renderer_host/resource_dispatcher_host_browsertest.cc (revision 148962)
+++ content/browser/renderer_host/resource_dispatcher_host_browsertest.cc (working copy)
@@ -5,10 +5,6 @@
#include "base/string_util.h"
#include "base/synchronization/waitable_event.h"
#include "base/utf_string_conversions.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
-#include "chrome/test/base/in_process_browser_test.h"
-#include "chrome/test/base/ui_test_utils.h"
#include "content/browser/download/download_manager_impl.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/common/test_url_constants.h"
@@ -19,6 +15,10 @@
#include "content/public/browser/web_contents.h"
#include "content/public/common/url_constants.h"
#include "content/public/test/browser_test_utils.h"
+#include "content/public/test/test_utils.h"
+#include "content/shell/shell.h"
+#include "content/test/content_browser_test.h"
+#include "content/test/content_browser_test_utils.h"
#include "content/test/net/url_request_failed_job.h"
#include "content/test/net/url_request_mock_http_job.h"
#include "net/base/net_errors.h"
@@ -27,9 +27,7 @@
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
-using content::BrowserContext;
-using content::BrowserThread;
-using content::DownloadManager;
+namespace content {
namespace {
@@ -54,14 +52,14 @@
} // namespace
-class ResourceDispatcherHostBrowserTest : public InProcessBrowserTest,
+class ResourceDispatcherHostBrowserTest : public ContentBrowserTest,
public DownloadManager::Observer {
public:
ResourceDispatcherHostBrowserTest() : got_downloads_(false) {}
protected:
virtual void SetUpOnMainThread() OVERRIDE {
- FilePath path = ui_test_utils::GetTestFilePath(FilePath(), FilePath());
+ FilePath path = GetTestFilePath("", "");
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
base::Bind(&URLRequestMockHTTPJob::AddUrlHandler, path));
@@ -75,8 +73,8 @@
got_downloads_ = !!manager->InProgressCount();
}
- content::RenderViewHost* render_view_host() {
- return chrome::GetActiveWebContents(browser())->GetRenderViewHost();
+ RenderViewHost* render_view_host() {
+ return shell()->web_contents()->GetRenderViewHost();
}
GURL GetMockURL(const std::string& file) {
@@ -84,23 +82,32 @@
}
void CheckTitleTest(const GURL& url,
- const std::string& expected_title,
- int expected_navigations) {
+ const std::string& expected_title) {
string16 expected_title16(ASCIIToUTF16(expected_title));
- content::TitleWatcher title_watcher(
- chrome::GetActiveWebContents(browser()), expected_title16);
- ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
- browser(), url, expected_navigations);
+ TitleWatcher title_watcher(shell()->web_contents(), expected_title16);
+ NavigateToURL(shell(), url);
EXPECT_EQ(expected_title16, title_watcher.WaitAndGetTitle());
}
- bool GetPopupTitle(const GURL& url, string16* title);
+ bool GetPopupTitle(const GURL& url, string16* title) {
+ NavigateToURL(shell(), url);
+ ShellAddedObserver new_shell_observer;
+
+ // Create dynamic popup.
+ if (!ExecuteJavaScript(render_view_host(), L"", L"OpenPopup();"))
+ return false;
+
+ Shell* new_shell = new_shell_observer.GetShell();
+ *title = new_shell->web_contents()->GetTitle();
+ return true;
+ }
+
std::string GetCookies(const GURL& url) {
std::string cookies;
base::WaitableEvent event(true, false);
net::URLRequestContextGetter* context_getter =
- GetBrowserContext()->GetRequestContext();
+ shell()->web_contents()->GetBrowserContext()->GetRequestContext();
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
@@ -116,29 +123,6 @@
bool got_downloads_;
};
-bool ResourceDispatcherHostBrowserTest::GetPopupTitle(const GURL& url,
- string16* title) {
- ui_test_utils::NavigateToURL(browser(), url);
-
- ui_test_utils::WindowedTabAddedNotificationObserver observer(
- content::NotificationService::AllSources());
-
- // Create dynamic popup.
- if (!content::ExecuteJavaScript(render_view_host(), L"", L"OpenPopup();"))
- return false;
-
- observer.Wait();
-
- std::set<Browser*> excluded;
- excluded.insert(browser());
- Browser* popup = ui_test_utils::GetBrowserNotInSet(excluded);
- if (!popup)
- return false;
-
- *title = popup->GetWindowTitleForCurrentTab();
- return true;
-}
-
// Test title for content created by javascript window.open().
// See http://crbug.com/5988
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, DynamicTitle1) {
@@ -166,57 +150,58 @@
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
SniffHTMLWithNoContentType) {
CheckTitleTest(GetMockURL("content-sniffer-test0.html"),
- "Content Sniffer Test 0", 1);
+ "Content Sniffer Test 0");
}
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
RespectNoSniffDirective) {
CheckTitleTest(GetMockURL("nosniff-test.html"),
- "mock.http/nosniff-test.html", 1);
+ "mock.http/nosniff-test.html");
}
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
DoNotSniffHTMLFromTextPlain) {
CheckTitleTest(GetMockURL("content-sniffer-test1.html"),
- "mock.http/content-sniffer-test1.html", 1);
+ "mock.http/content-sniffer-test1.html");
}
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
DoNotSniffHTMLFromImageGIF) {
CheckTitleTest(GetMockURL("content-sniffer-test2.html"),
- "mock.http/content-sniffer-test2.html", 1);
+ "mock.http/content-sniffer-test2.html");
}
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
SniffNoContentTypeNoData) {
// Make sure no downloads start.
- BrowserContext::GetDownloadManager(GetBrowserContext())->AddObserver(this);
+ BrowserContext::GetDownloadManager(
+ shell()->web_contents()->GetBrowserContext())->AddObserver(this);
CheckTitleTest(GetMockURL("content-sniffer-test3.html"),
- "Content Sniffer Test 3", 1);
- EXPECT_EQ(1, browser()->tab_count());
+ "Content Sniffer Test 3");
+ EXPECT_EQ(1u, Shell::windows().size());
ASSERT_FALSE(got_downloads());
}
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
ContentDispositionEmpty) {
- CheckTitleTest(GetMockURL("content-disposition-empty.html"), "success", 1);
+ CheckTitleTest(GetMockURL("content-disposition-empty.html"), "success");
}
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
ContentDispositionInline) {
- CheckTitleTest(GetMockURL("content-disposition-inline.html"), "success", 1);
+ CheckTitleTest(GetMockURL("content-disposition-inline.html"), "success");
}
// Test for bug #1091358.
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, SyncXMLHttpRequest) {
ASSERT_TRUE(test_server()->Start());
- ui_test_utils::NavigateToURL(
- browser(), test_server()->GetURL("files/sync_xmlhttprequest.html"));
+ NavigateToURL(
+ shell(), test_server()->GetURL("files/sync_xmlhttprequest.html"));
// Let's check the XMLHttpRequest ran successfully.
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(),
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(),
L"",
L"window.domAutomationController.send(DidSyncRequestSucceed());",
&success));
@@ -227,14 +212,14 @@
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
SyncXMLHttpRequest_Disallowed) {
ASSERT_TRUE(test_server()->Start());
- ui_test_utils::NavigateToURL(
- browser(),
+ NavigateToURL(
+ shell(),
test_server()->GetURL("files/sync_xmlhttprequest_disallowed.html"));
// Let's check the XMLHttpRequest ran successfully.
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(),
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(),
L"",
L"window.domAutomationController.send(DidSucceed());",
&success));
@@ -248,17 +233,17 @@
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
SyncXMLHttpRequest_DuringUnload) {
ASSERT_TRUE(test_server()->Start());
- BrowserContext::GetDownloadManager(GetBrowserContext())->AddObserver(this);
+ BrowserContext::GetDownloadManager(
+ shell()->web_contents()->GetBrowserContext())->AddObserver(this);
CheckTitleTest(
test_server()->GetURL("files/sync_xmlhttprequest_during_unload.html"),
- "sync xhr on unload", 1);
+ "sync xhr on unload");
// Navigate to a new page, to dispatch unload event and trigger xhr.
// (the bug would make this step hang the renderer).
CheckTitleTest(
- test_server()->GetURL("files/title2.html"),
- "Title Of Awesomeness", 1);
+ test_server()->GetURL("files/title2.html"), "Title Of Awesomeness");
ASSERT_FALSE(got_downloads());
}
@@ -269,39 +254,30 @@
ASSERT_TRUE(test_server()->Start());
GURL url = test_server()->GetURL("files/onunload_cookie.html");
- CheckTitleTest(url, "set cookie on unload", 1);
+ CheckTitleTest(url, "set cookie on unload");
// Navigate to a new cross-site page, to dispatch unload event and set the
// cookie.
CheckTitleTest(GetMockURL("content-sniffer-test0.html"),
- "Content Sniffer Test 0", 1);
+ "Content Sniffer Test 0");
// Check that the cookie was set.
EXPECT_EQ("onunloadCookie=foo", GetCookies(url));
}
-// ResourceDispatcherHostBrowserTest.CrossSiteImmediateLoadOnunloadCookie is
-// flaky on Windows. http://crbug.com/130404
-#if defined (OS_WIN)
-#define MAYBE_CrossSiteImmediateLoadOnunloadCookie \
- DISABLED_CrossSiteImmediateLoadOnunloadCookie
-#else
-#define MAYBE_CrossSiteImmediateLoadOnunloadCookie \
- CrossSiteImmediateLoadOnunloadCookie
-#endif
-
+// If this flakes, use http://crbug.com/130404
// Tests that onunload is run for cross-site requests to URLs that complete
// without network loads (e.g., about:blank, data URLs).
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
- MAYBE_CrossSiteImmediateLoadOnunloadCookie) {
+ CrossSiteImmediateLoadOnunloadCookie) {
ASSERT_TRUE(test_server()->Start());
GURL url = test_server()->GetURL("files/onunload_cookie.html");
- CheckTitleTest(url, "set cookie on unload", 1);
+ CheckTitleTest(url, "set cookie on unload");
// Navigate to a cross-site page that loads immediately without making a
// network request. The unload event should still be run.
- ui_test_utils::NavigateToURL(browser(), GURL("about:blank"));
+ NavigateToURL(shell(), GURL("about:blank"));
// Check that the cookie was set.
EXPECT_EQ("onunloadCookie=foo", GetCookies(url));
@@ -315,10 +291,10 @@
// Start with a URL that sets a cookie in its unload handler.
GURL url = test_server()->GetURL("files/onunload_cookie.html");
- CheckTitleTest(url, "set cookie on unload", 1);
+ CheckTitleTest(url, "set cookie on unload");
// Navigate to a cross-site URL that returns a 204 No Content response.
- ui_test_utils::NavigateToURL(browser(), test_server()->GetURL("nocontent"));
+ NavigateToURL(shell(), test_server()->GetURL("nocontent"));
// Check that the unload cookie was not set.
EXPECT_EQ("", GetCookies(url));
@@ -335,17 +311,17 @@
// strip the app on the build bots, this is bad times.
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest, CrossSiteAfterCrash) {
// Cause the renderer to crash.
- content::WindowedNotificationObserver crash_observer(
- content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
- content::NotificationService::AllSources());
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUICrashURL));
+ WindowedNotificationObserver crash_observer(
+ NOTIFICATION_RENDERER_PROCESS_CLOSED,
+ NotificationService::AllSources());
+ NavigateToURL(shell(), GURL(chrome::kChromeUICrashURL));
// Wait for browser to notice the renderer crash.
crash_observer.Wait();
// Navigate to a new cross-site page. The browser should not wait around for
// the old renderer's on{before}unload handlers to run.
CheckTitleTest(GetMockURL("content-sniffer-test0.html"),
- "Content Sniffer Test 0", 1);
+ "Content Sniffer Test 0");
}
#endif // !defined(OS_MACOSX)
@@ -355,13 +331,12 @@
CrossSiteNavigationNonBuffered) {
// Start with an HTTP page.
CheckTitleTest(GetMockURL("content-sniffer-test0.html"),
- "Content Sniffer Test 0", 1);
+ "Content Sniffer Test 0");
// Now load a file:// page, which does not use the BufferedEventHandler.
// Make sure that the page loads and displays a title, and doesn't get stuck.
- GURL url = ui_test_utils::GetTestUrl(FilePath(),
- FilePath().AppendASCII("title2.html"));
- CheckTitleTest(url, "Title Of Awesomeness", 1);
+ GURL url = GetTestUrl("", "title2.html");
+ CheckTitleTest(url, "Title Of Awesomeness");
}
// Tests that a cross-site navigation to an error page (resulting in the link
@@ -373,19 +348,18 @@
ASSERT_TRUE(test_server()->Start());
GURL url(test_server()->GetURL("files/onunload_cookie.html"));
- CheckTitleTest(url, "set cookie on unload", 1);
+ CheckTitleTest(url, "set cookie on unload");
- // Navigate to a new cross-site URL that results in an error page.
+ // Navigate to a new cross-site URL that results in an error.
// TODO(creis): If this causes crashes or hangs, it might be for the same
// reason as ErrorPageTest::DNSError. See bug 1199491 and
// http://crbug.com/22877.
GURL failed_url = URLRequestFailedJob::GetMockHttpUrl(
net::ERR_NAME_NOT_RESOLVED);
- ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
- browser(), failed_url, 2);
+ NavigateToURL(shell(), failed_url);
EXPECT_NE(ASCIIToUTF16("set cookie on unload"),
- chrome::GetActiveWebContents(browser())->GetTitle());
+ shell()->web_contents()->GetTitle());
// Check that the cookie was set, meaning that the onunload handler ran.
EXPECT_EQ("onunloadCookie=foo", GetCookies(url));
@@ -400,16 +374,15 @@
// pages of which the error page is one. Instead, use automation to kick
// off the navigation, and wait to see that the tab loads.
string16 expected_title16(ASCIIToUTF16("Title Of Awesomeness"));
- content::TitleWatcher title_watcher(
- chrome::GetActiveWebContents(browser()), expected_title16);
+ TitleWatcher title_watcher(shell()->web_contents(), expected_title16);
bool success;
GURL test_url(test_server()->GetURL("files/title2.html"));
std::string redirect_script = "window.location='" +
test_url.possibly_invalid_spec() + "';" +
"window.domAutomationController.send(true);";
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(),
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(),
L"", ASCIIToWide(redirect_script), &success));
EXPECT_EQ(expected_title16, title_watcher.WaitAndGetTitle());
}
@@ -419,25 +392,23 @@
ASSERT_TRUE(test_server()->Start());
GURL url(test_server()->GetURL("files/title2.html"));
- CheckTitleTest(url, "Title Of Awesomeness", 1);
+ CheckTitleTest(url, "Title Of Awesomeness");
- // Navigate to a new cross-site URL that results in an error page.
+ // Navigate to a new cross-site URL that results in an error.
// TODO(creis): If this causes crashes or hangs, it might be for the same
// reason as ErrorPageTest::DNSError. See bug 1199491 and
// http://crbug.com/22877.
GURL failed_url = URLRequestFailedJob::GetMockHttpUrl(
net::ERR_NAME_NOT_RESOLVED);
- ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
- browser(), failed_url, 2);
+ NavigateToURL(shell(), failed_url);
EXPECT_NE(ASCIIToUTF16("Title Of Awesomeness"),
- chrome::GetActiveWebContents(browser())->GetTitle());
+ shell()->web_contents()->GetTitle());
// Repeat navigation. We are testing that this completes.
- ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
- browser(), failed_url, 2);
+ NavigateToURL(shell(), failed_url);
EXPECT_NE(ASCIIToUTF16("Title Of Awesomeness"),
- chrome::GetActiveWebContents(browser())->GetTitle());
+ shell()->web_contents()->GetTitle());
}
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
@@ -450,7 +421,7 @@
// If the redirect in #2 were not blocked, we'd also see a request
// for http://mock.http:4000/title2.html, and the title would be different.
CheckTitleTest(GetMockURL("cross-origin-redirect-blocked.html"),
- "Title Of More Awesomeness", 2);
+ "Title Of More Awesomeness");
}
// Tests that ResourceRequestInfoImpl is updated correctly on failed
@@ -459,10 +430,11 @@
IN_PROC_BROWSER_TEST_F(ResourceDispatcherHostBrowserTest,
CrossSiteFailedRequest) {
// Visit another URL first to trigger a cross-site navigation.
- GURL url(content::kTestNewTabURL);
- ui_test_utils::NavigateToURL(browser(), url);
+ NavigateToURL(shell(), GetTestUrl("", "simple_page.html"));
// Visit a URL that fails without calling ResourceDispatcherHost::Read.
GURL broken_url("chrome://theme");
- CheckTitleTest(broken_url, "chrome://theme/ is not available", 1);
+ NavigateToURL(shell(), broken_url);
}
+
+} // namespace content
« no previous file with comments | « chrome/test/perf/shutdown_test.cc ('k') | content/content_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698