OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/strings/string16.h" | 9 #include "base/strings/string16.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 "239.255.255.250", 1900)); | 153 "239.255.255.250", 1900)); |
154 } | 154 } |
155 | 155 |
156 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyAPIPermissions) { | 156 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyAPIPermissions) { |
157 scoped_refptr<Extension> extension; | 157 scoped_refptr<Extension> extension; |
158 extension = LoadManifest("permissions", "many-apis.json"); | 158 extension = LoadManifest("permissions", "many-apis.json"); |
159 std::vector<base::string16> warnings = | 159 std::vector<base::string16> warnings = |
160 PermissionsData::GetPermissionMessageStrings(extension.get()); | 160 PermissionsData::GetPermissionMessageStrings(extension.get()); |
161 // Warning for "tabs" is suppressed by "history" permission. | 161 // Warning for "tabs" is suppressed by "history" permission. |
162 ASSERT_EQ(5u, warnings.size()); | 162 ASSERT_EQ(5u, warnings.size()); |
163 EXPECT_EQ("Access your data on api.flickr.com", | 163 EXPECT_EQ("Read and modify your data on api.flickr.com", |
164 UTF16ToUTF8(warnings[0])); | 164 UTF16ToUTF8(warnings[0])); |
165 EXPECT_EQ("Read and modify your bookmarks", UTF16ToUTF8(warnings[1])); | 165 EXPECT_EQ("Read and modify your bookmarks", UTF16ToUTF8(warnings[1])); |
166 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[2])); | 166 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[2])); |
167 EXPECT_EQ("Read and modify your browsing history", UTF16ToUTF8(warnings[3])); | 167 EXPECT_EQ("Read and modify your browsing history", UTF16ToUTF8(warnings[3])); |
168 EXPECT_EQ("Manage your apps, extensions, and themes", | 168 EXPECT_EQ("Manage your apps, extensions, and themes", |
169 UTF16ToUTF8(warnings[4])); | 169 UTF16ToUTF8(warnings[4])); |
170 } | 170 } |
171 | 171 |
172 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHostsPermissions) { | 172 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHostsPermissions) { |
173 scoped_refptr<Extension> extension; | 173 scoped_refptr<Extension> extension; |
174 extension = LoadManifest("permissions", "more-than-3-hosts.json"); | 174 extension = LoadManifest("permissions", "more-than-3-hosts.json"); |
175 std::vector<base::string16> warnings = | 175 std::vector<base::string16> warnings = |
176 PermissionsData::GetPermissionMessageStrings(extension.get()); | 176 PermissionsData::GetPermissionMessageStrings(extension.get()); |
177 std::vector<base::string16> warnings_details = | 177 std::vector<base::string16> warnings_details = |
178 PermissionsData::GetPermissionMessageDetailsStrings(extension.get()); | 178 PermissionsData::GetPermissionMessageDetailsStrings(extension.get()); |
179 ASSERT_EQ(1u, warnings.size()); | 179 ASSERT_EQ(1u, warnings.size()); |
180 ASSERT_EQ(1u, warnings_details.size()); | 180 ASSERT_EQ(1u, warnings_details.size()); |
181 EXPECT_EQ("Access your data on 5 websites", UTF16ToUTF8(warnings[0])); | 181 EXPECT_EQ("Read and modify your data on 5 websites", |
| 182 UTF16ToUTF8(warnings[0])); |
182 EXPECT_EQ("- www.a.com\n- www.b.com\n- www.c.com\n- www.d.com\n- www.e.com", | 183 EXPECT_EQ("- www.a.com\n- www.b.com\n- www.c.com\n- www.d.com\n- www.e.com", |
183 UTF16ToUTF8(warnings_details[0])); | 184 UTF16ToUTF8(warnings_details[0])); |
184 } | 185 } |
185 | 186 |
186 TEST(ExtensionPermissionsTest, GetPermissionMessages_LocationApiPermission) { | 187 TEST(ExtensionPermissionsTest, GetPermissionMessages_LocationApiPermission) { |
187 scoped_refptr<Extension> extension; | 188 scoped_refptr<Extension> extension; |
188 extension = LoadManifest("permissions", | 189 extension = LoadManifest("permissions", |
189 "location-api.json", | 190 "location-api.json", |
190 Manifest::COMPONENT, | 191 Manifest::COMPONENT, |
191 Extension::NO_FLAGS); | 192 Extension::NO_FLAGS); |
192 std::vector<base::string16> warnings = | 193 std::vector<base::string16> warnings = |
193 PermissionsData::GetPermissionMessageStrings(extension.get()); | 194 PermissionsData::GetPermissionMessageStrings(extension.get()); |
194 ASSERT_EQ(1u, warnings.size()); | 195 ASSERT_EQ(1u, warnings.size()); |
195 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[0])); | 196 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[0])); |
196 } | 197 } |
197 | 198 |
198 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHosts) { | 199 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHosts) { |
199 scoped_refptr<Extension> extension; | 200 scoped_refptr<Extension> extension; |
200 extension = LoadManifest("permissions", "many-hosts.json"); | 201 extension = LoadManifest("permissions", "many-hosts.json"); |
201 std::vector<base::string16> warnings = | 202 std::vector<base::string16> warnings = |
202 PermissionsData::GetPermissionMessageStrings(extension.get()); | 203 PermissionsData::GetPermissionMessageStrings(extension.get()); |
203 ASSERT_EQ(1u, warnings.size()); | 204 ASSERT_EQ(1u, warnings.size()); |
204 EXPECT_EQ("Access your data on encrypted.google.com and www.google.com", | 205 EXPECT_EQ( |
205 UTF16ToUTF8(warnings[0])); | 206 "Read and modify your data on encrypted.google.com and www.google.com", |
| 207 UTF16ToUTF8(warnings[0])); |
206 } | 208 } |
207 | 209 |
208 TEST(ExtensionPermissionsTest, GetPermissionMessages_Plugins) { | 210 TEST(ExtensionPermissionsTest, GetPermissionMessages_Plugins) { |
209 scoped_refptr<Extension> extension; | 211 scoped_refptr<Extension> extension; |
210 extension = LoadManifest("permissions", "plugins.json"); | 212 extension = LoadManifest("permissions", "plugins.json"); |
211 std::vector<base::string16> warnings = | 213 std::vector<base::string16> warnings = |
212 PermissionsData::GetPermissionMessageStrings(extension.get()); | 214 PermissionsData::GetPermissionMessageStrings(extension.get()); |
213 // We don't parse the plugins key on Chrome OS, so it should not ask for any | 215 // We don't parse the plugins key on Chrome OS, so it should not ask for any |
214 // permissions. | 216 // permissions. |
215 #if defined(OS_CHROMEOS) | 217 #if defined(OS_CHROMEOS) |
216 ASSERT_EQ(0u, warnings.size()); | 218 ASSERT_EQ(0u, warnings.size()); |
217 #else | 219 #else |
218 ASSERT_EQ(1u, warnings.size()); | 220 ASSERT_EQ(1u, warnings.size()); |
219 EXPECT_EQ("Access all data on your computer and the websites you visit", | 221 EXPECT_EQ( |
220 UTF16ToUTF8(warnings[0])); | 222 "Read and modify all your data on your computer and the websites you " |
| 223 "visit", |
| 224 UTF16ToUTF8(warnings[0])); |
221 #endif | 225 #endif |
222 } | 226 } |
223 | 227 |
224 // Base class for testing the CanExecuteScriptOnPage and CanCaptureVisiblePage | 228 // Base class for testing the CanExecuteScriptOnPage and CanCaptureVisiblePage |
225 // methods of Extension for extensions with various permissions. | 229 // methods of Extension for extensions with various permissions. |
226 class ExtensionScriptAndCaptureVisibleTest : public testing::Test { | 230 class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
227 protected: | 231 protected: |
228 ExtensionScriptAndCaptureVisibleTest() | 232 ExtensionScriptAndCaptureVisibleTest() |
229 : http_url("http://www.google.com"), | 233 : http_url("http://www.google.com"), |
230 http_url_with_path("http://www.google.com/index.html"), | 234 http_url_with_path("http://www.google.com/index.html"), |
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
632 PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); | 636 PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); |
633 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) | 637 EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) |
634 .get()); | 638 .get()); |
635 | 639 |
636 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); | 640 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
637 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); | 641 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
638 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); | 642 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
639 } | 643 } |
640 | 644 |
641 } // namespace extensions | 645 } // namespace extensions |
OLD | NEW |