Commit f772a0aa authored by Mugdha Lakhani's avatar Mugdha Lakhani Committed by Commit Bot

[Prerender] TaskManager tests.

Write equivalent tests to verify task manager behavior for
NoStatePrefetch and delete them from the Prerender test suite.

Please see this spreadsheet for details:
https://docs.google.com/spreadsheets/d/1LFPB4UhPWQkBRz481lz49zmS25znhjSDUtagtTTSPQo/edit?usp=sharing

Bug: 898955
Change-Id: Ibdb1d1996cfcb6866ee6cc257e5992e32e3bcd23
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2299235Reviewed-by: default avatarRyan Sturm <ryansturm@chromium.org>
Commit-Queue: Mugdha Lakhani <nator@chromium.org>
Cr-Commit-Position: refs/heads/master@{#789916}
parent 5e66a7f6
......@@ -135,7 +135,6 @@ using content::WebContents;
using content::WebContentsObserver;
using prerender::test_utils::TestPrerender;
using prerender::test_utils::TestPrerenderContents;
using task_manager::browsertest_util::WaitForTaskManagerRows;
// crbug.com/708158
#if !defined(OS_MACOSX) || !defined(ADDRESS_SANITIZER)
......@@ -790,75 +789,6 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNoSSLReferrer) {
NavigateToDestURL();
}
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerBeforePrerender) {
const base::string16 any_prerender = MatchTaskManagerPrerender("*");
const base::string16 any_tab = MatchTaskManagerTab("*");
const base::string16 original = MatchTaskManagerTab("Preloader");
const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page");
const base::string16 final = MatchTaskManagerTab("Prerender Page");
// Show the task manager. This populates the model.
chrome::OpenTaskManager(current_browser());
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender));
// Prerender a page in addition to the original tab.
PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
// A TaskManager entry should appear like "Prerender: Prerender Page"
// alongside the original tab entry. There should be just these two entries.
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, prerender));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, original));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, final));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_prerender));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
// Swap in the prerendered content.
NavigateToDestURL();
// The "Prerender: " TaskManager entry should disappear, being replaced by a
// "Tab: Prerender Page" entry, and nothing else.
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender));
}
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerAfterPrerender) {
const base::string16 any_prerender = MatchTaskManagerPrerender("*");
const base::string16 any_tab = MatchTaskManagerTab("*");
const base::string16 original = MatchTaskManagerTab("Preloader");
const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page");
const base::string16 final = MatchTaskManagerTab("Prerender Page");
// Start with two resources.
PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
// Show the task manager. This populates the model. Importantly, we're doing
// this after the prerender WebContents already exists - the task manager
// needs to find it, it can't just listen for creation.
chrome::OpenTaskManager(current_browser());
// A TaskManager entry should appear like "Prerender: Prerender Page"
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, prerender));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, original));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, final));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_prerender));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
// Swap in the tab.
NavigateToDestURL();
// The "Prerender: Prerender Page" TaskManager row should disappear, being
// replaced by "Tab: Prerender Page"
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender));
}
// Checks that the referrer policy is used when prerendering.
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderReferrerPolicy) {
set_loader_path("/prerender/prerender_loader_with_referrer_policy.html");
......
......@@ -76,6 +76,7 @@
using prerender::test_utils::DestructionWaiter;
using prerender::test_utils::TestPrerender;
using task_manager::browsertest_util::WaitForTaskManagerRows;
namespace {
......@@ -1874,4 +1875,30 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchOmniboxBrowserTest,
prerender->WaitForStop();
}
IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, OpenTaskManager) {
const base::string16 any_tab = MatchTaskManagerTab("*");
const base::string16 original = MatchTaskManagerTab("Prefetch Loader");
const base::string16 prefetch_page = MatchTaskManagerTab("Prefetch Page");
// Show the task manager. This populates the model.
chrome::OpenTaskManager(current_browser());
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prefetch_page));
// Prerender a page in addition to the original tab.
PrefetchFromFile(kPrefetchPage, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED);
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, original));
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
// ui_test_utils::NavigateToURL(current_browser(),
// src_server()->GetURL(kPrefetchPage));
// Open a new tab to replace the one closed with all the RenderProcessHosts.
ui_test_utils::NavigateToURLWithDisposition(
current_browser(), src_server()->GetURL(kPrefetchPage),
WindowOpenDisposition::NEW_FOREGROUND_TAB,
ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP);
ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, prefetch_page));
}
} // namespace prerender
......@@ -14,6 +14,7 @@ racy and often fetches resources it sees before the inline script has a chance
to execute.
-->
<body>
<title>Prefetch Page</title>
<script src="prefetch.js"></script>
<script>
var s = document.createElement("script");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment