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

Side by Side Diff: chrome/common/extensions/permissions/settings_override_permission_unittest.cc

Issue 55533003: Add extension permissions for new settings override API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added tests. Created 7 years, 1 month 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
(Empty)
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
3 // found in the LICENSE file.
4
5 // These tests make sure SettingsOverridePermission values are set correctly.
6
7 #include "base/basictypes.h"
8 #include "base/values.h"
9 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
10 #include "chrome/common/extensions/permissions/permissions_data.h"
11 #include "chrome/common/extensions/permissions/settings_override_permission.h"
12 #include "extensions/common/manifest_constants.h"
13 #include "extensions/common/permissions/permission_set.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15
16 namespace extensions {
17
18 namespace {
19
20 class SettingsOverridePermissionTest : public ExtensionManifestTest {
21 protected:
22 enum Flags {
23 kHomePage = 1,
24 kStartupPages = 1 << 1,
25 kSearchProvider = 1 << 2,
26 };
27
28 scoped_refptr<const PermissionSet> GetPermissionSet(uint32 flags) {
29 base::DictionaryValue ext_manifest;
30 ext_manifest.SetString(manifest_keys::kName, "test");
31 ext_manifest.SetString(manifest_keys::kVersion, "0.1");
32 ext_manifest.SetInteger(manifest_keys::kManifestVersion, 2);
33
34 scoped_ptr<base::DictionaryValue> settings_override(
35 new base::DictionaryValue);
36 if (flags & kHomePage)
37 settings_override->SetString("homepage", "http://www.google.com");
38 if (flags & kStartupPages) {
39 scoped_ptr<ListValue> startup_pages(new ListValue);
40 startup_pages->AppendString("http://startup.com/startup.html");
41 settings_override->Set("startup_pages", startup_pages.release());
42 }
43 if (flags & kSearchProvider) {
44 scoped_ptr<DictionaryValue> search_provider(new DictionaryValue);
45 search_provider->SetString("search_url", "http://google.com/search.html");
46 search_provider->SetString("name", "test");
47 search_provider->SetString("keyword", "lock");
48 search_provider->SetString("encoding", "UTF-8");
49 search_provider->SetBoolean("is_default", true);
50 search_provider->SetString("favicon_url", "wikipedia.org/wiki/Favicon");
51 settings_override->Set("search_provider", search_provider.release());
52 }
53 ext_manifest.Set(
54 manifest_keys::kSettingsOverride, settings_override.release());
55
56 Manifest manifest(&ext_manifest, "test");
57 scoped_refptr<extensions::Extension> extension =
58 LoadAndExpectSuccess(manifest);
59 return extension->GetActivePermissions();
60 }
61 };
62
63 TEST_F(SettingsOverridePermissionTest, HomePage) {
64 scoped_refptr<const PermissionSet> permission_set(
65 GetPermissionSet(kHomePage));
66 DCHECK(permission_set);
67
68 EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kHomePage));
Yoyo Zhou 2013/11/05 21:11:06 Consider testing the contents of GetWarningMessage
MAD 2013/11/06 13:56:33 Done.
69 EXPECT_FALSE(permission_set->HasAPIPermission(APIPermission::kStartupPages));
70 EXPECT_FALSE(permission_set->HasAPIPermission(
71 APIPermission::kSearchProvider));
72 }
73
74 TEST_F(SettingsOverridePermissionTest, SartupPages) {
75 scoped_refptr<const PermissionSet> permission_set(
76 GetPermissionSet(kStartupPages));
77 DCHECK(permission_set);
78
79 EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kStartupPages));
80 EXPECT_FALSE(permission_set->HasAPIPermission(APIPermission::kHomePage));
81 EXPECT_FALSE(permission_set->HasAPIPermission(
82 APIPermission::kSearchProvider));
83 }
84
85 TEST_F(SettingsOverridePermissionTest, SearchSettings) {
86 scoped_refptr<const PermissionSet> permission_set(
87 GetPermissionSet(kSearchProvider));
88 DCHECK(permission_set);
89
90 EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kSearchProvider));
91 EXPECT_FALSE(permission_set->HasAPIPermission(APIPermission::kHomePage));
92 EXPECT_FALSE(permission_set->HasAPIPermission(APIPermission::kStartupPages));
93 }
94
95 TEST_F(SettingsOverridePermissionTest, All) {
96 scoped_refptr<const PermissionSet> permission_set(
97 GetPermissionSet(kSearchProvider | kStartupPages | kHomePage));
98 DCHECK(permission_set);
99
100 EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kSearchProvider));
101 EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kHomePage));
102 EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kStartupPages));
103 }
104
105 TEST_F(SettingsOverridePermissionTest, Some) {
106 scoped_refptr<const PermissionSet> permission_set(
107 GetPermissionSet(kSearchProvider | kHomePage));
108 DCHECK(permission_set);
109
110 EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kSearchProvider));
111 EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kHomePage));
112 EXPECT_FALSE(permission_set->HasAPIPermission(APIPermission::kStartupPages));
113 }
114
115 } // namespace
116
117 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698