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