| Index: chrome/browser/net/dns_probe_browsertest.cc
|
| ===================================================================
|
| --- chrome/browser/net/dns_probe_browsertest.cc (revision 249692)
|
| +++ chrome/browser/net/dns_probe_browsertest.cc (working copy)
|
| @@ -110,7 +110,7 @@
|
| FilePath GetMockLinkDoctorFilePath() {
|
| FilePath root_http;
|
| PathService::Get(chrome::DIR_TEST_DATA, &root_http);
|
| - return root_http.AppendASCII("mock-link-doctor.html");
|
| + return root_http.AppendASCII("mock-link-doctor.json");
|
| }
|
|
|
| // A request that can be delayed until Resume() is called. Can also run a
|
| @@ -461,6 +461,16 @@
|
| std::string Title();
|
| bool PageContains(const std::string& expected);
|
|
|
| + // Checks that the local error page is being displayed, without Link Doctor
|
| + // suggestions, and with the specified status text. The status text should be
|
| + // either a network error or DNS probe status.
|
| + void ExpectDisplayingLocalErrorPage(const std::string& status_text);
|
| +
|
| + // Checks that an error page with suggestions retrieved from the mock Link
|
| + // Doctor result is being displayed, with the specified status text.
|
| + // The status text should be either a network error or DNS probe status.
|
| + void ExpectDisplayingLinkDoctor(const std::string& status_text);
|
| +
|
| private:
|
| void OnDnsProbeStatusSent(DnsProbeStatus dns_probe_status);
|
|
|
| @@ -638,6 +648,20 @@
|
| return text_content.find(expected) != std::string::npos;
|
| }
|
|
|
| +void DnsProbeBrowserTest::ExpectDisplayingLocalErrorPage(
|
| + const std::string& status_text) {
|
| + EXPECT_FALSE(PageContains("http://correction1/"));
|
| + EXPECT_FALSE(PageContains("http://correction2/"));
|
| + EXPECT_TRUE(PageContains(status_text));
|
| +}
|
| +
|
| +void DnsProbeBrowserTest::ExpectDisplayingLinkDoctor(
|
| + const std::string& status_text) {
|
| + EXPECT_TRUE(PageContains("http://correction1/"));
|
| + EXPECT_TRUE(PageContains("http://correction2/"));
|
| + EXPECT_TRUE(PageContains(status_text));
|
| +}
|
| +
|
| void DnsProbeBrowserTest::OnDnsProbeStatusSent(
|
| DnsProbeStatus dns_probe_status) {
|
| dns_probe_status_queue_.push_back(dns_probe_status);
|
| @@ -650,7 +674,7 @@
|
| SetLinkDoctorBroken(false);
|
|
|
| NavigateToOtherError(2);
|
| - EXPECT_EQ("Mock Link Doctor", Title());
|
| + ExpectDisplayingLinkDoctor("ERR_CONNECTION_REFUSED");
|
| }
|
|
|
| // Make sure probes don't break non-DNS error pages when Link Doctor doesn't
|
| @@ -659,31 +683,31 @@
|
| SetLinkDoctorBroken(true);
|
|
|
| NavigateToOtherError(2);
|
| - EXPECT_TRUE(PageContains("CONNECTION_REFUSED"));
|
| + ExpectDisplayingLocalErrorPage("ERR_CONNECTION_REFUSED");
|
| }
|
|
|
| -// Make sure probes don't break DNS error pages when Link doctor loads.
|
| +// Make sure probes don't break DNS error pages when Link Doctor loads.
|
| IN_PROC_BROWSER_TEST_F(DnsProbeBrowserTest,
|
| NxdomainProbeResultWithWorkingLinkDoctor) {
|
| SetLinkDoctorBroken(false);
|
| SetMockDnsClientRules(MockDnsClientRule::OK, MockDnsClientRule::OK);
|
|
|
| NavigateToDnsError(2);
|
| - EXPECT_EQ("Mock Link Doctor", Title());
|
| + ExpectDisplayingLinkDoctor("ERR_NAME_NOT_RESOLVED");
|
|
|
| // One status for committing a blank page before the Link Doctor, and one for
|
| // when the Link Doctor is committed.
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_STARTED, WaitForSentStatus());
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_STARTED, WaitForSentStatus());
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_EQ("Mock Link Doctor", Title());
|
| + ExpectDisplayingLinkDoctor("ERR_NAME_NOT_RESOLVED");
|
|
|
| StartDelayedProbes(1);
|
|
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN,
|
| WaitForSentStatus());
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_EQ("Mock Link Doctor", Title());
|
| + ExpectDisplayingLinkDoctor("ERR_NAME_NOT_RESOLVED");
|
| }
|
|
|
| // Make sure probes don't break Link Doctor when probes complete before the
|
| @@ -716,13 +740,13 @@
|
| SetLinkDoctorDelayRequests(false);
|
| // Wait for it to commit.
|
| observer.Wait();
|
| - EXPECT_EQ("Mock Link Doctor", Title());
|
| + ExpectDisplayingLinkDoctor("ERR_NAME_NOT_RESOLVED");
|
|
|
| // Committing the Link Doctor page should trigger sending the probe result
|
| // again.
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN,
|
| WaitForSentStatus());
|
| - EXPECT_EQ("Mock Link Doctor", Title());
|
| + ExpectDisplayingLinkDoctor("ERR_NAME_NOT_RESOLVED");
|
| }
|
|
|
| // Make sure probes update DNS error page properly when they're supposed to.
|
| @@ -737,9 +761,9 @@
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_STARTED, WaitForSentStatus());
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_STARTED, WaitForSentStatus());
|
|
|
| - // PageContains runs the RunLoop, so make sure nothing hairy happens.
|
| + // Checking the page runs the RunLoop, so make sure nothing hairy happens.
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_TRUE(PageContains("DNS_PROBE_STARTED"));
|
| + ExpectDisplayingLocalErrorPage("DNS_PROBE_STARTED");
|
| EXPECT_EQ(0, pending_status_count());
|
|
|
| StartDelayedProbes(1);
|
| @@ -747,9 +771,9 @@
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NO_INTERNET,
|
| WaitForSentStatus());
|
|
|
| - // PageContains runs the RunLoop, so make sure nothing hairy happens.
|
| + // Checking the page runs the RunLoop, so make sure nothing hairy happens.
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_TRUE(PageContains("DNS_PROBE_FINISHED_NO_INTERNET"));
|
| + ExpectDisplayingLocalErrorPage("DNS_PROBE_FINISHED_NO_INTERNET");
|
| }
|
|
|
| // Make sure probes don't break Link Doctor when probes complete before the
|
| @@ -788,7 +812,7 @@
|
| WaitForSentStatus());
|
|
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_TRUE(PageContains("DNS_PROBE_FINISHED_NO_INTERNET"));
|
| + ExpectDisplayingLocalErrorPage("DNS_PROBE_FINISHED_NO_INTERNET");
|
| }
|
|
|
| // Double-check to make sure sync failures don't explode.
|
| @@ -801,9 +825,9 @@
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_STARTED, WaitForSentStatus());
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_STARTED, WaitForSentStatus());
|
|
|
| - // PageContains runs the RunLoop, so make sure nothing hairy happens.
|
| + // Checking the page runs the RunLoop, so make sure nothing hairy happens.
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_TRUE(PageContains("DNS_PROBE_STARTED"));
|
| + ExpectDisplayingLocalErrorPage("DNS_PROBE_STARTED");
|
| EXPECT_EQ(0, pending_status_count());
|
|
|
| StartDelayedProbes(1);
|
| @@ -811,9 +835,9 @@
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_INCONCLUSIVE,
|
| WaitForSentStatus());
|
|
|
| - // PageContains runs the RunLoop, so make sure nothing hairy happens.
|
| + // Checking the page runs the RunLoop, so make sure nothing hairy happens.
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_TRUE(PageContains("NAME_NOT_RESOLVED"));
|
| + ExpectDisplayingLocalErrorPage("ERR_NAME_NOT_RESOLVED");
|
| EXPECT_EQ(0, pending_status_count());
|
| }
|
|
|
| @@ -903,9 +927,9 @@
|
|
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_NOT_RUN, WaitForSentStatus());
|
|
|
| - // PageContains runs the RunLoop, so make sure nothing hairy happens.
|
| + // Checking the page runs the RunLoop, so make sure nothing hairy happens.
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_TRUE(PageContains("NAME_NOT_RESOLVED"));
|
| + ExpectDisplayingLocalErrorPage("ERR_NAME_NOT_RESOLVED");
|
| }
|
|
|
| // Test the case that Link Doctor is disabled, but DNS probes are enabled. This
|
| @@ -928,9 +952,9 @@
|
| NavigateToDnsError(1);
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_STARTED, WaitForSentStatus());
|
|
|
| - // PageContains runs the RunLoop, so make sure nothing hairy happens.
|
| + // Checking the page runs the RunLoop, so make sure nothing hairy happens.
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_TRUE(PageContains("DNS_PROBE_STARTED"));
|
| + ExpectDisplayingLocalErrorPage("DNS_PROBE_STARTED");
|
| EXPECT_EQ(0, pending_status_count());
|
|
|
| StartDelayedProbes(1);
|
| @@ -938,7 +962,7 @@
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_INCONCLUSIVE,
|
| WaitForSentStatus());
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_TRUE(PageContains("NAME_NOT_RESOLVED"));
|
| + ExpectDisplayingLocalErrorPage("ERR_NAME_NOT_RESOLVED");
|
| }
|
|
|
| // Test incognito mode. Link Doctor should be disabled, but DNS probes are
|
| @@ -957,9 +981,9 @@
|
| NavigateToDnsError(1);
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_STARTED, WaitForSentStatus());
|
|
|
| - // PageContains runs the RunLoop, so make sure nothing hairy happens.
|
| + // Checking the page runs the RunLoop, so make sure nothing hairy happens.
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_TRUE(PageContains("DNS_PROBE_STARTED"));
|
| + ExpectDisplayingLocalErrorPage("DNS_PROBE_STARTED");
|
| EXPECT_EQ(0, pending_status_count());
|
|
|
| StartDelayedProbes(1);
|
| @@ -967,7 +991,7 @@
|
| EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_INCONCLUSIVE,
|
| WaitForSentStatus());
|
| EXPECT_EQ(0, pending_status_count());
|
| - EXPECT_TRUE(PageContains("NAME_NOT_RESOLVED"));
|
| + ExpectDisplayingLocalErrorPage("ERR_NAME_NOT_RESOLVED");
|
| }
|
|
|
| } // namespace
|
|
|