15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file. 45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/strings/utf_string_conversions.h" 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/chrome_notification_types.h" 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/devtools/devtools_window.h" 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/devtools/devtools_window_testing.h" 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/ui/browser.h" 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/ui/tabs/tab_strip_model.h" 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/test/base/in_process_browser_test.h" 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/test/base/ui_test_utils.h" 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "content/public/browser/web_contents.h" 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class InterstitialUITest : public InProcessBrowserTest { 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public: 175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) InterstitialUITest() {} 185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual ~InterstitialUITest() {} 195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) protected: 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) void TestInterstitial(GURL url, const std::string& page_title) { 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ui_test_utils::NavigateToURL(browser(), url); 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ( 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) base::ASCIIToUTF16(page_title), 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) browser()->tab_strip_model()->GetActiveWebContents()->GetTitle()); 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Should also be able to open and close devtools. 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) DevToolsWindow* window = 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), true); 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_TRUE(window); 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) DevToolsWindowTesting::CloseDevToolsWindowSync(window); 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) } 335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}; 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(InterstitialUITest, FLAKY_OpenInterstitial) { 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) TestInterstitial( 375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GURL("chrome://interstitials"), 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) "Interstitials"); 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Invalid path should open the main page: 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) TestInterstitial( 415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GURL("chrome://interstitials/--invalid--"), 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) "Interstitials"); 435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) TestInterstitial( 445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GURL("chrome://interstitials/ssl"), 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) "Privacy error"); 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) TestInterstitial( 475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GURL("chrome://interstitials/safebrowsing?type=malware"), 485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) "Security error"); 495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) TestInterstitial( 505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GURL("chrome://interstitials/safebrowsing?type=phishing"), 515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) "Security error"); 525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) TestInterstitial( 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GURL("chrome://interstitials/safebrowsing?type=clientside_malware"), 545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) "Security error"); 555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) TestInterstitial( 565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GURL("chrome://interstitials/safebrowsing?type=clientside_phishing"), 575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) "Security error"); 585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 59