Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Side by Side Diff: chrome/common/extensions/manifest_tests/extension_manifests_initvalue_unittest.cc

Issue 489753002: Added proper extension manifest parser for launcher_page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698