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

Side by Side Diff: chrome/browser/errorpage_browsertest.cc

Issue 1639953002: Network error interstitial update - add suggestions list (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix browser and unit tests Created 4 years, 10 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 <utility> 5 #include <utility>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/files/scoped_temp_dir.h" 10 #include "base/files/scoped_temp_dir.h"
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 EXPECT_TRUE(content::ExecuteScriptAndExtractBool( 119 EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
120 browser->tab_strip_model()->GetActiveWebContents(), command, &result)); 120 browser->tab_strip_model()->GetActiveWebContents(), command, &result));
121 return result; 121 return result;
122 } 122 }
123 123
124 // Checks that the local error page is being displayed, without remotely 124 // Checks that the local error page is being displayed, without remotely
125 // retrieved navigation corrections, and with the specified error code. 125 // retrieved navigation corrections, and with the specified error code.
126 void ExpectDisplayingLocalErrorPage(Browser* browser, net::Error error_code) { 126 void ExpectDisplayingLocalErrorPage(Browser* browser, net::Error error_code) {
127 EXPECT_TRUE(IsDisplayingNetError(browser, error_code)); 127 EXPECT_TRUE(IsDisplayingNetError(browser, error_code));
128 128
129 // Expand the help box so innerText will include text below the fold. 129 // Locally generated error pages should not have navigation corrections.
130 ToggleHelpBox(browser); 130 EXPECT_FALSE(IsDisplayingText(browser, "http://mock.http/title2.html"));
131 131
132 // Locally generated error pages should not have navigation corrections. 132 // Locally generated error pages should not have a link with search terms.
133 EXPECT_FALSE(IsDisplayingText(browser, "http://correction1/")); 133 EXPECT_FALSE(IsDisplayingText(browser, "search query"));
134 EXPECT_FALSE(IsDisplayingText(browser, "http://correction2/"));
135
136 // Locally generated error pages should not have a populated search box.
137 bool search_box_populated = false;
138 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
139 browser->tab_strip_model()->GetActiveWebContents(),
140 "var searchText = document.getElementById('search-box').value;"
141 "domAutomationController.send(searchText == 'search query');",
142 &search_box_populated));
143 EXPECT_FALSE(search_box_populated);
144 } 134 }
145 135
146 // Checks that an error page with information retrieved from the navigation 136 // Checks that an error page with information retrieved from the navigation
147 // correction service is being displayed, with the specified specified error 137 // correction service is being displayed, with the specified specified error
148 // code. 138 // code.
149 void ExpectDisplayingNavigationCorrections(Browser* browser, 139 void ExpectDisplayingNavigationCorrections(Browser* browser,
150 net::Error error_code) { 140 net::Error error_code) {
151 EXPECT_TRUE(IsDisplayingNetError(browser, error_code)); 141 EXPECT_TRUE(IsDisplayingNetError(browser, error_code));
152 142
153 // Expand the help box so innerText will include text below the fold. 143 // Check that the mock navigation corrections are displayed.
154 ToggleHelpBox(browser); 144 EXPECT_TRUE(IsDisplayingText(browser, "http://mock.http/title2.html"));
155 145
156 // Check that the mock navigation corrections are displayed. 146 // Check that the search terms are displayed as a link.
157 EXPECT_TRUE(IsDisplayingText(browser, "http://correction1/")); 147 EXPECT_TRUE(IsDisplayingText(browser, "search query"));
158 EXPECT_TRUE(IsDisplayingText(browser, "http://correction2/"));
159
160 // Check that the search box is populated correctly.
161 bool search_box_populated = false;
162 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
163 browser->tab_strip_model()->GetActiveWebContents(),
164 "var searchText = document.getElementById('search-box').value;"
165 "domAutomationController.send(searchText == 'search query');",
166 &search_box_populated));
167 EXPECT_TRUE(search_box_populated);
168 148
169 // The diagnostics button isn't displayed when corrections were 149 // The diagnostics button isn't displayed when corrections were
170 // retrieved from a remote server. 150 // retrieved from a remote server.
171 EXPECT_FALSE(IsDisplayingDiagnosticsButton(browser)); 151 EXPECT_FALSE(IsDisplayingDiagnosticsButton(browser));
172
173 // Close help box again, to return page to original state.
174 ToggleHelpBox(browser);
175 } 152 }
176 153
177 std::string GetShowSavedButtonLabel() { 154 std::string GetShowSavedButtonLabel() {
178 return l10n_util::GetStringUTF8(IDS_ERRORPAGES_BUTTON_SHOW_SAVED_COPY); 155 return l10n_util::GetStringUTF8(IDS_ERRORPAGES_BUTTON_SHOW_SAVED_COPY);
179 } 156 }
180 157
181 void AddInterceptorForURL( 158 void AddInterceptorForURL(
182 const GURL& url, 159 const GURL& url,
183 scoped_ptr<net::URLRequestInterceptor> handler) { 160 scoped_ptr<net::URLRequestInterceptor> handler) {
184 DCHECK_CURRENTLY_ON(BrowserThread::IO); 161 DCHECK_CURRENTLY_ON(BrowserThread::IO);
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 GoBackAndWaitForTitle("Title Of More Awesomeness", 1); 642 GoBackAndWaitForTitle("Title Of More Awesomeness", 1);
666 643
667 GoForwardAndWaitForNavigations(2); 644 GoForwardAndWaitForNavigations(2);
668 ExpectDisplayingNavigationCorrections(browser(), net::ERR_NAME_NOT_RESOLVED); 645 ExpectDisplayingNavigationCorrections(browser(), net::ERR_NAME_NOT_RESOLVED);
669 EXPECT_EQ(3, link_doctor_interceptor()->num_requests()); 646 EXPECT_EQ(3, link_doctor_interceptor()->num_requests());
670 647
671 GoForwardAndWaitForTitle("Title Of Awesomeness", 1); 648 GoForwardAndWaitForTitle("Title Of Awesomeness", 1);
672 EXPECT_EQ(3, link_doctor_interceptor()->num_requests()); 649 EXPECT_EQ(3, link_doctor_interceptor()->num_requests());
673 } 650 }
674 651
675 // Test that the search button on a DNS error page works. 652 // Test that the search link on a DNS error page works.
676 IN_PROC_BROWSER_TEST_F(ErrorPageTest, DNSError_DoSearch) { 653 IN_PROC_BROWSER_TEST_F(ErrorPageTest, DNSError_DoSearch) {
677 // The first navigation should fail, and the second one should be the error 654 // The first navigation should fail, and the second one should be the error
678 // page. 655 // page.
679 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( 656 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
680 browser(), GetDnsErrorURL(), 2); 657 browser(), GetDnsErrorURL(), 2);
681 ExpectDisplayingNavigationCorrections(browser(), net::ERR_NAME_NOT_RESOLVED); 658 ExpectDisplayingNavigationCorrections(browser(), net::ERR_NAME_NOT_RESOLVED);
682 EXPECT_EQ(1, link_doctor_interceptor()->num_requests()); 659 EXPECT_EQ(1, link_doctor_interceptor()->num_requests());
683 660
684 content::WebContents* web_contents = 661 content::WebContents* web_contents =
685 browser()->tab_strip_model()->GetActiveWebContents(); 662 browser()->tab_strip_model()->GetActiveWebContents();
686 663
687 // Do a search and make sure the browser ends up at the right page. 664 // Do a search and make sure the browser ends up at the right page.
688 content::TestNavigationObserver nav_observer(web_contents, 1); 665 content::TestNavigationObserver nav_observer(web_contents, 1);
689 content::TitleWatcher title_watcher( 666 content::TitleWatcher title_watcher(
690 web_contents, 667 web_contents,
691 base::ASCIIToUTF16("Title Of More Awesomeness")); 668 base::ASCIIToUTF16("Title Of More Awesomeness"));
692 // Can't use content::ExecuteScript because it waits for scripts to send 669 // Can't use content::ExecuteScript because it waits for scripts to send
693 // notification that they've run, and scripts that trigger a navigation may 670 // notification that they've run, and scripts that trigger a navigation may
694 // not send that notification. 671 // not send that notification.
695 web_contents->GetMainFrame()->ExecuteJavaScriptForTests( 672 web_contents->GetMainFrame()->ExecuteJavaScriptForTests(
696 base::ASCIIToUTF16("document.getElementById('search-button').click();")); 673 base::ASCIIToUTF16("document.getElementById('search-link').click();"));
697 nav_observer.Wait(); 674 nav_observer.Wait();
698 EXPECT_EQ(base::ASCIIToUTF16("Title Of More Awesomeness"), 675 EXPECT_EQ(base::ASCIIToUTF16("Title Of More Awesomeness"),
699 title_watcher.WaitAndGetTitle()); 676 title_watcher.WaitAndGetTitle());
700 677
701 // There should have been another Link Doctor request, for tracking purposes. 678 // There should have been another Link Doctor request, for tracking purposes.
702 // Have to wait for it, since the search page does not depend on having 679 // Have to wait for it, since the search page does not depend on having
703 // sent the tracking request. 680 // sent the tracking request.
704 link_doctor_interceptor()->WaitForRequests(2); 681 link_doctor_interceptor()->WaitForRequests(2);
705 EXPECT_EQ(2, link_doctor_interceptor()->num_requests()); 682 EXPECT_EQ(2, link_doctor_interceptor()->num_requests());
706 683
(...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after
1479 IN_PROC_BROWSER_TEST_F(ErrorPageForIDNTest, IDN) { 1456 IN_PROC_BROWSER_TEST_F(ErrorPageForIDNTest, IDN) {
1480 // ERR_UNSAFE_PORT will not trigger navigation corrections. 1457 // ERR_UNSAFE_PORT will not trigger navigation corrections.
1481 ui_test_utils::NavigateToURL( 1458 ui_test_utils::NavigateToURL(
1482 browser(), 1459 browser(),
1483 URLRequestFailedJob::GetMockHttpUrlForHostname(net::ERR_UNSAFE_PORT, 1460 URLRequestFailedJob::GetMockHttpUrlForHostname(net::ERR_UNSAFE_PORT,
1484 kHostname)); 1461 kHostname));
1485 EXPECT_TRUE(IsDisplayingText(browser(), kHostnameJSUnicode)); 1462 EXPECT_TRUE(IsDisplayingText(browser(), kHostnameJSUnicode));
1486 } 1463 }
1487 1464
1488 } // namespace 1465 } // namespace
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/net/dns_probe_browsertest.cc » ('j') | chrome/browser/net/dns_probe_browsertest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698