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

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

Issue 16295003: Update chrome/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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/permissions/permission_set.h" 9 #include "chrome/common/extensions/permissions/permission_set.h"
10 #include "extensions/common/url_pattern_set.h" 10 #include "extensions/common/url_pattern_set.h"
(...skipping 22 matching lines...) Expand all
33 apis.insert(APIPermission::kWebRequest); 33 apis.insert(APIPermission::kWebRequest);
34 // Note: kWebRequest implies also kWebRequestInternal. 34 // Note: kWebRequest implies also kWebRequestInternal.
35 URLPatternSet hosts; 35 URLPatternSet hosts;
36 AddPattern(&hosts, "http://a.com/*"); 36 AddPattern(&hosts, "http://a.com/*");
37 AddPattern(&hosts, "http://b.com/*"); 37 AddPattern(&hosts, "http://b.com/*");
38 38
39 scoped_refptr<PermissionSet> permission_set = 39 scoped_refptr<PermissionSet> permission_set =
40 new PermissionSet(apis, hosts, URLPatternSet()); 40 new PermissionSet(apis, hosts, URLPatternSet());
41 41
42 // Pack the permission set to value and verify its contents. 42 // Pack the permission set to value and verify its contents.
43 scoped_ptr<Permissions> permissions(PackPermissionSet(permission_set)); 43 scoped_ptr<Permissions> permissions(PackPermissionSet(permission_set.get()));
44 scoped_ptr<DictionaryValue> value(permissions->ToValue()); 44 scoped_ptr<DictionaryValue> value(permissions->ToValue());
45 ListValue* api_list = NULL; 45 ListValue* api_list = NULL;
46 ListValue* origin_list = NULL; 46 ListValue* origin_list = NULL;
47 EXPECT_TRUE(value->GetList("permissions", &api_list)); 47 EXPECT_TRUE(value->GetList("permissions", &api_list));
48 EXPECT_TRUE(value->GetList("origins", &origin_list)); 48 EXPECT_TRUE(value->GetList("origins", &origin_list));
49 49
50 EXPECT_EQ(3u, api_list->GetSize()); 50 EXPECT_EQ(3u, api_list->GetSize());
51 EXPECT_EQ(2u, origin_list->GetSize()); 51 EXPECT_EQ(2u, origin_list->GetSize());
52 52
53 std::string expected_apis[] = { "tabs", "webRequest" }; 53 std::string expected_apis[] = { "tabs", "webRequest" };
(...skipping 10 matching lines...) Expand all
64 64
65 // Unpack the value back to a permission set and make sure its equal to the 65 // Unpack the value back to a permission set and make sure its equal to the
66 // original one. 66 // original one.
67 scoped_refptr<PermissionSet> from_value; 67 scoped_refptr<PermissionSet> from_value;
68 std::string error; 68 std::string error;
69 Permissions permissions_object; 69 Permissions permissions_object;
70 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); 70 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object));
71 from_value = UnpackPermissionSet(permissions_object, true, &error); 71 from_value = UnpackPermissionSet(permissions_object, true, &error);
72 EXPECT_TRUE(error.empty()); 72 EXPECT_TRUE(error.empty());
73 73
74 EXPECT_EQ(*permission_set, *from_value); 74 EXPECT_EQ(*permission_set.get(), *from_value.get());
75 } 75 }
76 76
77 // Tests various error conditions and edge cases when unpacking values 77 // Tests various error conditions and edge cases when unpacking values
78 // into PermissionSets. 78 // into PermissionSets.
79 TEST(ExtensionPermissionsAPIHelpers, Unpack) { 79 TEST(ExtensionPermissionsAPIHelpers, Unpack) {
80 scoped_ptr<ListValue> apis(new ListValue()); 80 scoped_ptr<ListValue> apis(new ListValue());
81 apis->Append(Value::CreateStringValue("tabs")); 81 apis->Append(Value::CreateStringValue("tabs"));
82 scoped_ptr<ListValue> origins(new ListValue()); 82 scoped_ptr<ListValue> origins(new ListValue());
83 origins->Append(Value::CreateStringValue("http://a.com/*")); 83 origins->Append(Value::CreateStringValue("http://a.com/*"));
84 84
85 scoped_ptr<DictionaryValue> value(new DictionaryValue()); 85 scoped_ptr<DictionaryValue> value(new DictionaryValue());
86 scoped_refptr<PermissionSet> permissions; 86 scoped_refptr<PermissionSet> permissions;
87 std::string error; 87 std::string error;
88 88
89 // Origins shouldn't have to be present. 89 // Origins shouldn't have to be present.
90 { 90 {
91 Permissions permissions_object; 91 Permissions permissions_object;
92 value->Set("permissions", apis->DeepCopy()); 92 value->Set("permissions", apis->DeepCopy());
93 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); 93 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object));
94 permissions = UnpackPermissionSet(permissions_object, true, &error); 94 permissions = UnpackPermissionSet(permissions_object, true, &error);
95 EXPECT_TRUE(permissions->HasAPIPermission(APIPermission::kTab)); 95 EXPECT_TRUE(permissions->HasAPIPermission(APIPermission::kTab));
96 EXPECT_TRUE(permissions); 96 EXPECT_TRUE(permissions.get());
97 EXPECT_TRUE(error.empty()); 97 EXPECT_TRUE(error.empty());
98 } 98 }
99 99
100 // The api permissions don't need to be present either. 100 // The api permissions don't need to be present either.
101 { 101 {
102 Permissions permissions_object; 102 Permissions permissions_object;
103 value->Clear(); 103 value->Clear();
104 value->Set("origins", origins->DeepCopy()); 104 value->Set("origins", origins->DeepCopy());
105 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); 105 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object));
106 permissions = UnpackPermissionSet(permissions_object, true, &error); 106 permissions = UnpackPermissionSet(permissions_object, true, &error);
107 EXPECT_TRUE(permissions); 107 EXPECT_TRUE(permissions.get());
108 EXPECT_TRUE(error.empty()); 108 EXPECT_TRUE(error.empty());
109 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/"))); 109 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/")));
110 } 110 }
111 111
112 // Throw errors for non-string API permissions. 112 // Throw errors for non-string API permissions.
113 { 113 {
114 Permissions permissions_object; 114 Permissions permissions_object;
115 value->Clear(); 115 value->Clear();
116 scoped_ptr<ListValue> invalid_apis(apis->DeepCopy()); 116 scoped_ptr<ListValue> invalid_apis(apis->DeepCopy());
117 invalid_apis->Append(Value::CreateIntegerValue(3)); 117 invalid_apis->Append(Value::CreateIntegerValue(3));
(...skipping 27 matching lines...) Expand all
145 } 145 }
146 146
147 // Additional fields should be allowed. 147 // Additional fields should be allowed.
148 { 148 {
149 Permissions permissions_object; 149 Permissions permissions_object;
150 value->Clear(); 150 value->Clear();
151 value->Set("origins", origins->DeepCopy()); 151 value->Set("origins", origins->DeepCopy());
152 value->Set("random", Value::CreateIntegerValue(3)); 152 value->Set("random", Value::CreateIntegerValue(3));
153 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); 153 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object));
154 permissions = UnpackPermissionSet(permissions_object, true, &error); 154 permissions = UnpackPermissionSet(permissions_object, true, &error);
155 EXPECT_TRUE(permissions); 155 EXPECT_TRUE(permissions.get());
156 EXPECT_TRUE(error.empty()); 156 EXPECT_TRUE(error.empty());
157 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/"))); 157 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/")));
158 } 158 }
159 159
160 // Unknown permissions should throw an error. 160 // Unknown permissions should throw an error.
161 { 161 {
162 Permissions permissions_object; 162 Permissions permissions_object;
163 value->Clear(); 163 value->Clear();
164 scoped_ptr<ListValue> invalid_apis(apis->DeepCopy()); 164 scoped_ptr<ListValue> invalid_apis(apis->DeepCopy());
165 invalid_apis->Append(Value::CreateStringValue("unknown_permission")); 165 invalid_apis->Append(Value::CreateStringValue("unknown_permission"));
166 value->Set("permissions", invalid_apis->DeepCopy()); 166 value->Set("permissions", invalid_apis->DeepCopy());
167 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); 167 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object));
168 permissions = UnpackPermissionSet(permissions_object, true, &error); 168 permissions = UnpackPermissionSet(permissions_object, true, &error);
169 EXPECT_FALSE(permissions); 169 EXPECT_FALSE(permissions.get());
170 EXPECT_FALSE(error.empty()); 170 EXPECT_FALSE(error.empty());
171 EXPECT_EQ(error, "'unknown_permission' is not a recognized permission."); 171 EXPECT_EQ(error, "'unknown_permission' is not a recognized permission.");
172 } 172 }
173 } 173 }
174 174
175 } // namespace extensions 175 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698