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

Side by Side Diff: chrome/browser/extensions/api/permissions/permissions_api_helpers_unittest.cc

Issue 14694010: Consolidate manifest handler registration. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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 | Annotate | Revision Log
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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/values.h" 6 #include "base/values.h"
7 #include "chrome/browser/extensions/api/permissions/permissions_api_helpers.h" 7 #include "chrome/browser/extensions/api/permissions/permissions_api_helpers.h"
8 #include "chrome/common/extensions/api/permissions.h" 8 #include "chrome/common/extensions/api/permissions.h"
9 #include "chrome/common/extensions/extension_unittest.h"
10 #include "chrome/common/extensions/permissions/permission_set.h" 9 #include "chrome/common/extensions/permissions/permission_set.h"
11 #include "extensions/common/url_pattern_set.h" 10 #include "extensions/common/url_pattern_set.h"
12 #include "googleurl/src/gurl.h" 11 #include "googleurl/src/gurl.h"
13 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
14 13
15 using extensions::api::permissions::Permissions; 14 using extensions::api::permissions::Permissions;
16 using extensions::permissions_api_helpers::PackPermissionSet; 15 using extensions::permissions_api_helpers::PackPermissionSet;
17 using extensions::permissions_api_helpers::UnpackPermissionSet; 16 using extensions::permissions_api_helpers::UnpackPermissionSet;
18 17
19 namespace extensions { 18 namespace extensions {
20 19
21 namespace { 20 namespace {
22 21
23 static void AddPattern(URLPatternSet* extent, const std::string& pattern) { 22 static void AddPattern(URLPatternSet* extent, const std::string& pattern) {
24 int schemes = URLPattern::SCHEME_ALL; 23 int schemes = URLPattern::SCHEME_ALL;
25 extent->AddPattern(URLPattern(schemes, pattern)); 24 extent->AddPattern(URLPattern(schemes, pattern));
26 } 25 }
27 26
28 } // namespace 27 } // namespace
29 28
30 class ExtensionPermissionsAPIHelpers : public ExtensionTest {
31 };
32
33 // Tests that we can convert PermissionSets to and from values. 29 // Tests that we can convert PermissionSets to and from values.
34 TEST_F(ExtensionPermissionsAPIHelpers, Pack) { 30 TEST(ExtensionPermissionsAPIHelpers, Pack) {
35 APIPermissionSet apis; 31 APIPermissionSet apis;
36 apis.insert(APIPermission::kTab); 32 apis.insert(APIPermission::kTab);
37 apis.insert(APIPermission::kWebRequest); 33 apis.insert(APIPermission::kWebRequest);
38 // Note: kWebRequest implies also kWebRequestInternal. 34 // Note: kWebRequest implies also kWebRequestInternal.
39 URLPatternSet hosts; 35 URLPatternSet hosts;
40 AddPattern(&hosts, "http://a.com/*"); 36 AddPattern(&hosts, "http://a.com/*");
41 AddPattern(&hosts, "http://b.com/*"); 37 AddPattern(&hosts, "http://b.com/*");
42 38
43 scoped_refptr<PermissionSet> permission_set = 39 scoped_refptr<PermissionSet> permission_set =
44 new PermissionSet(apis, hosts, URLPatternSet()); 40 new PermissionSet(apis, hosts, URLPatternSet());
(...skipping 28 matching lines...) Expand all
73 Permissions permissions_object; 69 Permissions permissions_object;
74 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); 70 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object));
75 from_value = UnpackPermissionSet(permissions_object, true, &error); 71 from_value = UnpackPermissionSet(permissions_object, true, &error);
76 EXPECT_TRUE(error.empty()); 72 EXPECT_TRUE(error.empty());
77 73
78 EXPECT_EQ(*permission_set, *from_value); 74 EXPECT_EQ(*permission_set, *from_value);
79 } 75 }
80 76
81 // Tests various error conditions and edge cases when unpacking values 77 // Tests various error conditions and edge cases when unpacking values
82 // into PermissionSets. 78 // into PermissionSets.
83 TEST_F(ExtensionPermissionsAPIHelpers, Unpack) { 79 TEST(ExtensionPermissionsAPIHelpers, Unpack) {
84 scoped_ptr<ListValue> apis(new ListValue()); 80 scoped_ptr<ListValue> apis(new ListValue());
85 apis->Append(Value::CreateStringValue("tabs")); 81 apis->Append(Value::CreateStringValue("tabs"));
86 scoped_ptr<ListValue> origins(new ListValue()); 82 scoped_ptr<ListValue> origins(new ListValue());
87 origins->Append(Value::CreateStringValue("http://a.com/*")); 83 origins->Append(Value::CreateStringValue("http://a.com/*"));
88 84
89 scoped_ptr<DictionaryValue> value(new DictionaryValue()); 85 scoped_ptr<DictionaryValue> value(new DictionaryValue());
90 scoped_refptr<PermissionSet> permissions; 86 scoped_refptr<PermissionSet> permissions;
91 std::string error; 87 std::string error;
92 88
93 // Origins shouldn't have to be present. 89 // Origins shouldn't have to be present.
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 value->Set("permissions", invalid_apis->DeepCopy()); 166 value->Set("permissions", invalid_apis->DeepCopy());
171 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); 167 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object));
172 permissions = UnpackPermissionSet(permissions_object, true, &error); 168 permissions = UnpackPermissionSet(permissions_object, true, &error);
173 EXPECT_FALSE(permissions); 169 EXPECT_FALSE(permissions);
174 EXPECT_FALSE(error.empty()); 170 EXPECT_FALSE(error.empty());
175 EXPECT_EQ(error, "'unknown_permission' is not a recognized permission."); 171 EXPECT_EQ(error, "'unknown_permission' is not a recognized permission.");
176 } 172 }
177 } 173 }
178 174
179 } // namespace extensions 175 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698