| Index: chrome/browser/managed_mode/managed_mode_url_filter_unittest.cc
|
| diff --git a/chrome/browser/managed_mode/managed_mode_url_filter_unittest.cc b/chrome/browser/managed_mode/managed_mode_url_filter_unittest.cc
|
| deleted file mode 100644
|
| index e1091e452657a17cec790012800b25095a3e7726..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/managed_mode/managed_mode_url_filter_unittest.cc
|
| +++ /dev/null
|
| @@ -1,336 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/bind_helpers.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "base/run_loop.h"
|
| -#include "chrome/browser/managed_mode/managed_mode_url_filter.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "url/gurl.h"
|
| -
|
| -class ManagedModeURLFilterTest : public ::testing::Test,
|
| - public ManagedModeURLFilter::Observer {
|
| - public:
|
| - ManagedModeURLFilterTest() : filter_(new ManagedModeURLFilter) {
|
| - filter_->SetDefaultFilteringBehavior(ManagedModeURLFilter::BLOCK);
|
| - filter_->AddObserver(this);
|
| - }
|
| -
|
| - virtual ~ManagedModeURLFilterTest() {
|
| - filter_->RemoveObserver(this);
|
| - }
|
| -
|
| - // ManagedModeURLFilter::Observer:
|
| - virtual void OnSiteListUpdated() OVERRIDE {
|
| - run_loop_.Quit();
|
| - }
|
| -
|
| - protected:
|
| - bool IsURLWhitelisted(const std::string& url) {
|
| - return filter_->GetFilteringBehaviorForURL(GURL(url)) ==
|
| - ManagedModeURLFilter::ALLOW;
|
| - }
|
| -
|
| - base::MessageLoop message_loop_;
|
| - base::RunLoop run_loop_;
|
| - scoped_refptr<ManagedModeURLFilter> filter_;
|
| -};
|
| -
|
| -TEST_F(ManagedModeURLFilterTest, Basic) {
|
| - std::vector<std::string> list;
|
| - // Allow domain and all subdomains, for any filtered scheme.
|
| - list.push_back("google.com");
|
| - filter_->SetFromPatterns(list);
|
| - run_loop_.Run();
|
| -
|
| - EXPECT_TRUE(IsURLWhitelisted("http://google.com"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://google.com/"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://google.com/whatever"));
|
| - EXPECT_TRUE(IsURLWhitelisted("https://google.com/"));
|
| - EXPECT_FALSE(IsURLWhitelisted("http://notgoogle.com/"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://mail.google.com"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://x.mail.google.com"));
|
| - EXPECT_TRUE(IsURLWhitelisted("https://x.mail.google.com/"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://x.y.google.com/a/b"));
|
| - EXPECT_FALSE(IsURLWhitelisted("http://youtube.com/"));
|
| -
|
| - EXPECT_TRUE(IsURLWhitelisted("bogus://youtube.com/"));
|
| - EXPECT_TRUE(IsURLWhitelisted("chrome://youtube.com/"));
|
| - EXPECT_TRUE(IsURLWhitelisted("chrome://extensions/"));
|
| - EXPECT_TRUE(IsURLWhitelisted("chrome-extension://foo/main.html"));
|
| - EXPECT_TRUE(IsURLWhitelisted("file:///home/chronos/user/Downloads/img.jpg"));
|
| -}
|
| -
|
| -TEST_F(ManagedModeURLFilterTest, Inactive) {
|
| - filter_->SetDefaultFilteringBehavior(ManagedModeURLFilter::ALLOW);
|
| -
|
| - std::vector<std::string> list;
|
| - list.push_back("google.com");
|
| - filter_->SetFromPatterns(list);
|
| - run_loop_.Run();
|
| -
|
| - // If the filter is inactive, every URL should be whitelisted.
|
| - EXPECT_TRUE(IsURLWhitelisted("http://google.com"));
|
| - EXPECT_TRUE(IsURLWhitelisted("https://www.example.com"));
|
| -}
|
| -
|
| -TEST_F(ManagedModeURLFilterTest, Scheme) {
|
| - std::vector<std::string> list;
|
| - // Filter only http, ftp and ws schemes.
|
| - list.push_back("http://secure.com");
|
| - list.push_back("ftp://secure.com");
|
| - list.push_back("ws://secure.com");
|
| - filter_->SetFromPatterns(list);
|
| - run_loop_.Run();
|
| -
|
| - EXPECT_TRUE(IsURLWhitelisted("http://secure.com"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://secure.com/whatever"));
|
| - EXPECT_TRUE(IsURLWhitelisted("ftp://secure.com/"));
|
| - EXPECT_TRUE(IsURLWhitelisted("ws://secure.com"));
|
| - EXPECT_FALSE(IsURLWhitelisted("https://secure.com/"));
|
| - EXPECT_FALSE(IsURLWhitelisted("wss://secure.com"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://www.secure.com"));
|
| - EXPECT_FALSE(IsURLWhitelisted("https://www.secure.com"));
|
| - EXPECT_FALSE(IsURLWhitelisted("wss://www.secure.com"));
|
| -}
|
| -
|
| -TEST_F(ManagedModeURLFilterTest, Path) {
|
| - std::vector<std::string> list;
|
| - // Filter only a certain path prefix.
|
| - list.push_back("path.to/ruin");
|
| - filter_->SetFromPatterns(list);
|
| - run_loop_.Run();
|
| -
|
| - EXPECT_TRUE(IsURLWhitelisted("http://path.to/ruin"));
|
| - EXPECT_TRUE(IsURLWhitelisted("https://path.to/ruin"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://path.to/ruins"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://path.to/ruin/signup"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://www.path.to/ruin"));
|
| - EXPECT_FALSE(IsURLWhitelisted("http://path.to/fortune"));
|
| -}
|
| -
|
| -TEST_F(ManagedModeURLFilterTest, PathAndScheme) {
|
| - std::vector<std::string> list;
|
| - // Filter only a certain path prefix and scheme.
|
| - list.push_back("https://s.aaa.com/path");
|
| - filter_->SetFromPatterns(list);
|
| - run_loop_.Run();
|
| -
|
| - EXPECT_TRUE(IsURLWhitelisted("https://s.aaa.com/path"));
|
| - EXPECT_TRUE(IsURLWhitelisted("https://s.aaa.com/path/bbb"));
|
| - EXPECT_FALSE(IsURLWhitelisted("http://s.aaa.com/path"));
|
| - EXPECT_FALSE(IsURLWhitelisted("https://aaa.com/path"));
|
| - EXPECT_FALSE(IsURLWhitelisted("https://x.aaa.com/path"));
|
| - EXPECT_FALSE(IsURLWhitelisted("https://s.aaa.com/bbb"));
|
| - EXPECT_FALSE(IsURLWhitelisted("https://s.aaa.com/"));
|
| -}
|
| -
|
| -TEST_F(ManagedModeURLFilterTest, Host) {
|
| - std::vector<std::string> list;
|
| - // Filter only a certain hostname, without subdomains.
|
| - list.push_back(".www.example.com");
|
| - filter_->SetFromPatterns(list);
|
| - run_loop_.Run();
|
| -
|
| - EXPECT_TRUE(IsURLWhitelisted("http://www.example.com"));
|
| - EXPECT_FALSE(IsURLWhitelisted("http://example.com"));
|
| - EXPECT_FALSE(IsURLWhitelisted("http://subdomain.example.com"));
|
| -}
|
| -
|
| -TEST_F(ManagedModeURLFilterTest, IPAddress) {
|
| - std::vector<std::string> list;
|
| - // Filter an ip address.
|
| - list.push_back("123.123.123.123");
|
| - filter_->SetFromPatterns(list);
|
| - run_loop_.Run();
|
| -
|
| - EXPECT_TRUE(IsURLWhitelisted("http://123.123.123.123/"));
|
| - EXPECT_FALSE(IsURLWhitelisted("http://123.123.123.124/"));
|
| -}
|
| -
|
| -TEST_F(ManagedModeURLFilterTest, Canonicalization) {
|
| - // We assume that the hosts and URLs are already canonicalized.
|
| - std::map<std::string, bool> hosts;
|
| - hosts["www.moose.org"] = true;
|
| - hosts["www.xn--n3h.net"] = true;
|
| - std::map<GURL, bool> urls;
|
| - urls[GURL("http://www.example.com/foo/")] = true;
|
| - urls[GURL("http://www.example.com/%C3%85t%C3%B8mstr%C3%B6m")] = true;
|
| - filter_->SetManualHosts(&hosts);
|
| - filter_->SetManualURLs(&urls);
|
| -
|
| - // Base cases.
|
| - EXPECT_TRUE(IsURLWhitelisted("http://www.example.com/foo/"));
|
| - EXPECT_TRUE(IsURLWhitelisted(
|
| - "http://www.example.com/%C3%85t%C3%B8mstr%C3%B6m"));
|
| -
|
| - // Verify that non-URI characters are escaped.
|
| - EXPECT_TRUE(IsURLWhitelisted(
|
| - "http://www.example.com/\xc3\x85t\xc3\xb8mstr\xc3\xb6m"));
|
| -
|
| - // Verify that unnecessary URI escapes are unescaped.
|
| - EXPECT_TRUE(IsURLWhitelisted("http://www.example.com/%66%6F%6F/"));
|
| -
|
| - // Verify that the default port are removed.
|
| - EXPECT_TRUE(IsURLWhitelisted("http://www.example.com:80/foo/"));
|
| -
|
| - // Verify that scheme and hostname are lowercased.
|
| - EXPECT_TRUE(IsURLWhitelisted("htTp://wWw.eXamPle.com/foo/"));
|
| - EXPECT_TRUE(IsURLWhitelisted("HttP://WwW.mOOsE.orG/blurp/"));
|
| -
|
| - // Verify that UTF-8 in hostnames are converted to punycode.
|
| - EXPECT_TRUE(IsURLWhitelisted("http://www.\xe2\x98\x83\x0a.net/bla/"));
|
| -
|
| - // Verify that query and ref are stripped.
|
| - EXPECT_TRUE(IsURLWhitelisted("http://www.example.com/foo/?bar=baz#ref"));
|
| -}
|
| -
|
| -TEST_F(ManagedModeURLFilterTest, HasFilteredScheme) {
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HasFilteredScheme(GURL("http://example.com")));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HasFilteredScheme(GURL("https://example.com")));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HasFilteredScheme(GURL("ftp://example.com")));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HasFilteredScheme(GURL("gopher://example.com")));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HasFilteredScheme(GURL("ws://example.com")));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HasFilteredScheme(GURL("wss://example.com")));
|
| -
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HasFilteredScheme(GURL("file://example.com")));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HasFilteredScheme(GURL("filesystem://80cols.com")));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HasFilteredScheme(GURL("chrome://example.com")));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HasFilteredScheme(GURL("wtf://example.com")));
|
| -}
|
| -
|
| -TEST_F(ManagedModeURLFilterTest, HostMatchesPattern) {
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com",
|
| - "*.google.com"));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("google.com", "*.google.com"));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("accounts.google.com",
|
| - "*.google.com"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.de",
|
| - "*.google.com"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("notgoogle.com",
|
| - "*.google.com"));
|
| -
|
| -
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com",
|
| - "www.google.*"));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.de",
|
| - "www.google.*"));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.co.uk",
|
| - "www.google.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.blogspot.com",
|
| - "www.google.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google", "www.google.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("google.com", "www.google.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("mail.google.com",
|
| - "www.google.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.googleplex.com",
|
| - "www.google.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.googleco.uk",
|
| - "www.google.*"));
|
| -
|
| -
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com", "*.google.*"));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("google.com", "*.google.*"));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("accounts.google.com",
|
| - "*.google.*"));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("mail.google.com",
|
| - "*.google.*"));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.de",
|
| - "*.google.*"));
|
| - EXPECT_TRUE(
|
| - ManagedModeURLFilter::HostMatchesPattern("google.de",
|
| - "*.google.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("google.blogspot.com",
|
| - "*.google.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("google", "*.google.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("notgoogle.com", "*.google.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.googleplex.com",
|
| - "*.google.*"));
|
| -
|
| - // Now test a few invalid patterns. They should never match.
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com", ""));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com", "."));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com", "*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com", ".*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com", "*."));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com", "*.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google..com", "*..*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com", "*.*.com"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com", "www.*.*"));
|
| - EXPECT_FALSE(ManagedModeURLFilter::HostMatchesPattern("www.google.com",
|
| - "*.goo.*le.*"));
|
| - EXPECT_FALSE(
|
| - ManagedModeURLFilter::HostMatchesPattern("www.google.com", "*google*"));
|
| - EXPECT_FALSE(ManagedModeURLFilter::HostMatchesPattern("www.google.com",
|
| - "www.*.google.com"));
|
| -}
|
| -
|
| -TEST_F(ManagedModeURLFilterTest, Patterns) {
|
| - std::map<std::string, bool> hosts;
|
| -
|
| - // Initally, the second rule is ignored because has the same value as the
|
| - // default (block). When we change the default to allow, the first rule is
|
| - // ignored instead.
|
| - hosts["*.google.com"] = true;
|
| - hosts["www.google.*"] = false;
|
| -
|
| - hosts["accounts.google.com"] = false;
|
| - hosts["mail.google.com"] = true;
|
| - filter_->SetManualHosts(&hosts);
|
| -
|
| - // Initially, the default filtering behavior is BLOCK.
|
| - EXPECT_TRUE(IsURLWhitelisted("http://www.google.com/foo/"));
|
| - EXPECT_FALSE(IsURLWhitelisted("http://accounts.google.com/bar/"));
|
| - EXPECT_FALSE(IsURLWhitelisted("http://www.google.co.uk/blurp/"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://mail.google.com/moose/"));
|
| -
|
| - filter_->SetDefaultFilteringBehavior(ManagedModeURLFilter::ALLOW);
|
| - EXPECT_FALSE(IsURLWhitelisted("http://www.google.com/foo/"));
|
| - EXPECT_FALSE(IsURLWhitelisted("http://accounts.google.com/bar/"));
|
| - EXPECT_FALSE(IsURLWhitelisted("http://www.google.co.uk/blurp/"));
|
| - EXPECT_TRUE(IsURLWhitelisted("http://mail.google.com/moose/"));
|
| -}
|
|
|