OLD | NEW |
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 "extensions/browser/api/storage/settings_test_util.h" | 5 #include "extensions/browser/api/storage/settings_test_util.h" |
6 | 6 |
7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
8 #include "extensions/browser/api/storage/storage_frontend.h" | 8 #include "extensions/browser/api/storage/storage_frontend.h" |
9 #include "extensions/browser/extension_registry.h" | 9 #include "extensions/browser/extension_registry.h" |
10 #include "extensions/browser/extension_system_provider.h" | 10 #include "extensions/browser/extension_system_provider.h" |
11 #include "extensions/browser/extensions_browser_client.h" | 11 #include "extensions/browser/extensions_browser_client.h" |
12 #include "extensions/common/extension.h" | 12 #include "extensions/common/extension.h" |
13 #include "extensions/common/permissions/permissions_data.h" | 13 #include "extensions/common/permissions/permissions_data.h" |
14 | 14 |
15 namespace extensions { | 15 namespace extensions { |
16 | 16 |
17 namespace settings_test_util { | 17 namespace settings_test_util { |
18 | 18 |
| 19 // Creates a kilobyte of data. |
| 20 scoped_ptr<base::Value> CreateKilobyte() { |
| 21 std::string kilobyte_string; |
| 22 for (int i = 0; i < 1024; ++i) { |
| 23 kilobyte_string += "a"; |
| 24 } |
| 25 return scoped_ptr<base::Value>(new base::StringValue(kilobyte_string)); |
| 26 } |
| 27 |
| 28 // Creates a megabyte of data. |
| 29 scoped_ptr<base::Value> CreateMegabyte() { |
| 30 base::ListValue* megabyte = new base::ListValue(); |
| 31 for (int i = 0; i < 1000; ++i) { |
| 32 megabyte->Append(CreateKilobyte().release()); |
| 33 } |
| 34 return scoped_ptr<base::Value>(megabyte); |
| 35 } |
| 36 |
19 // Intended as a StorageCallback from GetStorage. | 37 // Intended as a StorageCallback from GetStorage. |
20 static void AssignStorage(ValueStore** dst, ValueStore* src) { | 38 static void AssignStorage(ValueStore** dst, ValueStore* src) { |
21 *dst = src; | 39 *dst = src; |
22 } | 40 } |
23 | 41 |
24 ValueStore* GetStorage(scoped_refptr<const Extension> extension, | 42 ValueStore* GetStorage(scoped_refptr<const Extension> extension, |
25 settings_namespace::Namespace settings_namespace, | 43 settings_namespace::Namespace settings_namespace, |
26 StorageFrontend* frontend) { | 44 StorageFrontend* frontend) { |
27 ValueStore* storage = NULL; | 45 ValueStore* storage = NULL; |
28 frontend->RunWithStorage( | 46 frontend->RunWithStorage( |
29 extension, settings_namespace, base::Bind(&AssignStorage, &storage)); | 47 extension, settings_namespace, base::Bind(&AssignStorage, &storage)); |
30 base::MessageLoop::current()->RunUntilIdle(); | 48 base::MessageLoop::current()->RunUntilIdle(); |
31 return storage; | 49 return storage; |
32 } | 50 } |
33 | 51 |
34 ValueStore* GetStorage(scoped_refptr<const Extension> extension, | 52 ValueStore* GetStorage(scoped_refptr<const Extension> extension, |
35 StorageFrontend* frontend) { | 53 StorageFrontend* frontend) { |
36 return GetStorage(extension, settings_namespace::SYNC, frontend); | 54 return GetStorage(extension, settings_namespace::SYNC, frontend); |
37 } | 55 } |
38 | 56 |
39 scoped_refptr<const Extension> AddExtensionWithId(Profile* profile, | 57 scoped_refptr<const Extension> AddExtensionWithId( |
40 const std::string& id, | 58 content::BrowserContext* context, |
41 Manifest::Type type) { | 59 const std::string& id, |
| 60 Manifest::Type type) { |
42 return AddExtensionWithIdAndPermissions( | 61 return AddExtensionWithIdAndPermissions( |
43 profile, id, type, std::set<std::string>()); | 62 context, id, type, std::set<std::string>()); |
44 } | 63 } |
45 | 64 |
46 scoped_refptr<const Extension> AddExtensionWithIdAndPermissions( | 65 scoped_refptr<const Extension> AddExtensionWithIdAndPermissions( |
47 Profile* profile, | 66 content::BrowserContext* context, |
48 const std::string& id, | 67 const std::string& id, |
49 Manifest::Type type, | 68 Manifest::Type type, |
50 const std::set<std::string>& permissions_set) { | 69 const std::set<std::string>& permissions_set) { |
51 base::DictionaryValue manifest; | 70 base::DictionaryValue manifest; |
52 manifest.SetString("name", std::string("Test extension ") + id); | 71 manifest.SetString("name", std::string("Test extension ") + id); |
53 manifest.SetString("version", "1.0"); | 72 manifest.SetString("version", "1.0"); |
54 | 73 |
55 scoped_ptr<base::ListValue> permissions(new base::ListValue()); | 74 scoped_ptr<base::ListValue> permissions(new base::ListValue()); |
56 for (std::set<std::string>::const_iterator it = permissions_set.begin(); | 75 for (std::set<std::string>::const_iterator it = permissions_set.begin(); |
57 it != permissions_set.end(); ++it) { | 76 it != permissions_set.end(); ++it) { |
(...skipping 24 matching lines...) Expand all Loading... |
82 Manifest::INTERNAL, | 101 Manifest::INTERNAL, |
83 manifest, | 102 manifest, |
84 Extension::NO_FLAGS, | 103 Extension::NO_FLAGS, |
85 id, | 104 id, |
86 &error)); | 105 &error)); |
87 DCHECK(extension.get()); | 106 DCHECK(extension.get()); |
88 DCHECK(error.empty()); | 107 DCHECK(error.empty()); |
89 | 108 |
90 // Ensure lookups via ExtensionRegistry (and ExtensionService) work even if | 109 // Ensure lookups via ExtensionRegistry (and ExtensionService) work even if |
91 // the test discards the referenced to the returned extension. | 110 // the test discards the referenced to the returned extension. |
92 ExtensionRegistry::Get(profile)->AddEnabled(extension); | 111 ExtensionRegistry::Get(context)->AddEnabled(extension); |
93 | 112 |
94 for (std::set<std::string>::const_iterator it = permissions_set.begin(); | 113 for (std::set<std::string>::const_iterator it = permissions_set.begin(); |
95 it != permissions_set.end(); ++it) { | 114 it != permissions_set.end(); ++it) { |
96 DCHECK(extension->permissions_data()->HasAPIPermission(*it)); | 115 DCHECK(extension->permissions_data()->HasAPIPermission(*it)); |
97 } | 116 } |
98 | 117 |
99 return extension; | 118 return extension; |
100 } | 119 } |
101 | 120 |
102 // MockExtensionSystem | 121 // MockExtensionSystemWithEventRouter |
103 | 122 |
104 MockExtensionSystem::MockExtensionSystem(Profile* profile) | 123 MockExtensionSystemWithEventRouter::MockExtensionSystemWithEventRouter( |
105 : TestExtensionSystem(profile) {} | 124 content::BrowserContext* context) |
106 MockExtensionSystem::~MockExtensionSystem() {} | 125 : MockExtensionSystem(context) { |
| 126 } |
107 | 127 |
108 EventRouter* MockExtensionSystem::event_router() { | 128 MockExtensionSystemWithEventRouter::~MockExtensionSystemWithEventRouter() { |
| 129 } |
| 130 |
| 131 KeyedService* MockExtensionSystemWithEventRouter::Build( |
| 132 content::BrowserContext* context) { |
| 133 return new MockExtensionSystemWithEventRouter(context); |
| 134 } |
| 135 |
| 136 EventRouter* MockExtensionSystemWithEventRouter::event_router() { |
109 if (!event_router_.get()) | 137 if (!event_router_.get()) |
110 event_router_.reset(new EventRouter(profile_, NULL)); | 138 event_router_.reset(new EventRouter(browser_context(), NULL)); |
111 return event_router_.get(); | 139 return event_router_.get(); |
112 } | 140 } |
113 | 141 |
114 KeyedService* BuildMockExtensionSystem(content::BrowserContext* profile) { | |
115 return new MockExtensionSystem(static_cast<Profile*>(profile)); | |
116 } | |
117 | |
118 // MockProfile | |
119 | |
120 MockProfile::MockProfile(const base::FilePath& file_path) | |
121 : TestingProfile(file_path) { | |
122 ExtensionsBrowserClient::Get() | |
123 ->GetExtensionSystemFactory() | |
124 ->SetTestingFactoryAndUse(this, &BuildMockExtensionSystem); | |
125 } | |
126 | |
127 MockProfile::~MockProfile() {} | |
128 | |
129 // ScopedSettingsFactory | 142 // ScopedSettingsFactory |
130 | 143 |
131 ScopedSettingsStorageFactory::ScopedSettingsStorageFactory() {} | 144 ScopedSettingsStorageFactory::ScopedSettingsStorageFactory() {} |
132 | 145 |
133 ScopedSettingsStorageFactory::ScopedSettingsStorageFactory( | 146 ScopedSettingsStorageFactory::ScopedSettingsStorageFactory( |
134 const scoped_refptr<SettingsStorageFactory>& delegate) | 147 const scoped_refptr<SettingsStorageFactory>& delegate) |
135 : delegate_(delegate) {} | 148 : delegate_(delegate) {} |
136 | 149 |
137 ScopedSettingsStorageFactory::~ScopedSettingsStorageFactory() {} | 150 ScopedSettingsStorageFactory::~ScopedSettingsStorageFactory() {} |
138 | 151 |
(...skipping 11 matching lines...) Expand all Loading... |
150 | 163 |
151 void ScopedSettingsStorageFactory::DeleteDatabaseIfExists( | 164 void ScopedSettingsStorageFactory::DeleteDatabaseIfExists( |
152 const base::FilePath& base_path, | 165 const base::FilePath& base_path, |
153 const std::string& extension_id) { | 166 const std::string& extension_id) { |
154 delegate_->DeleteDatabaseIfExists(base_path, extension_id); | 167 delegate_->DeleteDatabaseIfExists(base_path, extension_id); |
155 } | 168 } |
156 | 169 |
157 } // namespace settings_test_util | 170 } // namespace settings_test_util |
158 | 171 |
159 } // namespace extensions | 172 } // namespace extensions |
OLD | NEW |