Home | History | Annotate | Download | only in renderer
      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