| OLD | NEW |
| 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 <set> | 7 #include <set> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <unordered_map> | 9 #include <unordered_map> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 | 593 |
| 594 class PrerenderBrowserTest : public test_utils::PrerenderInProcessBrowserTest { | 594 class PrerenderBrowserTest : public test_utils::PrerenderInProcessBrowserTest { |
| 595 public: | 595 public: |
| 596 PrerenderBrowserTest() | 596 PrerenderBrowserTest() |
| 597 : call_javascript_(true), | 597 : call_javascript_(true), |
| 598 check_load_events_(true), | 598 check_load_events_(true), |
| 599 loader_path_("/prerender/prerender_loader.html") {} | 599 loader_path_("/prerender/prerender_loader.html") {} |
| 600 | 600 |
| 601 ~PrerenderBrowserTest() override {} | 601 ~PrerenderBrowserTest() override {} |
| 602 | 602 |
| 603 std::unique_ptr<TestPrerender> PrerenderTestURL( | |
| 604 const std::string& html_file, | |
| 605 FinalStatus expected_final_status, | |
| 606 int expected_number_of_loads) { | |
| 607 GURL url = src_server()->GetURL(MakeAbsolute(html_file)); | |
| 608 return PrerenderTestURL(url, expected_final_status, | |
| 609 expected_number_of_loads); | |
| 610 } | |
| 611 | |
| 612 std::unique_ptr<TestPrerender> PrerenderTestURL( | |
| 613 const GURL& url, | |
| 614 FinalStatus expected_final_status, | |
| 615 int expected_number_of_loads) { | |
| 616 std::vector<FinalStatus> expected_final_status_queue(1, | |
| 617 expected_final_status); | |
| 618 auto prerenders = PrerenderTestURLImpl(url, expected_final_status_queue, | |
| 619 expected_number_of_loads); | |
| 620 CHECK_EQ(1u, prerenders.size()); | |
| 621 return std::move(prerenders[0]); | |
| 622 } | |
| 623 | |
| 624 std::vector<std::unique_ptr<TestPrerender>> PrerenderTestURL( | |
| 625 const std::string& html_file, | |
| 626 const std::vector<FinalStatus>& expected_final_status_queue, | |
| 627 int expected_number_of_loads) { | |
| 628 GURL url = src_server()->GetURL(MakeAbsolute(html_file)); | |
| 629 return PrerenderTestURLImpl(url, expected_final_status_queue, | |
| 630 expected_number_of_loads); | |
| 631 } | |
| 632 | |
| 633 void SetUpCommandLine(base::CommandLine* command_line) override { | 603 void SetUpCommandLine(base::CommandLine* command_line) override { |
| 634 PrerenderInProcessBrowserTest::SetUpCommandLine(command_line); | 604 PrerenderInProcessBrowserTest::SetUpCommandLine(command_line); |
| 635 command_line->AppendSwitchASCII(switches::kPrerenderMode, | 605 command_line->AppendSwitchASCII(switches::kPrerenderMode, |
| 636 switches::kPrerenderModeSwitchValueEnabled); | 606 switches::kPrerenderModeSwitchValueEnabled); |
| 637 } | 607 } |
| 638 | 608 |
| 639 void SetUpInProcessBrowserTestFixture() override { | 609 void SetUpInProcessBrowserTestFixture() override { |
| 640 test_utils::PrerenderInProcessBrowserTest:: | 610 test_utils::PrerenderInProcessBrowserTest:: |
| 641 SetUpInProcessBrowserTestFixture(); | 611 SetUpInProcessBrowserTestFixture(); |
| 642 | 612 |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 933 private: | 903 private: |
| 934 // TODO(davidben): Remove this altogether so the tests don't globally assume | 904 // TODO(davidben): Remove this altogether so the tests don't globally assume |
| 935 // only one prerender. | 905 // only one prerender. |
| 936 TestPrerenderContents* GetPrerenderContents() const { | 906 TestPrerenderContents* GetPrerenderContents() const { |
| 937 return GetPrerenderContentsFor(dest_url_); | 907 return GetPrerenderContentsFor(dest_url_); |
| 938 } | 908 } |
| 939 | 909 |
| 940 std::vector<std::unique_ptr<TestPrerender>> PrerenderTestURLImpl( | 910 std::vector<std::unique_ptr<TestPrerender>> PrerenderTestURLImpl( |
| 941 const GURL& prerender_url, | 911 const GURL& prerender_url, |
| 942 const std::vector<FinalStatus>& expected_final_status_queue, | 912 const std::vector<FinalStatus>& expected_final_status_queue, |
| 943 int expected_number_of_loads) { | 913 int expected_number_of_loads) override { |
| 944 dest_url_ = prerender_url; | 914 dest_url_ = prerender_url; |
| 945 | 915 |
| 946 GURL loader_url = ServeLoaderURL(loader_path_, "REPLACE_WITH_PRERENDER_URL", | 916 base::StringPairs replacement_text; |
| 947 prerender_url, "&" + loader_query_); | 917 replacement_text.push_back( |
| 918 make_pair("REPLACE_WITH_PRERENDER_URL", prerender_url.spec())); |
| 919 std::string replacement_path; |
| 920 net::test_server::GetFilePathWithReplacements( |
| 921 loader_path_, replacement_text, &replacement_path); |
| 922 |
| 923 GURL loader_url = |
| 924 src_server()->GetURL(replacement_path + "&" + loader_query_); |
| 925 |
| 948 GURL::Replacements loader_replacements; | 926 GURL::Replacements loader_replacements; |
| 949 if (!loader_host_override_.empty()) | 927 if (!loader_host_override_.empty()) |
| 950 loader_replacements.SetHostStr(loader_host_override_); | 928 loader_replacements.SetHostStr(loader_host_override_); |
| 951 loader_url = loader_url.ReplaceComponents(loader_replacements); | 929 loader_url = loader_url.ReplaceComponents(loader_replacements); |
| 952 | 930 |
| 953 std::vector<std::unique_ptr<TestPrerender>> prerenders = | 931 std::vector<std::unique_ptr<TestPrerender>> prerenders = |
| 954 NavigateWithPrerenders(loader_url, expected_final_status_queue); | 932 NavigateWithPrerenders(loader_url, expected_final_status_queue, |
| 955 prerenders[0]->WaitForLoads(expected_number_of_loads); | 933 expected_number_of_loads); |
| 956 | 934 |
| 957 FinalStatus expected_final_status = expected_final_status_queue.front(); | 935 FinalStatus expected_final_status = expected_final_status_queue.front(); |
| 958 if (ShouldAbortPrerenderBeforeSwap(expected_final_status)) { | 936 if (ShouldAbortPrerenderBeforeSwap(expected_final_status)) { |
| 959 // The prerender will abort on its own. Assert it does so correctly. | 937 // The prerender will abort on its own. Assert it does so correctly. |
| 960 prerenders[0]->WaitForStop(); | 938 prerenders[0]->WaitForStop(); |
| 961 EXPECT_FALSE(prerenders[0]->contents()); | 939 EXPECT_FALSE(prerenders[0]->contents()); |
| 962 EXPECT_TRUE(DidReceivePrerenderStopEventForLinkNumber(0)); | 940 EXPECT_TRUE(DidReceivePrerenderStopEventForLinkNumber(0)); |
| 963 } else { | 941 } else { |
| 964 // Otherwise, check that it prerendered correctly. | 942 // Otherwise, check that it prerendered correctly. |
| 965 TestPrerenderContents* prerender_contents = prerenders[0]->contents(); | 943 TestPrerenderContents* prerender_contents = prerenders[0]->contents(); |
| (...skipping 2393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3359 browser()->tab_strip_model()->GetActiveWebContents(); | 3337 browser()->tab_strip_model()->GetActiveWebContents(); |
| 3360 bool display_test_result = false; | 3338 bool display_test_result = false; |
| 3361 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, | 3339 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, |
| 3362 "DidDisplayReallyPass()", | 3340 "DidDisplayReallyPass()", |
| 3363 &display_test_result)); | 3341 &display_test_result)); |
| 3364 ASSERT_TRUE(display_test_result); | 3342 ASSERT_TRUE(display_test_result); |
| 3365 } | 3343 } |
| 3366 #endif // !defined(DISABLE_NACL) | 3344 #endif // !defined(DISABLE_NACL) |
| 3367 | 3345 |
| 3368 } // namespace prerender | 3346 } // namespace prerender |
| OLD | NEW |