Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / content_settings / content_settings_unittest.cc
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 "base/macros.h"
6 #include "chrome/browser/extensions/api/content_settings/content_settings_helpers.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace extensions {
10 namespace helpers = content_settings_helpers;
11
12 TEST(ExtensionContentSettingsHelpersTest, ParseExtensionPattern) {
13   const struct {
14     const char* extension_pattern;
15     const char* content_settings_pattern;
16   } kTestPatterns[] = {
17     { "<all_urls>", "*" },
18     { "*://*.google.com/*", "[*.]google.com" },
19     { "http://www.example.com/*", "http://www.example.com" },
20     { "*://www.example.com/*", "www.example.com" },
21     { "http://www.example.com:8080/*", "http://www.example.com:8080" },
22     { "https://*/*", "https://*" },
23     { "file:///foo/bar/baz", "file:///foo/bar/baz" },
24   };
25   for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestPatterns); ++i) {
26     std::string error;
27     std::string pattern_str = helpers::ParseExtensionPattern(
28         kTestPatterns[i].extension_pattern, &error).ToString();
29     EXPECT_EQ(kTestPatterns[i].content_settings_pattern, pattern_str)
30         << "Unexpected error parsing " << kTestPatterns[i].extension_pattern
31         << ": " << error;
32   }
33
34   const struct {
35     const char* extension_pattern;
36     const char* expected_error;
37   } kInvalidTestPatterns[] = {
38     { "http://www.example.com/path", "Specific paths are not allowed." },
39     { "file:///foo/bar/*",
40       "Path wildcards in file URL patterns are not allowed." },
41   };
42   for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kInvalidTestPatterns); ++i) {
43     std::string error;
44     ContentSettingsPattern pattern = helpers::ParseExtensionPattern(
45         kInvalidTestPatterns[i].extension_pattern, &error);
46     EXPECT_FALSE(pattern.IsValid());
47     EXPECT_EQ(kInvalidTestPatterns[i].expected_error, error)
48         << "Unexpected error parsing "
49         << kInvalidTestPatterns[i].extension_pattern;
50   }
51 }
52
53 }  // namespace extensions