OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" | 5 #include "base/command_line.h" |
6 | |
7 #include "base/strings/string_number_conversions.h" | 6 #include "base/strings/string_number_conversions.h" |
| 7 #include "chrome/common/chrome_switches.h" |
8 #include "chrome/common/extensions/extension.h" | 8 #include "chrome/common/extensions/extension.h" |
9 #include "chrome/common/extensions/extension_manifest_constants.h" | 9 #include "chrome/common/extensions/extension_manifest_constants.h" |
| 10 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" |
10 #include "extensions/common/error_utils.h" | 11 #include "extensions/common/error_utils.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
12 | 13 |
13 namespace errors = extension_manifest_errors; | 14 namespace errors = extension_manifest_errors; |
14 | 15 |
15 TEST_F(ExtensionManifestTest, ContentScriptMatchPattern) { | 16 TEST_F(ExtensionManifestTest, ContentScriptMatchPattern) { |
16 Testcase testcases[] = { | 17 Testcase testcases[] = { |
17 // chrome:// urls are not allowed. | 18 // chrome:// urls are not allowed. |
18 Testcase("content_script_chrome_url_invalid.json", | 19 Testcase("content_script_chrome_url_invalid.json", |
19 extensions::ErrorUtils::FormatErrorMessage( | 20 extensions::ErrorUtils::FormatErrorMessage( |
20 errors::kInvalidMatch, | 21 errors::kInvalidMatch, |
21 base::IntToString(0), | 22 base::IntToString(0), |
22 base::IntToString(0), | 23 base::IntToString(0), |
23 URLPattern::GetParseResultString( | 24 URLPattern::GetParseResultString( |
24 URLPattern::PARSE_ERROR_INVALID_SCHEME))), | 25 URLPattern::PARSE_ERROR_INVALID_SCHEME))), |
25 | 26 |
26 // Match paterns must be strings. | 27 // Match paterns must be strings. |
27 Testcase("content_script_match_pattern_not_string.json", | 28 Testcase("content_script_match_pattern_not_string.json", |
28 extensions::ErrorUtils::FormatErrorMessage(errors::kInvalidMatch, | 29 extensions::ErrorUtils::FormatErrorMessage(errors::kInvalidMatch, |
29 base::IntToString(0), | 30 base::IntToString(0), |
30 base::IntToString(0), | 31 base::IntToString(0), |
31 errors::kExpectString)) | 32 errors::kExpectString)) |
32 }; | 33 }; |
33 RunTestcases(testcases, arraysize(testcases), | 34 RunTestcases(testcases, arraysize(testcases), |
34 EXPECT_TYPE_ERROR); | 35 EXPECT_TYPE_ERROR); |
35 | 36 |
36 LoadAndExpectSuccess("ports_in_content_scripts.json"); | 37 LoadAndExpectSuccess("ports_in_content_scripts.json"); |
37 } | 38 } |
| 39 |
| 40 TEST_F(ExtensionManifestTest, ContentScriptsOnChromeUrlsWithFlag) { |
| 41 CommandLine::ForCurrentProcess()->AppendSwitch( |
| 42 switches::kExtensionsOnChromeURLs); |
| 43 std::string error; |
| 44 scoped_refptr<extensions::Extension> extension = |
| 45 LoadAndExpectSuccess("content_script_chrome_url_invalid.json"); |
| 46 EXPECT_EQ("", error); |
| 47 const GURL newtab_url("chrome://newtab/"); |
| 48 EXPECT_TRUE(extension->HasContentScriptAtURL(newtab_url)); |
| 49 } |
OLD | NEW |