Commit c5591b6e authored by Mustafa Emre Acer's avatar Mustafa Emre Acer Committed by Commit Bot

Fix crashing tests in SafeBrowsing Delayed Warnings

The tests were using chrome:// URLs to trigger SafeBrowsing warnings.
They also wait until the pages are ready which is done by running
JavaScript. In some cases, WebUI bindings aren't yet ready for the loaded
page so executing JS fails, causing the tests to crash.

This CL switches to HTTP pages instead.

Bug: 1065742, 1057157
Change-Id: Ie3302e7c63bf8d4d7c9db687c95ce1e9e8da483c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2127733Reviewed-by: default avatarXinghui Lu <xinghuilu@chromium.org>
Reviewed-by: default avatarVarun Khaneja <vakh@chromium.org>
Commit-Queue: Mustafa Emre Acer <meacer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#754647}
parent 4f3aad57
......@@ -1893,6 +1893,12 @@ class SafeBrowsingBlockingPageDelayedWarningBrowserTest
content::IsolateAllSitesForTesting(command_line);
}
void SetUpOnMainThread() override {
host_resolver()->AddRule("*", "127.0.0.1");
content::SetupCrossSiteRedirector(embedded_test_server());
ASSERT_TRUE(embedded_test_server()->Start());
}
void CreatedBrowserMainParts(
content::BrowserMainParts* browser_main_parts) override {
// Test UI manager and test database manager should be set before
......@@ -1922,10 +1928,26 @@ class SafeBrowsingBlockingPageDelayedWarningBrowserTest
return WaitForReady(browser);
}
void NavigateAndAssertNoInterstitial() {
const GURL url = embedded_test_server()->GetURL("/empty.html");
SetURLThreatType(url, SB_THREAT_TYPE_URL_PHISHING);
ui_test_utils::NavigateToURL(browser(), url);
AssertNoInterstitial(browser(), true);
}
protected:
TestThreatDetailsFactory details_factory_;
private:
void SetURLThreatType(const GURL& url, SBThreatType threat_type) {
TestSafeBrowsingService* service = factory_.test_safe_browsing_service();
ASSERT_TRUE(service);
static_cast<FakeSafeBrowsingDatabaseManager*>(
service->database_manager().get())
->SetURLThreatType(url, threat_type);
}
base::test::ScopedFeatureList scoped_feature_list_;
TestSafeBrowsingServiceFactory factory_;
TestSafeBrowsingBlockingPageFactory blocking_page_factory_;
......@@ -1936,11 +1958,7 @@ class SafeBrowsingBlockingPageDelayedWarningBrowserTest
IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageDelayedWarningBrowserTest,
DelayedWarningShown) {
base::HistogramTester histograms;
// Navigate to a phishing site.
ui_test_utils::NavigateToURL(browser(),
GURL(kChromeUISafeBrowsingMatchPhishingUrl));
WaitForReady(browser());
AssertNoInterstitial(browser(), true);
NavigateAndAssertNoInterstitial();
// Type something. An interstitial should be shown.
EXPECT_TRUE(TypeAndWaitForInterstitial(browser()));
......@@ -1960,11 +1978,7 @@ IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageDelayedWarningBrowserTest,
IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageDelayedWarningBrowserTest,
DelayedWarningNotShown) {
base::HistogramTester histograms;
// Navigate to a phishing site.
ui_test_utils::NavigateToURL(browser(),
GURL(kChromeUISafeBrowsingMatchPhishingUrl));
WaitForReady(browser());
AssertNoInterstitial(browser(), true);
NavigateAndAssertNoInterstitial();
// Navigate away without interacting with the page.
ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment