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

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

Issue 1312653003: Fix for WebView accessible resources. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Small fix. Rebased. Created 5 years, 3 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/strings/string_number_conversions.h" 5 #include "base/strings/string_number_conversions.h"
6 #include "chrome/common/extensions/manifest_tests/chrome_manifest_test.h" 6 #include "chrome/common/extensions/manifest_tests/chrome_manifest_test.h"
7 #include "extensions/common/error_utils.h" 7 #include "extensions/common/error_utils.h"
8 #include "extensions/common/manifest_constants.h" 8 #include "extensions/common/manifest_constants.h"
9 #include "extensions/common/manifest_handlers/webview_info.h" 9 #include "extensions/common/manifest_handlers/webview_info.h"
10 10
11 using extensions::ErrorUtils; 11 using extensions::ErrorUtils;
12 using extensions::Extension; 12 using extensions::Extension;
13 using extensions::WebviewInfo; 13 using extensions::WebviewInfo;
14 namespace errors = extensions::manifest_errors; 14 namespace errors = extensions::manifest_errors;
15 15
16 class WebviewAccessibleResourcesManifestTest : public ChromeManifestTest { 16 class WebviewAccessibleResourcesManifestTest : public ChromeManifestTest {
17 }; 17 };
18 18
19 TEST_F(WebviewAccessibleResourcesManifestTest, WebviewAccessibleResources) { 19 TEST_F(WebviewAccessibleResourcesManifestTest, WebviewAccessibleResources) {
20 // Manifest version 2 with webview accessible resources specified. 20 // Manifest version 2 with webview accessible resources specified.
21 scoped_refptr<Extension> extension1( 21 scoped_refptr<Extension> extension(
22 LoadAndExpectSuccess("webview_accessible_resources_1.json")); 22 LoadAndExpectSuccess("webview_accessible_resources_1.json"));
23 scoped_refptr<Extension> extension2(
24 LoadAndExpectSuccess("webview_accessible_resources_2.json"));
25 DCHECK(extension1->id() != extension2->id());
26 const WebviewInfo* webview_info1 =
27 static_cast<const WebviewInfo*>(extension1->GetManifestData(
28 extensions::manifest_keys::kWebviewAccessibleResources));
29 const WebviewInfo* webview_info2 =
30 static_cast<const WebviewInfo*>(extension2->GetManifestData(
31 extensions::manifest_keys::kWebviewAccessibleResources));
32 23
33 EXPECT_FALSE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 24 EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
34 "fail", "a.html")); 25 "fail", "a.html"));
35 EXPECT_FALSE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 26 EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
36 "fail", "b.html")); 27 "fail", "b.html"));
37 EXPECT_FALSE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 28 EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
38 "fail", "c.html")); 29 "fail", "c.html"));
39 EXPECT_FALSE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 30 EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
40 "fail", "d.html")); 31 "fail", "d.html"));
41 32
42 EXPECT_TRUE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 33 EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
43 "foo", "a.html")); 34 "foo", "a.html"));
44 EXPECT_TRUE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 35 EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
45 "foo", "b.html")); 36 "foo", "b.html"));
46 EXPECT_FALSE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 37 EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
47 "foo", "c.html")); 38 "foo", "c.html"));
48 EXPECT_FALSE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 39 EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
49 "foo", "d.html")); 40 "foo", "d.html"));
50 41
51 EXPECT_TRUE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 42 EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
52 "bar", "a.html")); 43 "bar", "a.html"));
53 EXPECT_FALSE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 44 EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
54 "bar", "b.html")); 45 "bar", "b.html"));
55 EXPECT_TRUE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 46 EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
56 "bar", "c.html")); 47 "bar", "c.html"));
57 EXPECT_FALSE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 48 EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
58 "bar", "d.html")); 49 "bar", "d.html"));
59 50
60 EXPECT_TRUE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 51 EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
61 "foobar", "a.html")); 52 "foobar", "a.html"));
62 EXPECT_TRUE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 53 EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
63 "foobar", "b.html")); 54 "foobar", "b.html"));
64 EXPECT_TRUE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 55 EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
65 "foobar", "c.html")); 56 "foobar", "c.html"));
66 EXPECT_FALSE(webview_info1->IsResourceWebviewAccessible(extension1.get(), 57 EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(),
67 "foobar", "d.html")); 58 "foobar", "d.html"));
68 59
69 // Check that if the owner extension doesn't match the request extension 60 EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(nullptr,
70 // the resource will not be accessible. 61 "foobar", "a.html"));
71 EXPECT_FALSE(webview_info2->IsResourceWebviewAccessible(extension1.get(),
72 "foobar", "a.html"));
73 EXPECT_FALSE(webview_info1->IsResourceWebviewAccessible(extension2.get(),
74 "foobar", "a.html"));
75 EXPECT_TRUE(webview_info2->IsResourceWebviewAccessible(extension2.get(),
76 "foobar", "a.html"));
77 EXPECT_FALSE(
78 webview_info1->IsResourceWebviewAccessible(nullptr, "foobar", "a.html"));
79 EXPECT_FALSE(
80 webview_info2->IsResourceWebviewAccessible(nullptr, "foobar", "a.html"));
81 } 62 }
82 63
83 TEST_F(WebviewAccessibleResourcesManifestTest, InvalidManifest) { 64 TEST_F(WebviewAccessibleResourcesManifestTest, InvalidManifest) {
84 LoadAndExpectError("webview_accessible_resources_invalid1.json", 65 LoadAndExpectError("webview_accessible_resources_invalid1.json",
85 errors::kInvalidWebview); 66 errors::kInvalidWebview);
86 LoadAndExpectError("webview_accessible_resources_invalid2.json", 67 LoadAndExpectError("webview_accessible_resources_invalid2.json",
87 errors::kInvalidWebviewPartitionsList); 68 errors::kInvalidWebviewPartitionsList);
88 LoadAndExpectError("webview_accessible_resources_invalid3.json", 69 LoadAndExpectError("webview_accessible_resources_invalid3.json",
89 errors::kInvalidWebviewPartitionsList); 70 errors::kInvalidWebviewPartitionsList);
90 LoadAndExpectError("webview_accessible_resources_invalid4.json", 71 LoadAndExpectError("webview_accessible_resources_invalid4.json",
91 ErrorUtils::FormatErrorMessage( 72 ErrorUtils::FormatErrorMessage(
92 errors::kInvalidWebviewPartition, base::IntToString(0))); 73 errors::kInvalidWebviewPartition, base::IntToString(0)));
93 LoadAndExpectError("webview_accessible_resources_invalid5.json", 74 LoadAndExpectError("webview_accessible_resources_invalid5.json",
94 errors::kInvalidWebviewPartitionName); 75 errors::kInvalidWebviewPartitionName);
95 LoadAndExpectError("webview_accessible_resources_invalid6.json", 76 LoadAndExpectError("webview_accessible_resources_invalid6.json",
96 errors::kInvalidWebviewAccessibleResourcesList); 77 errors::kInvalidWebviewAccessibleResourcesList);
97 LoadAndExpectError("webview_accessible_resources_invalid7.json", 78 LoadAndExpectError("webview_accessible_resources_invalid7.json",
98 errors::kInvalidWebviewAccessibleResourcesList); 79 errors::kInvalidWebviewAccessibleResourcesList);
99 LoadAndExpectError("webview_accessible_resources_invalid8.json", 80 LoadAndExpectError("webview_accessible_resources_invalid8.json",
100 ErrorUtils::FormatErrorMessage( 81 ErrorUtils::FormatErrorMessage(
101 errors::kInvalidWebviewAccessibleResource, base::IntToString(0))); 82 errors::kInvalidWebviewAccessibleResource, base::IntToString(0)));
102 } 83 }
OLDNEW
« no previous file with comments | « chrome/browser/plugins/plugin_info_message_filter.cc ('k') | chrome/renderer/chrome_content_renderer_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698