1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "base/strings/utf_string_conversions.h" 6#include "chrome/browser/chrome_notification_types.h" 7#include "chrome/browser/devtools/devtools_window.h" 8#include "chrome/browser/devtools/devtools_window_testing.h" 9#include "chrome/browser/ui/browser.h" 10#include "chrome/browser/ui/tabs/tab_strip_model.h" 11#include "chrome/test/base/in_process_browser_test.h" 12#include "chrome/test/base/ui_test_utils.h" 13#include "content/public/browser/web_contents.h" 14 15class InterstitialUITest : public InProcessBrowserTest { 16 public: 17 InterstitialUITest() {} 18 virtual ~InterstitialUITest() {} 19 20 protected: 21 void TestInterstitial(GURL url, const std::string& page_title) { 22 ui_test_utils::NavigateToURL(browser(), url); 23 EXPECT_EQ( 24 base::ASCIIToUTF16(page_title), 25 browser()->tab_strip_model()->GetActiveWebContents()->GetTitle()); 26 27 // Should also be able to open and close devtools. 28 DevToolsWindow* window = 29 DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), true); 30 EXPECT_TRUE(window); 31 DevToolsWindowTesting::CloseDevToolsWindowSync(window); 32 } 33}; 34 35IN_PROC_BROWSER_TEST_F(InterstitialUITest, FLAKY_OpenInterstitial) { 36 TestInterstitial( 37 GURL("chrome://interstitials"), 38 "Interstitials"); 39 // Invalid path should open the main page: 40 TestInterstitial( 41 GURL("chrome://interstitials/--invalid--"), 42 "Interstitials"); 43 TestInterstitial( 44 GURL("chrome://interstitials/ssl"), 45 "Privacy error"); 46 TestInterstitial( 47 GURL("chrome://interstitials/safebrowsing?type=malware"), 48 "Security error"); 49 TestInterstitial( 50 GURL("chrome://interstitials/safebrowsing?type=phishing"), 51 "Security error"); 52 TestInterstitial( 53 GURL("chrome://interstitials/safebrowsing?type=clientside_malware"), 54 "Security error"); 55 TestInterstitial( 56 GURL("chrome://interstitials/safebrowsing?type=clientside_phishing"), 57 "Security error"); 58} 59