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

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

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

Powered by Google App Engine
This is Rietveld 408576698