1 // Copyright (c) 2012 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 "chrome/renderer/content_settings_observer.h" 6 7 #include "chrome/common/url_constants.h" 8 #include "content/public/common/url_constants.h" 9 #include "extensions/common/constants.h" 10 #include "testing/gtest/include/gtest/gtest.h" 11 #include "third_party/WebKit/public/web/WebSecurityOrigin.h" 12 #include "url/gurl.h" 13 14 using WebKit::WebSecurityOrigin; 15 16 typedef testing::Test ContentSettingsObserverTest; 17 18 TEST_F(ContentSettingsObserverTest, WhitelistedSchemes) { 19 std::string end_url = ":something"; 20 21 GURL chrome_ui_url = 22 GURL(std::string(chrome::kChromeUIScheme).append(end_url)); 23 EXPECT_TRUE(ContentSettingsObserver::IsWhitelistedForContentSettings( 24 WebSecurityOrigin::create(chrome_ui_url), 25 GURL())); 26 27 GURL chrome_dev_tools_url = 28 GURL(std::string(chrome::kChromeDevToolsScheme).append(end_url)); 29 EXPECT_TRUE(ContentSettingsObserver::IsWhitelistedForContentSettings( 30 WebSecurityOrigin::create(chrome_dev_tools_url), 31 GURL())); 32 33 GURL extension_url = 34 GURL(std::string(extensions::kExtensionScheme).append(end_url)); 35 EXPECT_TRUE(ContentSettingsObserver::IsWhitelistedForContentSettings( 36 WebSecurityOrigin::create(extension_url), 37 GURL())); 38 39 GURL chrome_internal_url = 40 GURL(std::string(chrome::kChromeInternalScheme).append(end_url)); 41 EXPECT_TRUE(ContentSettingsObserver::IsWhitelistedForContentSettings( 42 WebSecurityOrigin::create(chrome_internal_url), 43 GURL())); 44 45 GURL file_url("file:///dir/"); 46 EXPECT_TRUE(ContentSettingsObserver::IsWhitelistedForContentSettings( 47 WebSecurityOrigin::create(file_url), 48 GURL("file:///dir/"))); 49 EXPECT_FALSE(ContentSettingsObserver::IsWhitelistedForContentSettings( 50 WebSecurityOrigin::create(file_url), 51 GURL("file:///dir/file"))); 52 53 GURL http_url = 54 GURL("http://server.com/path"); 55 EXPECT_FALSE(ContentSettingsObserver::IsWhitelistedForContentSettings( 56 WebSecurityOrigin::create(http_url), 57 GURL())); 58 } 59