Chromium Code Reviews| Index: chrome/browser/prerender/prerender_browsertest.cc |
| diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc |
| index 973b211842ae269781baafa2b30973e47b357d92..e2c136ecd1fb3a541072b864356e1f7d301e009e 100644 |
| --- a/chrome/browser/prerender/prerender_browsertest.cc |
| +++ b/chrome/browser/prerender/prerender_browsertest.cc |
| @@ -7,6 +7,7 @@ |
| #include "base/command_line.h" |
| #include "base/path_service.h" |
| #include "base/string_util.h" |
| +#include "base/utf_string_conversions.h" |
| #include "base/test/test_timeouts.h" |
| #include "chrome/browser/content_settings/host_content_settings_map.h" |
| #include "chrome/browser/favicon/favicon_tab_helper.h" |
| @@ -26,6 +27,7 @@ |
| #include "chrome/test/ui_test_utils.h" |
| #include "content/browser/renderer_host/render_view_host.h" |
| #include "content/browser/tab_contents/tab_contents.h" |
| +#include "content/browser/tab_contents/title_updated_details.h" |
|
mmenke
2011/06/10 00:53:09
nit: No longer needed.
cbentzel
2011/06/10 01:00:20
Done.
|
| #include "content/common/notification_service.h" |
| #include "grit/generated_resources.h" |
| #include "net/url_request/url_request_context.h" |
| @@ -317,7 +319,8 @@ class PrerenderBrowserTest : public InProcessBrowserTest { |
| : safe_browsing_factory_(new TestSafeBrowsingServiceFactory()), |
| prerender_contents_factory_(NULL), |
| use_https_src_server_(false), |
| - call_javascript_(true) { |
| + call_javascript_(true), |
| + loader_path_("files/prerender/prerender_loader.html") { |
| EnableDOMAutomation(); |
| } |
| @@ -468,6 +471,10 @@ class PrerenderBrowserTest : public InProcessBrowserTest { |
| prerender_manager()->FindEntry(dest_url_)); |
| } |
| + void set_loader_path(const std::string& path) { |
| + loader_path_ = path; |
| + } |
| + |
| private: |
| void PrerenderTestURLImpl( |
| const GURL& url, |
| @@ -480,7 +487,7 @@ class PrerenderBrowserTest : public InProcessBrowserTest { |
| make_pair("REPLACE_WITH_PRERENDER_URL", dest_url_.spec())); |
| std::string replacement_path; |
| ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( |
| - "files/prerender/prerender_loader.html", |
| + loader_path_, |
| replacement_text, |
| &replacement_path)); |
| @@ -571,6 +578,7 @@ class PrerenderBrowserTest : public InProcessBrowserTest { |
| GURL dest_url_; |
| bool use_https_src_server_; |
| bool call_javascript_; |
| + std::string loader_path_; |
| }; |
| // Checks that a page is correctly prerendered in the case of a |
| @@ -1360,4 +1368,15 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderFavicon) { |
| ->FaviconIsValid()); |
| } |
| +// Checks that when a prerendered page is swapped in to a referring page, the |
| +// unload handlers on the referring page are executed. |
| +IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderUnload) { |
| + set_loader_path("files/prerender/prerender_loader_with_unload.html"); |
| + PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); |
| + ui_test_utils::TitleWatcher title_watcher(browser()->GetSelectedTabContents(), |
| + ASCIIToUTF16("Unloaded")); |
| + NavigateToDestURL(); |
| + EXPECT_TRUE(title_watcher.Wait()); |
| +} |
| + |
| } // namespace prerender |