| Index: chrome/browser/extensions/extension_content_settings_unittest.cc
|
| 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 0000000000000000000000000000000000000000..500afc2b0be0b74656b96f0c2d89445108a5b0e5
|
| --- /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;
|
| + }
|
| +
|
| +}
|
|
|