diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-30 08:47:58 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-30 08:47:58 +0000 |
commit | 188827c86eca6fa38e6cef5ac9852a26826a658a (patch) | |
tree | 68d51db12b35ee9fb4653edd45594dcc28ae19b2 /chrome/browser/extensions/extension_content_settings_unittest.cc | |
parent | adf46b69ad590589a13477f2b8ddce9d071e92a9 (diff) | |
download | chromium_src-188827c86eca6fa38e6cef5ac9852a26826a658a.zip chromium_src-188827c86eca6fa38e6cef5ac9852a26826a658a.tar.gz chromium_src-188827c86eca6fa38e6cef5ac9852a26826a658a.tar.bz2 |
Use extension match pattern syntax in content settings extension API.
This requires adding a port to a URLPattern, but that shouldn't change existing behavior, as we already have a lenient parsing mode there.
BUG=71067
Review URL: http://codereview.chromium.org/7229012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91099 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_content_settings_unittest.cc')
-rw-r--r-- | chrome/browser/extensions/extension_content_settings_unittest.cc | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_content_settings_unittest.cc b/chrome/browser/extensions/extension_content_settings_unittest.cc new file mode 100644 index 0000000..500afc2 --- /dev/null +++ b/chrome/browser/extensions/extension_content_settings_unittest.cc @@ -0,0 +1,51 @@ +// Copyright (c) 2011 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 "testing/gtest/include/gtest/gtest.h" + +#include "chrome/browser/extensions/extension_content_settings_helpers.h" + +namespace helpers = extension_content_settings_helpers; + +TEST(ExtensionContentSettingsHelpersTest, ParseExtensionPattern) { + const struct { + const char* extension_pattern; + const char* content_settings_pattern; + } kTestPatterns[] = { + { "<all_urls>", "*" }, + { "*://*.google.com/*", "[*.]google.com" }, + { "http://www.example.com/*", "http://www.example.com" }, + { "*://www.example.com/*", "www.example.com" }, + { "http://www.example.com:8080/*", "http://www.example.com:8080" }, + { "https://*/*", "https://*" }, + { "file:///foo/bar/baz", "file:///foo/bar/baz" }, + }; + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestPatterns); ++i) { + std::string error; + std::string pattern_str = helpers::ParseExtensionPattern( + kTestPatterns[i].extension_pattern, &error).ToString(); + EXPECT_EQ(kTestPatterns[i].content_settings_pattern, pattern_str) + << "Unexpected error parsing " << kTestPatterns[i].extension_pattern + << ": " << error; + } + + const struct { + const char* extension_pattern; + const char* expected_error; + } kInvalidTestPatterns[] = { + { "http://www.example.com/path", "Specific paths are not allowed." }, + { "file:///foo/bar/*", + "Path wildcards in file URL patterns are not allowed." }, + }; + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kInvalidTestPatterns); ++i) { + std::string error; + ContentSettingsPattern pattern = helpers::ParseExtensionPattern( + kInvalidTestPatterns[i].extension_pattern, &error); + EXPECT_FALSE(pattern.IsValid()); + EXPECT_EQ(kInvalidTestPatterns[i].expected_error, error) + << "Unexpected error parsing " + << kInvalidTestPatterns[i].extension_pattern; + } + +} |