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

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 1922683003: Make old task manager tests work against new task manager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix OSX function call namespace Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 #include <deque> 6 #include <deque>
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 1342 matching lines...) Expand 10 before | Expand all | Expand 10 after
1353 } 1353 }
1354 1354
1355 void DisableJavascriptCalls() { 1355 void DisableJavascriptCalls() {
1356 call_javascript_ = false; 1356 call_javascript_ = false;
1357 } 1357 }
1358 1358
1359 void DisableLoadEventCheck() { 1359 void DisableLoadEventCheck() {
1360 check_load_events_ = false; 1360 check_load_events_ = false;
1361 } 1361 }
1362 1362
1363 TaskManagerModel* GetModel() const {
1364 return TaskManager::GetInstance()->model();
1365 }
1366
1367 PrerenderManager* GetPrerenderManager() const { 1363 PrerenderManager* GetPrerenderManager() const {
1368 PrerenderManager* prerender_manager = 1364 PrerenderManager* prerender_manager =
1369 PrerenderManagerFactory::GetForProfile(current_browser()->profile()); 1365 PrerenderManagerFactory::GetForProfile(current_browser()->profile());
1370 return prerender_manager; 1366 return prerender_manager;
1371 } 1367 }
1372 1368
1373 const PrerenderLinkManager* GetPrerenderLinkManager() const { 1369 const PrerenderLinkManager* GetPrerenderLinkManager() const {
1374 PrerenderLinkManager* prerender_link_manager = 1370 PrerenderLinkManager* prerender_link_manager =
1375 PrerenderLinkManagerFactory::GetForProfile( 1371 PrerenderLinkManagerFactory::GetForProfile(
1376 current_browser()->profile()); 1372 current_browser()->profile());
(...skipping 1090 matching lines...) Expand 10 before | Expand all | Expand 10 after
2467 EXPECT_FALSE(UrlIsInPrerenderManager(kHtmlFileB)); 2463 EXPECT_FALSE(UrlIsInPrerenderManager(kHtmlFileB));
2468 2464
2469 // Cancel the prerender. 2465 // Cancel the prerender.
2470 GetPrerenderManager()->CancelAllPrerenders(); 2466 GetPrerenderManager()->CancelAllPrerenders();
2471 prerender->WaitForStop(); 2467 prerender->WaitForStop();
2472 2468
2473 // All prerenders are now gone. 2469 // All prerenders are now gone.
2474 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 2470 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
2475 } 2471 }
2476 2472
2473 #if defined(ENABLE_TASK_MANAGER)
2474
2477 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerBeforePrerender) { 2475 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerBeforePrerender) {
2478 // This test is for the old implementation of the task manager. We must
2479 // explicitly disable the new one.
2480 task_manager::browsertest_util::EnableOldTaskManager();
2481
2482 const base::string16 any_prerender = MatchTaskManagerPrerender("*"); 2476 const base::string16 any_prerender = MatchTaskManagerPrerender("*");
2483 const base::string16 any_tab = MatchTaskManagerTab("*"); 2477 const base::string16 any_tab = MatchTaskManagerTab("*");
2484 const base::string16 original = MatchTaskManagerTab("Preloader"); 2478 const base::string16 original = MatchTaskManagerTab("Preloader");
2485 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page"); 2479 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page");
2486 const base::string16 final = MatchTaskManagerTab("Prerender Page"); 2480 const base::string16 final = MatchTaskManagerTab("Prerender Page");
2487 2481
2488 // Show the task manager. This populates the model. 2482 // Show the task manager. This populates the model.
2489 chrome::OpenTaskManager(current_browser()); 2483 chrome::OpenTaskManager(current_browser());
2490 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); 2484 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
2491 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); 2485 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender));
(...skipping 15 matching lines...) Expand all
2507 // The "Prerender: " TaskManager entry should disappear, being replaced by a 2501 // The "Prerender: " TaskManager entry should disappear, being replaced by a
2508 // "Tab: Prerender Page" entry, and nothing else. 2502 // "Tab: Prerender Page" entry, and nothing else.
2509 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender)); 2503 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender));
2510 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original)); 2504 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original));
2511 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final)); 2505 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final));
2512 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); 2506 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
2513 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); 2507 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender));
2514 } 2508 }
2515 2509
2516 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerAfterPrerender) { 2510 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerAfterPrerender) {
2517 // This test is for the old implementation of the task manager. We must
2518 // explicitly disable the new one.
2519 task_manager::browsertest_util::EnableOldTaskManager();
2520
2521 const base::string16 any_prerender = MatchTaskManagerPrerender("*"); 2511 const base::string16 any_prerender = MatchTaskManagerPrerender("*");
2522 const base::string16 any_tab = MatchTaskManagerTab("*"); 2512 const base::string16 any_tab = MatchTaskManagerTab("*");
2523 const base::string16 original = MatchTaskManagerTab("Preloader"); 2513 const base::string16 original = MatchTaskManagerTab("Preloader");
2524 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page"); 2514 const base::string16 prerender = MatchTaskManagerPrerender("Prerender Page");
2525 const base::string16 final = MatchTaskManagerTab("Prerender Page"); 2515 const base::string16 final = MatchTaskManagerTab("Prerender Page");
2526 2516
2527 // Start with two resources. 2517 // Start with two resources.
2528 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); 2518 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
2529 2519
2530 // Show the task manager. This populates the model. Importantly, we're doing 2520 // Show the task manager. This populates the model. Importantly, we're doing
(...skipping 14 matching lines...) Expand all
2545 // The "Prerender: Prerender Page" TaskManager row should disappear, being 2535 // The "Prerender: Prerender Page" TaskManager row should disappear, being
2546 // replaced by "Tab: Prerender Page" 2536 // replaced by "Tab: Prerender Page"
2547 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender)); 2537 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, prerender));
2548 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original)); 2538 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, original));
2549 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final)); 2539 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final));
2550 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); 2540 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
2551 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); 2541 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender));
2552 } 2542 }
2553 2543
2554 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerAfterSwapIn) { 2544 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, OpenTaskManagerAfterSwapIn) {
2555 // This test is for the old implementation of the task manager. We must
2556 // explicitly disable the new one.
2557 task_manager::browsertest_util::EnableOldTaskManager();
2558
2559 const base::string16 any_prerender = MatchTaskManagerPrerender("*"); 2545 const base::string16 any_prerender = MatchTaskManagerPrerender("*");
2560 const base::string16 any_tab = MatchTaskManagerTab("*"); 2546 const base::string16 any_tab = MatchTaskManagerTab("*");
2561 const base::string16 final = MatchTaskManagerTab("Prerender Page"); 2547 const base::string16 final = MatchTaskManagerTab("Prerender Page");
2562 2548
2563 // Prerender, and swap it in. 2549 // Prerender, and swap it in.
2564 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); 2550 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
2565 NavigateToDestURL(); 2551 NavigateToDestURL();
2566 2552
2567 // Show the task manager. This populates the model. Importantly, we're doing 2553 // Show the task manager. This populates the model. Importantly, we're doing
2568 // this after the prerender has been swapped in. 2554 // this after the prerender has been swapped in.
2569 chrome::OpenTaskManager(current_browser()); 2555 chrome::OpenTaskManager(current_browser());
2570 2556
2571 // We should not see a prerender resource in the task manager, just a normal 2557 // We should not see a prerender resource in the task manager, just a normal
2572 // page. 2558 // page.
2573 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final)); 2559 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, final));
2574 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab)); 2560 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(1, any_tab));
2575 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender)); 2561 ASSERT_NO_FATAL_FAILURE(WaitForTaskManagerRows(0, any_prerender));
2576 } 2562 }
2577 2563
2564 #endif // defined(ENABLE_TASK_MANAGER)
2565
2578 // Checks that audio loads are deferred on prerendering. 2566 // Checks that audio loads are deferred on prerendering.
2579 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) { 2567 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) {
2580 PrerenderTestURL("/prerender/prerender_html5_audio.html", FINAL_STATUS_USED, 2568 PrerenderTestURL("/prerender/prerender_html5_audio.html", FINAL_STATUS_USED,
2581 1); 2569 1);
2582 NavigateToDestURL(); 2570 NavigateToDestURL();
2583 WaitForASCIITitle(GetActiveWebContents(), kPassTitle); 2571 WaitForASCIITitle(GetActiveWebContents(), kPassTitle);
2584 } 2572 }
2585 2573
2586 // Checks that audio loads are deferred on prerendering and played back when 2574 // Checks that audio loads are deferred on prerendering and played back when
2587 // the prerender is swapped in if autoplay is set. 2575 // the prerender is swapped in if autoplay is set.
(...skipping 1410 matching lines...) Expand 10 before | Expand all | Expand 10 after
3998 WebContents* web_contents = 3986 WebContents* web_contents =
3999 browser()->tab_strip_model()->GetActiveWebContents(); 3987 browser()->tab_strip_model()->GetActiveWebContents();
4000 bool display_test_result = false; 3988 bool display_test_result = false;
4001 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, 3989 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents,
4002 "DidDisplayReallyPass()", 3990 "DidDisplayReallyPass()",
4003 &display_test_result)); 3991 &display_test_result));
4004 ASSERT_TRUE(display_test_result); 3992 ASSERT_TRUE(display_test_result);
4005 } 3993 }
4006 #endif // !defined(DISABLE_NACL) 3994 #endif // !defined(DISABLE_NACL)
4007 3995
4008 #if defined(ENABLE_TASK_MANAGER)
4009
4010 namespace {
4011
4012 base::string16 GetPrerenderTitlePrefix() {
4013 return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_PRERENDER_PREFIX,
4014 base::string16());
4015 }
4016
4017 const std::vector<task_management::WebContentsTag*>& GetTrackedTags() {
4018 return task_management::WebContentsTagsManager::GetInstance()->
4019 tracked_tags();
4020 }
4021
4022 // Tests the correct recording of tags for the prerender WebContents.
4023 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, TaskManagementTagsBasic) {
4024 // Browser tests start with a single tab.
4025 EXPECT_EQ(1U, GetTrackedTags().size());
4026
4027 // Start prerendering a page and make sure it's correctly tagged.
4028 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
4029 EXPECT_EQ(2U, GetTrackedTags().size());
4030
4031 // Swap in the prerendered content and make sure its tag is removed.
4032 NavigateToDestURL();
4033 EXPECT_EQ(1U, GetTrackedTags().size());
4034 }
4035
4036 // Tests that the task manager will be provided by tasks that correspond to
4037 // prerendered WebContents.
4038 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, TaskManagementTasksProvided) {
4039 task_management::MockWebContentsTaskManager task_manager;
4040 // Browser tests start with a single tab.
4041 EXPECT_EQ(1U, GetTrackedTags().size());
4042
4043 task_manager.StartObserving();
4044
4045 // The pre-existing tab is provided.
4046 EXPECT_EQ(1U, task_manager.tasks().size());
4047
4048 // Start prerendering a page.
4049 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
4050
4051 EXPECT_EQ(2U, GetTrackedTags().size());
4052 ASSERT_EQ(2U, task_manager.tasks().size());
4053
4054 const task_management::Task* task = task_manager.tasks().back();
4055 EXPECT_EQ(task_management::Task::RENDERER, task->GetType());
4056 const base::string16 title = task->title();
4057 const base::string16 expected_prefix = GetPrerenderTitlePrefix();
4058 EXPECT_TRUE(base::StartsWith(title,
4059 expected_prefix,
4060 base::CompareCase::INSENSITIVE_ASCII));
4061
4062 NavigateToDestURL();
4063 EXPECT_EQ(1U, task_manager.tasks().size());
4064 }
4065
4066 } // namespace
4067
4068 #endif // defined(ENABLE_TASK_MANAGER)
4069
4070 } // namespace prerender 3996 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/extensions/app_background_page_apitest.cc ('k') | chrome/browser/task_manager/task_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698