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

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

Powered by Google App Engine
This is Rietveld 408576698