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 "base/command_line.h" | |
5 #include "base/i18n/rtl.h" | 6 #include "base/i18n/rtl.h" |
6 #include "base/path_service.h" | 7 #include "base/path_service.h" |
7 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
8 #include "chrome/common/chrome_paths.h" | 9 #include "chrome/common/chrome_paths.h" |
9 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" | 10 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" |
10 #include "chrome/common/extensions/manifest_url_handler.h" | 11 #include "chrome/common/extensions/manifest_url_handler.h" |
11 #include "extensions/common/extension.h" | 12 #include "extensions/common/extension.h" |
12 #include "extensions/common/manifest_constants.h" | 13 #include "extensions/common/manifest_constants.h" |
14 #include "extensions/common/switches.h" | |
13 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
14 #include "ui/base/l10n/l10n_util.h" | 16 #include "ui/base/l10n/l10n_util.h" |
15 | 17 |
16 namespace extensions { | 18 namespace extensions { |
17 | 19 |
20 namespace { | |
21 | |
22 // The ID of test manifests requiring whitelisting. | |
23 const char kWhitelistID[] = "lmadimbbgapmngbiclpjjngmdickadpl"; | |
24 | |
25 } // namespace | |
26 | |
18 namespace errors = manifest_errors; | 27 namespace errors = manifest_errors; |
19 namespace keys = manifest_keys; | 28 namespace keys = manifest_keys; |
20 | 29 |
21 class InitValueManifestTest : public ExtensionManifestTest { | 30 class InitValueManifestTest : public ExtensionManifestTest { |
22 }; | 31 }; |
23 | 32 |
33 | |
calamity
2014/08/21 02:53:08
nit: remove whitespace.
Matt Giuca
2014/08/22 02:48:40
Done.
| |
24 TEST_F(InitValueManifestTest, InitFromValueInvalid) { | 34 TEST_F(InitValueManifestTest, InitFromValueInvalid) { |
35 CommandLine::ForCurrentProcess()->AppendSwitchASCII( | |
36 extensions::switches::kWhitelistedExtensionID, kWhitelistID); | |
25 Testcase testcases[] = { | 37 Testcase testcases[] = { |
26 Testcase("init_invalid_version_missing.json", errors::kInvalidVersion), | 38 Testcase("init_invalid_version_missing.json", errors::kInvalidVersion), |
27 Testcase("init_invalid_version_invalid.json", errors::kInvalidVersion), | 39 Testcase("init_invalid_version_invalid.json", errors::kInvalidVersion), |
28 Testcase("init_invalid_name_missing.json", errors::kInvalidName), | 40 Testcase("init_invalid_name_missing.json", errors::kInvalidName), |
29 Testcase("init_invalid_name_invalid.json", errors::kInvalidName), | 41 Testcase("init_invalid_name_invalid.json", errors::kInvalidName), |
30 Testcase("init_invalid_description_invalid.json", | 42 Testcase("init_invalid_description_invalid.json", |
31 errors::kInvalidDescription), | 43 errors::kInvalidDescription), |
32 Testcase("init_invalid_icons_invalid.json", errors::kInvalidIcons), | 44 Testcase("init_invalid_icons_invalid.json", errors::kInvalidIcons), |
33 Testcase("init_invalid_icons_path_invalid.json", errors::kInvalidIconPath), | 45 Testcase("init_invalid_icons_path_invalid.json", errors::kInvalidIconPath), |
46 Testcase("init_invalid_launcher_page_invalid.json", | |
47 errors::kInvalidLauncherPage), | |
48 Testcase("init_invalid_launcher_page_page_missing.json", | |
49 errors::kLauncherPagePageRequired), | |
50 Testcase("init_invalid_launcher_page_page_invalid.json", | |
51 errors::kInvalidLauncherPagePage), | |
34 Testcase("init_invalid_script_invalid.json", | 52 Testcase("init_invalid_script_invalid.json", |
35 errors::kInvalidContentScriptsList), | 53 errors::kInvalidContentScriptsList), |
36 Testcase("init_invalid_script_item_invalid.json", | 54 Testcase("init_invalid_script_item_invalid.json", |
37 errors::kInvalidContentScript), | 55 errors::kInvalidContentScript), |
38 Testcase("init_invalid_script_matches_missing.json", | 56 Testcase("init_invalid_script_matches_missing.json", |
39 errors::kInvalidMatches), | 57 errors::kInvalidMatches), |
40 Testcase("init_invalid_script_matches_invalid.json", | 58 Testcase("init_invalid_script_matches_invalid.json", |
41 errors::kInvalidMatches), | 59 errors::kInvalidMatches), |
42 Testcase("init_invalid_script_matches_empty.json", | 60 Testcase("init_invalid_script_matches_empty.json", |
43 errors::kInvalidMatchCount), | 61 errors::kInvalidMatchCount), |
(...skipping 21 matching lines...) Expand all Loading... | |
65 Testcase("init_invalid_locale_empty.json", errors::kInvalidDefaultLocale), | 83 Testcase("init_invalid_locale_empty.json", errors::kInvalidDefaultLocale), |
66 Testcase("init_invalid_min_chrome_invalid.json", | 84 Testcase("init_invalid_min_chrome_invalid.json", |
67 errors::kInvalidMinimumChromeVersion), | 85 errors::kInvalidMinimumChromeVersion), |
68 Testcase("init_invalid_chrome_version_too_low.json", | 86 Testcase("init_invalid_chrome_version_too_low.json", |
69 errors::kChromeVersionTooLow), | 87 errors::kChromeVersionTooLow), |
70 Testcase("init_invalid_short_name_empty.json", | 88 Testcase("init_invalid_short_name_empty.json", |
71 errors::kInvalidShortName), | 89 errors::kInvalidShortName), |
72 Testcase("init_invalid_short_name_type.json", | 90 Testcase("init_invalid_short_name_type.json", |
73 errors::kInvalidShortName), | 91 errors::kInvalidShortName), |
74 }; | 92 }; |
75 | |
76 RunTestcases(testcases, arraysize(testcases), | 93 RunTestcases(testcases, arraysize(testcases), |
calamity
2014/08/21 02:53:08
nit: add whitespace back.
Matt Giuca
2014/08/22 02:48:40
Done.
| |
77 EXPECT_TYPE_ERROR); | 94 EXPECT_TYPE_ERROR); |
78 } | 95 } |
79 | 96 |
80 TEST_F(InitValueManifestTest, InitFromValueValid) { | 97 TEST_F(InitValueManifestTest, InitFromValueValid) { |
98 CommandLine::ForCurrentProcess()->AppendSwitchASCII( | |
99 extensions::switches::kWhitelistedExtensionID, kWhitelistID); | |
81 scoped_refptr<Extension> extension(LoadAndExpectSuccess( | 100 scoped_refptr<Extension> extension(LoadAndExpectSuccess( |
82 "init_valid_minimal.json")); | 101 "init_valid_minimal.json")); |
83 | 102 |
84 base::FilePath path; | 103 base::FilePath path; |
85 PathService::Get(chrome::DIR_TEST_DATA, &path); | 104 PathService::Get(chrome::DIR_TEST_DATA, &path); |
86 path = path.AppendASCII("extensions"); | 105 path = path.AppendASCII("extensions"); |
87 | 106 |
88 EXPECT_TRUE(Extension::IdIsValid(extension->id())); | 107 EXPECT_TRUE(Extension::IdIsValid(extension->id())); |
89 EXPECT_EQ("1.0.0.0", extension->VersionString()); | 108 EXPECT_EQ("1.0.0.0", extension->VersionString()); |
90 EXPECT_EQ("my extension", extension->name()); | 109 EXPECT_EQ("my extension", extension->name()); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
122 Testcase("init_valid_app_minimum_chrome.json"), | 141 Testcase("init_valid_app_minimum_chrome.json"), |
123 | 142 |
124 // Test a hosted app with a requirements section. | 143 // Test a hosted app with a requirements section. |
125 Testcase("init_valid_app_requirements.json"), | 144 Testcase("init_valid_app_requirements.json"), |
126 | 145 |
127 // Verify empty permission settings are considered valid. | 146 // Verify empty permission settings are considered valid. |
128 Testcase("init_valid_permissions_empty.json"), | 147 Testcase("init_valid_permissions_empty.json"), |
129 | 148 |
130 // We allow unknown API permissions, so this will be valid until we better | 149 // We allow unknown API permissions, so this will be valid until we better |
131 // distinguish between API and host permissions. | 150 // distinguish between API and host permissions. |
132 Testcase("init_valid_permissions_unknown.json") | 151 Testcase("init_valid_permissions_unknown.json"), |
152 | |
153 // Test an app with a launcher_page section. | |
154 Testcase("init_valid_launcher_page.json") | |
133 }; | 155 }; |
134 | 156 |
135 RunTestcases(testcases, arraysize(testcases), | 157 RunTestcases(testcases, arraysize(testcases), |
136 EXPECT_TYPE_SUCCESS); | 158 EXPECT_TYPE_SUCCESS); |
137 } | 159 } |
138 | 160 |
139 TEST_F(InitValueManifestTest, InitFromValueValidNameInRTL) { | 161 TEST_F(InitValueManifestTest, InitFromValueValidNameInRTL) { |
140 std::string locale = l10n_util::GetApplicationLocale(""); | 162 std::string locale = l10n_util::GetApplicationLocale(""); |
141 base::i18n::SetICUDefaultLocale("he"); | 163 base::i18n::SetICUDefaultLocale("he"); |
142 | 164 |
(...skipping 10 matching lines...) Expand all Loading... | |
153 | 175 |
154 localized_name = base::WideToUTF16(L"Dictionary (\x05D1\x05D2" L" Google)"); | 176 localized_name = base::WideToUTF16(L"Dictionary (\x05D1\x05D2" L" Google)"); |
155 base::i18n::AdjustStringForLocaleDirection(&localized_name); | 177 base::i18n::AdjustStringForLocaleDirection(&localized_name); |
156 EXPECT_EQ(localized_name, base::UTF8ToUTF16(extension->name())); | 178 EXPECT_EQ(localized_name, base::UTF8ToUTF16(extension->name())); |
157 | 179 |
158 // Reset locale. | 180 // Reset locale. |
159 base::i18n::SetICUDefaultLocale(locale); | 181 base::i18n::SetICUDefaultLocale(locale); |
160 } | 182 } |
161 | 183 |
162 } // namespace extensions | 184 } // namespace extensions |
OLD | NEW |