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