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

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

Issue 11726002: Move the parsing of 'update_url' & 'options_page' URLs out of Extension. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@url_parse
Patch Set: Created 7 years, 11 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
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 "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
6
7 #include "base/i18n/rtl.h" 5 #include "base/i18n/rtl.h"
8 #include "base/path_service.h" 6 #include "base/path_service.h"
9 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
10 #include "chrome/common/chrome_paths.h" 8 #include "chrome/common/chrome_paths.h"
11 #include "chrome/common/extensions/extension.h" 9 #include "chrome/common/extensions/extension.h"
12 #include "chrome/common/extensions/extension_manifest_constants.h" 10 #include "chrome/common/extensions/extension_manifest_constants.h"
11 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
12 #include "chrome/common/extensions/manifest_url_info.h"
13 #include "chrome/common/extensions/options_page_handler.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 #include "ui/base/l10n/l10n_util.h" 15 #include "ui/base/l10n/l10n_util.h"
15 16
16 #if defined(TOOLKIT_GTK) 17 #if defined(TOOLKIT_GTK)
17 #include <gtk/gtk.h> 18 #include <gtk/gtk.h>
18 #endif 19 #endif
19 20
21 namespace keys = extension_manifest_keys;
Yoyo Zhou 2013/01/03 23:16:00 no need for this if it's only used once.
Joe Thomas 2013/01/04 01:36:27 Done.
20 namespace errors = extension_manifest_errors; 22 namespace errors = extension_manifest_errors;
21 23
22 TEST_F(ExtensionManifestTest, InitFromValueInvalid) { 24 namespace {
Yoyo Zhou 2013/01/03 23:16:00 I don't think the prevailing style is to put these
Joe Thomas 2013/01/04 01:36:27 Done.
25
26 class InitValueManifestTest : public ExtensionManifestTest {
27 virtual void SetUp() OVERRIDE {
28 ExtensionManifestTest::SetUp();
29 extensions::ManifestHandler::Register(keys::kOptionsPage,
30 new extensions::OptionsPageHandler);
31 }
32 };
33
34 TEST_F(InitValueManifestTest, InitFromValueInvalid) {
23 Testcase testcases[] = { 35 Testcase testcases[] = {
24 Testcase("init_invalid_version_missing.json", errors::kInvalidVersion), 36 Testcase("init_invalid_version_missing.json", errors::kInvalidVersion),
25 Testcase("init_invalid_version_invalid.json", errors::kInvalidVersion), 37 Testcase("init_invalid_version_invalid.json", errors::kInvalidVersion),
26 Testcase("init_invalid_name_missing.json", errors::kInvalidName), 38 Testcase("init_invalid_name_missing.json", errors::kInvalidName),
27 Testcase("init_invalid_name_invalid.json", errors::kInvalidName), 39 Testcase("init_invalid_name_invalid.json", errors::kInvalidName),
28 Testcase("init_invalid_description_invalid.json", 40 Testcase("init_invalid_description_invalid.json",
29 errors::kInvalidDescription), 41 errors::kInvalidDescription),
30 Testcase("init_invalid_icons_invalid.json", errors::kInvalidIcons), 42 Testcase("init_invalid_icons_invalid.json", errors::kInvalidIcons),
31 Testcase("init_invalid_icons_path_invalid.json", errors::kInvalidIconPath), 43 Testcase("init_invalid_icons_path_invalid.json", errors::kInvalidIconPath),
32 Testcase("init_invalid_script_invalid.json", 44 Testcase("init_invalid_script_invalid.json",
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 Testcase("init_invalid_min_chrome_invalid.json", 76 Testcase("init_invalid_min_chrome_invalid.json",
65 errors::kInvalidMinimumChromeVersion), 77 errors::kInvalidMinimumChromeVersion),
66 Testcase("init_invalid_chrome_version_too_low.json", 78 Testcase("init_invalid_chrome_version_too_low.json",
67 errors::kChromeVersionTooLow), 79 errors::kChromeVersionTooLow),
68 }; 80 };
69 81
70 RunTestcases(testcases, arraysize(testcases), 82 RunTestcases(testcases, arraysize(testcases),
71 EXPECT_TYPE_ERROR); 83 EXPECT_TYPE_ERROR);
72 } 84 }
73 85
74 TEST_F(ExtensionManifestTest, InitFromValueValid) { 86 TEST_F(InitValueManifestTest, InitFromValueValid) {
75 scoped_refptr<extensions::Extension> extension(LoadAndExpectSuccess( 87 scoped_refptr<extensions::Extension> extension(LoadAndExpectSuccess(
76 "init_valid_minimal.json")); 88 "init_valid_minimal.json"));
77 89
78 FilePath path; 90 FilePath path;
79 PathService::Get(chrome::DIR_TEST_DATA, &path); 91 PathService::Get(chrome::DIR_TEST_DATA, &path);
80 path = path.AppendASCII("extensions"); 92 path = path.AppendASCII("extensions");
81 93
82 EXPECT_TRUE(extensions::Extension::IdIsValid(extension->id())); 94 EXPECT_TRUE(extensions::Extension::IdIsValid(extension->id()));
83 EXPECT_EQ("1.0.0.0", extension->VersionString()); 95 EXPECT_EQ("1.0.0.0", extension->VersionString());
84 EXPECT_EQ("my extension", extension->name()); 96 EXPECT_EQ("my extension", extension->name());
85 EXPECT_EQ(extension->id(), extension->url().host()); 97 EXPECT_EQ(extension->id(), extension->url().host());
86 EXPECT_EQ(extension->path(), path); 98 EXPECT_EQ(extension->path(), path);
87 EXPECT_EQ(path, extension->path()); 99 EXPECT_EQ(path, extension->path());
88 100
89 // Test permissions scheme. 101 // Test permissions scheme.
90 // We allow unknown API permissions, so this will be valid until we better 102 // We allow unknown API permissions, so this will be valid until we better
91 // distinguish between API and host permissions. 103 // distinguish between API and host permissions.
92 LoadAndExpectSuccess("init_valid_permissions.json"); 104 LoadAndExpectSuccess("init_valid_permissions.json");
93 105
94 // Test with an options page. 106 // Test with an options page.
95 extension = LoadAndExpectSuccess("init_valid_options.json"); 107 extension = LoadAndExpectSuccess("init_valid_options.json");
96 EXPECT_EQ("chrome-extension", extension->options_url().scheme()); 108 EXPECT_EQ("chrome-extension",
97 EXPECT_EQ("/options.html", extension->options_url().path()); 109 extensions::ManifestURLInfo::GetOptionsPage(extension).scheme());
110 EXPECT_EQ("/options.html",
111 extensions::ManifestURLInfo::GetOptionsPage(extension).path());
98 112
99 Testcase testcases[] = { 113 Testcase testcases[] = {
100 // Test that an empty list of page actions does not stop a browser action 114 // Test that an empty list of page actions does not stop a browser action
101 // from being loaded. 115 // from being loaded.
102 Testcase("init_valid_empty_page_actions.json"), 116 Testcase("init_valid_empty_page_actions.json"),
103 117
104 // Test with a minimum_chrome_version. 118 // Test with a minimum_chrome_version.
105 Testcase("init_valid_minimum_chrome.json"), 119 Testcase("init_valid_minimum_chrome.json"),
106 120
107 // Test a hosted app with a minimum_chrome_version. 121 // Test a hosted app with a minimum_chrome_version.
108 Testcase("init_valid_app_minimum_chrome.json"), 122 Testcase("init_valid_app_minimum_chrome.json"),
109 123
110 // Test a hosted app with a requirements section. 124 // Test a hosted app with a requirements section.
111 Testcase("init_valid_app_requirements.json"), 125 Testcase("init_valid_app_requirements.json"),
112 126
113 // Verify empty permission settings are considered valid. 127 // Verify empty permission settings are considered valid.
114 Testcase("init_valid_permissions_empty.json"), 128 Testcase("init_valid_permissions_empty.json"),
115 129
116 // We allow unknown API permissions, so this will be valid until we better 130 // We allow unknown API permissions, so this will be valid until we better
117 // distinguish between API and host permissions. 131 // distinguish between API and host permissions.
118 Testcase("init_valid_permissions_unknown.json") 132 Testcase("init_valid_permissions_unknown.json")
119 }; 133 };
120 134
121 RunTestcases(testcases, arraysize(testcases), 135 RunTestcases(testcases, arraysize(testcases),
122 EXPECT_TYPE_SUCCESS); 136 EXPECT_TYPE_SUCCESS);
123 } 137 }
124 138
125 TEST_F(ExtensionManifestTest, InitFromValueValidNameInRTL) { 139 TEST_F(InitValueManifestTest, InitFromValueValidNameInRTL) {
126 #if defined(TOOLKIT_GTK) 140 #if defined(TOOLKIT_GTK)
127 GtkTextDirection gtk_dir = gtk_widget_get_default_direction(); 141 GtkTextDirection gtk_dir = gtk_widget_get_default_direction();
128 gtk_widget_set_default_direction(GTK_TEXT_DIR_RTL); 142 gtk_widget_set_default_direction(GTK_TEXT_DIR_RTL);
129 #else 143 #else
130 std::string locale = l10n_util::GetApplicationLocale(""); 144 std::string locale = l10n_util::GetApplicationLocale("");
131 base::i18n::SetICUDefaultLocale("he"); 145 base::i18n::SetICUDefaultLocale("he");
132 #endif 146 #endif
133 147
134 // No strong RTL characters in name. 148 // No strong RTL characters in name.
135 scoped_refptr<extensions::Extension> extension(LoadAndExpectSuccess( 149 scoped_refptr<extensions::Extension> extension(LoadAndExpectSuccess(
(...skipping 10 matching lines...) Expand all
146 base::i18n::AdjustStringForLocaleDirection(&localized_name); 160 base::i18n::AdjustStringForLocaleDirection(&localized_name);
147 EXPECT_EQ(localized_name, UTF8ToUTF16(extension->name())); 161 EXPECT_EQ(localized_name, UTF8ToUTF16(extension->name()));
148 162
149 // Reset locale. 163 // Reset locale.
150 #if defined(TOOLKIT_GTK) 164 #if defined(TOOLKIT_GTK)
151 gtk_widget_set_default_direction(gtk_dir); 165 gtk_widget_set_default_direction(gtk_dir);
152 #else 166 #else
153 base::i18n::SetICUDefaultLocale(locale); 167 base::i18n::SetICUDefaultLocale(locale);
154 #endif 168 #endif
155 } 169 }
170
171 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698