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 8b5ac6200d2c48b431901baf5915ff073d70a3b7..8793754086e4bbba9220124867be3dd794b224c8 100644 |
| --- a/chrome/browser/prerender/prerender_browsertest.cc |
| +++ b/chrome/browser/prerender/prerender_browsertest.cc |
| @@ -580,7 +580,8 @@ class RestorePrerenderMode { |
| class PrerenderBrowserTest : virtual public InProcessBrowserTest { |
| public: |
| PrerenderBrowserTest() |
| - : prerender_contents_factory_(NULL), |
| + : autostart_test_server_(true), |
| + prerender_contents_factory_(NULL), |
| #if defined(FULL_SAFE_BROWSING) |
| safe_browsing_factory_(new TestSafeBrowsingServiceFactory()), |
| #endif |
| @@ -624,7 +625,8 @@ class PrerenderBrowserTest : virtual public InProcessBrowserTest { |
| current_browser()->profile()->GetPrefs()->SetBoolean( |
| prefs::kPromptForDownload, false); |
| IncreasePrerenderMemory(); |
| - ASSERT_TRUE(test_server()->Start()); |
| + if (autostart_test_server_) |
| + ASSERT_TRUE(test_server()->Start()); |
| } |
| // Overload for a single expected final status |
| @@ -977,6 +979,9 @@ class PrerenderBrowserTest : virtual public InProcessBrowserTest { |
| GetPrerenderManager()->mutable_config().max_bytes = 1000 * 1024 * 1024; |
| } |
| + protected: |
| + bool autostart_test_server_; |
| + |
| private: |
| void PrerenderTestURLImpl( |
| const GURL& prerender_url, |
| @@ -2642,11 +2647,13 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLReferrerPolicy) { |
| NavigateToDestURL(); |
| } |
| -// Test interaction of the webNavigation API with prerender. |
| +// Test interaction of the webNavigation and tabs API with prerender. |
| class PrerenderBrowserTestWithExtensions : public PrerenderBrowserTest, |
| public ExtensionApiTest { |
| public: |
| - PrerenderBrowserTestWithExtensions() {} |
| + PrerenderBrowserTestWithExtensions() { |
| + autostart_test_server_ = false; |
| + } |
| virtual ~PrerenderBrowserTestWithExtensions() {} |
| virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |
| @@ -2670,9 +2677,6 @@ class PrerenderBrowserTestWithExtensions : public PrerenderBrowserTest, |
| }; |
| IN_PROC_BROWSER_TEST_F(PrerenderBrowserTestWithExtensions, WebNavigation) { |
| - // PrerenderBrowserTest automatically started a test server. Restart it, so |
| - // ExtensionApiTest can register its test parameters. |
| - test_server()->Stop(); |
|
gavinp
2013/01/07 20:36:26
Nice change. Thank you! I like making tests faster
|
| ASSERT_TRUE(StartTestServer()); |
| extensions::FrameNavigationState::set_allow_extension_scheme(true); |
| @@ -2697,4 +2701,26 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTestWithExtensions, WebNavigation) { |
| ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| } |
| +IN_PROC_BROWSER_TEST_F(PrerenderBrowserTestWithExtensions, TabsApi) { |
| + ASSERT_TRUE(StartTestServer()); |
| + extensions::FrameNavigationState::set_allow_extension_scheme(true); |
| + |
| + // Wait for the extension to set itself up and return control to us. |
| + ASSERT_TRUE(RunExtensionSubtest("tabs/on_replaced", "on_replaced.html")) |
| + << message_; |
| + |
| + ResultCatcher catcher; |
| + |
| + PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); |
| + |
| + ChannelDestructionWatcher channel_close_watcher; |
| + channel_close_watcher.WatchChannel( |
| + chrome::GetActiveWebContents(browser())->GetRenderProcessHost()); |
| + NavigateToDestURL(); |
| + channel_close_watcher.WaitForChannelClose(); |
| + |
| + ASSERT_TRUE(IsEmptyPrerenderLinkManager()); |
| + ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| +} |
| + |
| } // namespace prerender |