Chromium Code Reviews| Index: chrome/browser/extensions/extension_settings_test_util.cc |
| diff --git a/chrome/browser/extensions/extension_settings_test_util.cc b/chrome/browser/extensions/extension_settings_test_util.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..b0ca7cab35b0061e28092c1455293df539cf6a58 |
| --- /dev/null |
| +++ b/chrome/browser/extensions/extension_settings_test_util.cc |
| @@ -0,0 +1,84 @@ |
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/browser/extensions/extension_settings_test_util.h" |
| + |
| +#include "base/file_path.h" |
| +#include "chrome/common/extensions/extension.h" |
| + |
| +namespace extension_settings_test_util { |
| + |
| +// Intended as a StorageCallback from GetStorage. |
| +static void AssignStorage( |
| + ExtensionSettingsStorage** dst, ExtensionSettingsStorage* src) { |
| + *dst = src; |
| +} |
| + |
| +ExtensionSettingsStorage* GetStorage( |
| + const std::string& extension_id, ExtensionSettingsFrontend* frontend) { |
| + ExtensionSettingsStorage* storage = NULL; |
| + frontend->RunWithStorage( |
| + extension_id, |
| + base::Bind(&AssignStorage, &storage)); |
| + MessageLoop::current()->RunAllPending(); |
| + return storage; |
| +} |
| + |
| +MockExtensionService::MockExtensionService() {} |
| + |
| +MockExtensionService::~MockExtensionService() {} |
| + |
| +const Extension* MockExtensionService::GetExtensionById( |
| + const std::string& id, bool include_disabled) const { |
| + std::map<std::string, scoped_refptr<Extension> >::const_iterator |
| + maybe_extension = extensions_.find(id); |
| + return maybe_extension == extensions_.end() ? |
| + NULL : maybe_extension->second.get(); |
| +} |
| + |
| +void MockExtensionService::AddExtension(const std::string& id, bool is_app) { |
| + DictionaryValue manifest; |
|
akalin
2011/10/28 06:04:54
I'm pretty sure there's a test function floating a
not at google - send to devlin
2011/10/31 00:02:23
There's only 1 caller of CreateWithId (surprisingl
|
| + manifest.SetString("name", std::string("Test extension ") + id); |
| + manifest.SetString("version", "1.0"); |
| + if (is_app) { |
| + DictionaryValue* app = new DictionaryValue(); |
| + DictionaryValue* app_launch = new DictionaryValue(); |
| + app_launch->SetString("local_path", "fake.html"); |
| + app->Set("launch", app_launch); |
| + manifest.Set("app", app); |
| + } |
| + |
| + std::string error; |
| + extensions_[id] = Extension::CreateWithId( |
| + FilePath(), |
| + Extension::INTERNAL, |
| + manifest, |
| + Extension::NO_FLAGS, |
| + id, |
| + &error); |
| + DCHECK(error.empty()); |
| +} |
| + |
| +MockProfile::MockProfile(const FilePath& file_path) |
| + : TestingProfile(file_path) { |
| + event_router_.reset(new ExtensionEventRouter(this)); |
| +} |
| + |
| +MockProfile::~MockProfile() {} |
| + |
| +MockExtensionService* MockProfile::GetMockExtensionService() { |
| + return &extension_service_; |
| +} |
| + |
| +ExtensionService* MockProfile::GetExtensionService() { |
| + ExtensionServiceInterface* as_interface = |
| + static_cast<ExtensionServiceInterface*>(&extension_service_); |
| + return static_cast<ExtensionService*>(as_interface); |
| +} |
| + |
| +ExtensionEventRouter* MockProfile::GetExtensionEventRouter() { |
| + return event_router_.get(); |
| +} |
| + |
| +} // namespace extension_settings_test_util |