| 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 |