Commit f3f6d956 authored by Devlin Cronin's avatar Devlin Cronin Committed by Commit Bot

[Extensions Cleanup] Remove api_test_utils::CreateExtension() variants

api_test_utils::CreateExtension() variants are no longer really useful
with the new-and-improved ExtensionBuilder class. Remove them to reduce
code and have one fewer ways of constructing test extension objects.

While we're at it, const-ify the creation sites.

TBR=atwilson@chromium.org
(just updating background_mode_manager_unittest to use a builder)

Bug: 889925
Change-Id: I99087834e6b4c30a43c0badb0245295e0e1de525
Reviewed-on: https://chromium-review.googlesource.com/1252766
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: default avatarIstiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595488}
parent e2f934fe
......@@ -35,9 +35,9 @@
#include "components/keep_alive_registry/keep_alive_types.h"
#include "components/keep_alive_registry/scoped_keep_alive.h"
#include "content/public/test/test_browser_thread_bundle.h"
#include "extensions/browser/api_test_utils.h"
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/extension_builder.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gfx/image/image.h"
......@@ -280,16 +280,6 @@ class BackgroundModeManagerWithExtensionsTest : public testing::Test {
}
protected:
scoped_refptr<extensions::Extension> CreateExtension(
extensions::Manifest::Location location,
const std::string& data,
const std::string& id) {
std::unique_ptr<base::DictionaryValue> parsed_manifest(
extensions::api_test_utils::ParseDictionary(data));
return extensions::api_test_utils::CreateExtension(
location, parsed_manifest.get(), id);
}
// From views::MenuModelAdapter::IsCommandEnabled with modification.
bool IsCommandEnabled(ui::MenuModel* model, int id) const {
int index = 0;
......@@ -652,43 +642,31 @@ TEST_F(BackgroundModeManagerTest,
}
TEST_F(BackgroundModeManagerWithExtensionsTest, BackgroundMenuGeneration) {
scoped_refptr<extensions::Extension> component_extension(
CreateExtension(
extensions::Manifest::COMPONENT,
"{\"name\": \"Component Extension\","
"\"version\": \"1.0\","
"\"manifest_version\": 2,"
"\"permissions\": [\"background\"]}",
"ID-1"));
scoped_refptr<extensions::Extension> component_extension_with_options(
CreateExtension(
extensions::Manifest::COMPONENT,
"{\"name\": \"Component Extension with Options\","
"\"version\": \"1.0\","
"\"manifest_version\": 2,"
"\"permissions\": [\"background\"],"
"\"options_page\": \"test.html\"}",
"ID-2"));
scoped_refptr<extensions::Extension> regular_extension(
CreateExtension(
extensions::Manifest::COMMAND_LINE,
"{\"name\": \"Regular Extension\", "
"\"version\": \"1.0\","
"\"manifest_version\": 2,"
"\"permissions\": [\"background\"]}",
"ID-3"));
scoped_refptr<extensions::Extension> regular_extension_with_options(
CreateExtension(
extensions::Manifest::COMMAND_LINE,
"{\"name\": \"Regular Extension with Options\","
"\"version\": \"1.0\","
"\"manifest_version\": 2,"
"\"permissions\": [\"background\"],"
"\"options_page\": \"test.html\"}",
"ID-4"));
scoped_refptr<const extensions::Extension> component_extension =
extensions::ExtensionBuilder("Component Extension")
.SetLocation(extensions::Manifest::COMPONENT)
.AddPermission("background")
.Build();
scoped_refptr<const extensions::Extension> component_extension_with_options =
extensions::ExtensionBuilder("Component Extension with Options")
.SetLocation(extensions::Manifest::COMPONENT)
.AddPermission("background")
.SetManifestKey("options_page", "test.html")
.Build();
scoped_refptr<const extensions::Extension> regular_extension =
extensions::ExtensionBuilder("Regular Extension")
.SetLocation(extensions::Manifest::COMMAND_LINE)
.AddPermission("background")
.Build();
scoped_refptr<const extensions::Extension> regular_extension_with_options =
extensions::ExtensionBuilder("Regular Extension with Options")
.SetLocation(extensions::Manifest::COMMAND_LINE)
.AddPermission("background")
.SetManifestKey("options_page", "test.html")
.Build();
static_cast<extensions::TestExtensionSystem*>(
extensions::ExtensionSystem::Get(profile_))
......@@ -728,43 +706,31 @@ TEST_F(BackgroundModeManagerWithExtensionsTest, BackgroundMenuGeneration) {
TEST_F(BackgroundModeManagerWithExtensionsTest,
BackgroundMenuGenerationMultipleProfile) {
scoped_refptr<extensions::Extension> component_extension(
CreateExtension(
extensions::Manifest::COMPONENT,
"{\"name\": \"Component Extension\","
"\"version\": \"1.0\","
"\"manifest_version\": 2,"
"\"permissions\": [\"background\"]}",
"ID-1"));
scoped_refptr<extensions::Extension> component_extension_with_options(
CreateExtension(
extensions::Manifest::COMPONENT,
"{\"name\": \"Component Extension with Options\","
"\"version\": \"1.0\","
"\"manifest_version\": 2,"
"\"permissions\": [\"background\"],"
"\"options_page\": \"test.html\"}",
"ID-2"));
scoped_refptr<extensions::Extension> regular_extension(
CreateExtension(
extensions::Manifest::COMMAND_LINE,
"{\"name\": \"Regular Extension\", "
"\"version\": \"1.0\","
"\"manifest_version\": 2,"
"\"permissions\": [\"background\"]}",
"ID-3"));
scoped_refptr<extensions::Extension> regular_extension_with_options(
CreateExtension(
extensions::Manifest::COMMAND_LINE,
"{\"name\": \"Regular Extension with Options\","
"\"version\": \"1.0\","
"\"manifest_version\": 2,"
"\"permissions\": [\"background\"],"
"\"options_page\": \"test.html\"}",
"ID-4"));
scoped_refptr<const extensions::Extension> component_extension =
extensions::ExtensionBuilder("Component Extension")
.SetLocation(extensions::Manifest::COMPONENT)
.AddPermission("background")
.Build();
scoped_refptr<const extensions::Extension> component_extension_with_options =
extensions::ExtensionBuilder("Component Extension with Options")
.SetLocation(extensions::Manifest::COMPONENT)
.AddPermission("background")
.SetManifestKey("options_page", "test.html")
.Build();
scoped_refptr<const extensions::Extension> regular_extension =
extensions::ExtensionBuilder("Regular Extension")
.SetLocation(extensions::Manifest::COMMAND_LINE)
.AddPermission("background")
.Build();
scoped_refptr<const extensions::Extension> regular_extension_with_options =
extensions::ExtensionBuilder("Regular Extension with Options")
.SetLocation(extensions::Manifest::COMMAND_LINE)
.AddPermission("background")
.SetManifestKey("options_page", "test.html")
.Build();
static_cast<extensions::TestExtensionSystem*>(
extensions::ExtensionSystem::Get(profile_))
......@@ -883,41 +849,32 @@ TEST_F(BackgroundModeManagerWithExtensionsTest,
}
TEST_F(BackgroundModeManagerWithExtensionsTest, BalloonDisplay) {
scoped_refptr<extensions::Extension> bg_ext(
CreateExtension(
extensions::Manifest::COMMAND_LINE,
"{\"name\": \"Background Extension\", "
"\"version\": \"1.0\","
"\"manifest_version\": 2,"
"\"permissions\": [\"background\"]}",
"ID-1"));
scoped_refptr<extensions::Extension> upgraded_bg_ext(
CreateExtension(
extensions::Manifest::COMMAND_LINE,
"{\"name\": \"Background Extension\", "
"\"version\": \"2.0\","
"\"manifest_version\": 2,"
"\"permissions\": [\"background\"]}",
"ID-1"));
scoped_refptr<extensions::Extension> no_bg_ext(
CreateExtension(
extensions::Manifest::COMMAND_LINE,
"{\"name\": \"Regular Extension\", "
"\"version\": \"1.0\","
"\"manifest_version\": 2,"
"\"permissions\": []}",
"ID-2"));
scoped_refptr<extensions::Extension> upgraded_no_bg_ext_has_bg(
CreateExtension(
extensions::Manifest::COMMAND_LINE,
"{\"name\": \"Regular Extension\", "
"\"version\": \"2.0\","
"\"manifest_version\": 2,"
"\"permissions\": [\"background\"]}",
"ID-2"));
scoped_refptr<const extensions::Extension> bg_ext =
extensions::ExtensionBuilder("Background Extension")
.SetVersion("1.0")
.SetLocation(extensions::Manifest::COMMAND_LINE)
.AddPermission("background")
.Build();
scoped_refptr<const extensions::Extension> upgraded_bg_ext =
extensions::ExtensionBuilder("Background Extension")
.SetVersion("2.0")
.SetLocation(extensions::Manifest::COMMAND_LINE)
.AddPermission("background")
.Build();
scoped_refptr<const extensions::Extension> no_bg_ext =
extensions::ExtensionBuilder("Regular Extension")
.SetVersion("1.0")
.SetLocation(extensions::Manifest::COMMAND_LINE)
.Build();
scoped_refptr<const extensions::Extension> upgraded_no_bg_ext_has_bg =
extensions::ExtensionBuilder("Regular Extension")
.SetVersion("1.0")
.SetLocation(extensions::Manifest::COMMAND_LINE)
.AddPermission("background")
.Build();
static_cast<extensions::TestExtensionSystem*>(
extensions::ExtensionSystem::Get(profile_))
......
......@@ -7,9 +7,9 @@
#include "base/values.h"
#include "chrome/browser/extensions/extension_function_test_utils.h"
#include "chrome/browser/ui/browser.h"
#include "extensions/browser/api_test_utils.h"
#include "extensions/browser/extension_function.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_builder.h"
#include "extensions/common/manifest.h"
#include "extensions/common/manifest_handlers/background_info.h"
......@@ -25,8 +25,7 @@ ExtensionApiUnittest::~ExtensionApiUnittest() {
void ExtensionApiUnittest::SetUp() {
BrowserWithTestWindowTest::SetUp();
extension_ = api_test_utils::CreateEmptyExtensionWithLocation(
Manifest::UNPACKED);
extension_ = ExtensionBuilder("Test").Build();
}
std::unique_ptr<base::Value> ExtensionApiUnittest::RunFunctionAndReturnValue(
......
......@@ -36,7 +36,6 @@
#include "components/proxy_config/proxy_config_pref_names.h"
#include "components/version_info/version_info.h"
#include "content/public/test/test_browser_thread_bundle.h"
#include "extensions/browser/api_test_utils.h"
#include "extensions/browser/extension_pref_value_map.h"
#include "extensions/browser/extension_pref_value_map_factory.h"
#include "extensions/browser/extension_prefs.h"
......@@ -396,15 +395,6 @@ class ExtensionMessageBubbleTest : public BrowserWithTestWindowTest {
}
protected:
scoped_refptr<Extension> CreateExtension(
Manifest::Location location,
const std::string& data,
const std::string& id) {
std::unique_ptr<base::DictionaryValue> parsed_manifest(
api_test_utils::ParseDictionary(data));
return api_test_utils::CreateExtension(location, parsed_manifest.get(), id);
}
ExtensionService* service_;
private:
......
......@@ -15,8 +15,8 @@
#include "extensions/browser/api/alarms/alarm_manager.h"
#include "extensions/browser/api/alarms/alarms_api.h"
#include "extensions/browser/api/alarms/alarms_api_constants.h"
#include "extensions/browser/api_test_utils.h"
#include "extensions/browser/api_unittest.h"
#include "extensions/common/extension_builder.h"
#include "extensions/common/extension_messages.h"
#include "ipc/ipc_test_sink.h"
#include "testing/gmock/include/gmock/gmock.h"
......@@ -26,8 +26,6 @@ typedef extensions::api::alarms::Alarm JsAlarm;
namespace extensions {
namespace utils = api_test_utils;
namespace {
// Test delegate which quits the message loop when an alarm fires.
......@@ -582,7 +580,7 @@ TEST_F(ExtensionAlarmsSchedulingTest, PollScheduling) {
TEST_F(ExtensionAlarmsSchedulingTest, ReleasedExtensionPollsInfrequently) {
set_extension(
utils::CreateEmptyExtensionWithLocation(extensions::Manifest::INTERNAL));
ExtensionBuilder("Test").SetLocation(Manifest::INTERNAL).Build());
test_clock_.SetNow(base::Time::FromJsTime(300000));
CreateAlarm("[\"a\", {\"when\": 300010}]");
CreateAlarm("[\"b\", {\"when\": 340000}]");
......@@ -616,7 +614,7 @@ TEST_F(ExtensionAlarmsSchedulingTest, TimerRunning) {
TEST_F(ExtensionAlarmsSchedulingTest, MinimumGranularity) {
set_extension(
utils::CreateEmptyExtensionWithLocation(extensions::Manifest::INTERNAL));
ExtensionBuilder("Test").SetLocation(Manifest::INTERNAL).Build());
test_clock_.SetNow(base::Time::FromJsTime(0));
CreateAlarm("[\"a\", {\"periodInMinutes\": 2}]");
test_clock_.Advance(base::TimeDelta::FromSeconds(1));
......@@ -644,7 +642,7 @@ TEST_F(ExtensionAlarmsSchedulingTest, DifferentMinimumGranularities) {
// repopulate extension_.
scoped_refptr<const Extension> extension2(extension_ref());
set_extension(
utils::CreateEmptyExtensionWithLocation(extensions::Manifest::INTERNAL));
ExtensionBuilder("Test").SetLocation(Manifest::INTERNAL).Build());
CreateAlarm("[\"b\", {\"periodInMinutes\": 2}]");
......
......@@ -14,6 +14,7 @@
#include "extensions/browser/api_unittest.h"
#include "extensions/browser/test_extensions_browser_client.h"
#include "extensions/browser/test_runtime_api_delegate.h"
#include "extensions/common/extension_builder.h"
#include "extensions/common/manifest.h"
namespace extensions {
......@@ -199,18 +200,10 @@ TEST_F(RestartAfterDelayApiTest, RestartAfterDelayTest) {
// Create another extension and make it attempt to use the api, and expect a
// failure.
std::unique_ptr<base::DictionaryValue> test_extension_value(
api_test_utils::ParseDictionary("{\n"
" \"name\": \"Test\",\n"
" \"version\": \"2.0\",\n"
" \"app\": {\n"
" \"background\": {\n"
" \"scripts\": [\"background.js\"]\n"
" }\n"
" }\n"
"}"));
scoped_refptr<Extension> test_extension(api_test_utils::CreateExtension(
Manifest::INTERNAL, test_extension_value.get(), "id2"));
scoped_refptr<const Extension> test_extension =
ExtensionBuilder("Another App", ExtensionBuilder::Type::PLATFORM_APP)
.SetLocation(Manifest::INTERNAL)
.Build();
RunRestartAfterDelayFunctionForExtention(
"[5]", test_extension.get(), "Not the first extension to call this API.");
......
......@@ -17,6 +17,7 @@
#include "extensions/browser/api/system_display/system_display_api.h"
#include "extensions/browser/api_test_utils.h"
#include "extensions/common/api/system_display.h"
#include "extensions/common/extension_builder.h"
#include "extensions/shell/test/shell_apitest.h"
#include "extensions/test/result_catcher.h"
#include "ui/display/display.h"
......@@ -262,37 +263,12 @@ IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, SetDisplay) {
#else // !defined(OS_CHROMEOS)
constexpr char kTestManifest[] =
"{\n"
" \"name\": \"Test\",\n"
" \"version\": \"1.0\",\n"
" \"app\": {\n"
" \"background\": {\n"
" \"scripts\": [\"background.js\"]\n"
" }\n"
" }\n"
"}";
constexpr char kTestManifestKiosk[] =
"{\n"
" \"name\": \"Test\",\n"
" \"version\": \"1.0\",\n"
" \"app\": {\n"
" \"background\": {\n"
" \"scripts\": [\"background.js\"]\n"
" }\n"
" },\n"
" \"kiosk_enabled\": true\n"
"}";
// TODO(stevenjb): Add API tests for {GS}etDisplayLayout. That code currently
// lives in src/chrome but should be getting moved soon.
IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, SetDisplayNotKioskEnabled) {
std::unique_ptr<base::DictionaryValue> test_extension_value(
api_test_utils::ParseDictionary(kTestManifest));
scoped_refptr<Extension> test_extension(
api_test_utils::CreateExtension(test_extension_value.get()));
scoped_refptr<Extension> test_extension =
ExtensionBuilder("Test", ExtensionBuilder::Type::PLATFORM_APP).Build();
scoped_refptr<SystemDisplaySetDisplayPropertiesFunction> set_info_function(
new SystemDisplaySetDisplayPropertiesFunction());
......@@ -311,10 +287,10 @@ IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, SetDisplayNotKioskEnabled) {
}
IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, SetDisplayKioskEnabled) {
std::unique_ptr<base::DictionaryValue> test_extension_value(
api_test_utils::ParseDictionary(kTestManifestKiosk));
scoped_refptr<Extension> test_extension(
api_test_utils::CreateExtension(test_extension_value.get()));
scoped_refptr<Extension> test_extension =
ExtensionBuilder("Test", ExtensionBuilder::Type::PLATFORM_APP)
.SetManifestKey("kiosk_enabled", true)
.Build();
scoped_refptr<SystemDisplaySetDisplayPropertiesFunction> set_info_function(
new SystemDisplaySetDisplayPropertiesFunction());
......@@ -354,10 +330,10 @@ IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, SetDisplayKioskEnabled) {
}
IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, EnableUnifiedDesktop) {
std::unique_ptr<base::DictionaryValue> test_extension_value(
api_test_utils::ParseDictionary(kTestManifestKiosk));
scoped_refptr<Extension> test_extension(
api_test_utils::CreateExtension(test_extension_value.get()));
scoped_refptr<Extension> test_extension =
ExtensionBuilder("Test", ExtensionBuilder::Type::PLATFORM_APP)
.SetManifestKey("kiosk_enabled", true)
.Build();
{
scoped_refptr<SystemDisplayEnableUnifiedDesktopFunction>
enable_unified_function(
......@@ -387,10 +363,10 @@ IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, EnableUnifiedDesktop) {
IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, OverscanCalibrationStart) {
const std::string id = "display0";
std::unique_ptr<base::DictionaryValue> test_extension_value(
api_test_utils::ParseDictionary(kTestManifestKiosk));
scoped_refptr<Extension> test_extension(
api_test_utils::CreateExtension(test_extension_value.get()));
scoped_refptr<Extension> test_extension =
ExtensionBuilder("Test", ExtensionBuilder::Type::PLATFORM_APP)
.SetManifestKey("kiosk_enabled", true)
.Build();
// Setup MockDisplayInfoProvider.
api::system_display::DisplayProperties params;
......@@ -451,10 +427,10 @@ IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, OverscanCalibrationAppNoComplete) {
IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, ShowNativeTouchCalibrationFail) {
const std::string id = "display0";
std::unique_ptr<base::DictionaryValue> test_extension_value(
api_test_utils::ParseDictionary(kTestManifestKiosk));
scoped_refptr<Extension> test_extension(
api_test_utils::CreateExtension(test_extension_value.get()));
scoped_refptr<Extension> test_extension =
ExtensionBuilder("Test", ExtensionBuilder::Type::PLATFORM_APP)
.SetManifestKey("kiosk_enabled", true)
.Build();
scoped_refptr<SystemDisplayShowNativeTouchCalibrationFunction>
show_native_calibration(
......@@ -473,10 +449,10 @@ IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, ShowNativeTouchCalibrationFail) {
IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, ShowNativeTouchCalibration) {
const std::string id = "display0";
std::unique_ptr<base::DictionaryValue> test_extension_value(
api_test_utils::ParseDictionary(kTestManifestKiosk));
scoped_refptr<Extension> test_extension(
api_test_utils::CreateExtension(test_extension_value.get()));
scoped_refptr<Extension> test_extension =
ExtensionBuilder("Test", ExtensionBuilder::Type::PLATFORM_APP)
.SetManifestKey("kiosk_enabled", true)
.Build();
scoped_refptr<SystemDisplayShowNativeTouchCalibrationFunction>
show_native_calibration(
......@@ -498,10 +474,10 @@ IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, ShowNativeTouchCalibration) {
}
IN_PROC_BROWSER_TEST_F(SystemDisplayApiTest, SetMirrorMode) {
std::unique_ptr<base::DictionaryValue> test_extension_value(
api_test_utils::ParseDictionary(kTestManifestKiosk));
scoped_refptr<Extension> test_extension(
api_test_utils::CreateExtension(test_extension_value.get()));
scoped_refptr<Extension> test_extension =
ExtensionBuilder("Test", ExtensionBuilder::Type::PLATFORM_APP)
.SetManifestKey("kiosk_enabled", true)
.Build();
{
auto set_mirror_mode_function =
base::MakeRefCounted<SystemDisplaySetMirrorModeFunction>();
......
......@@ -15,7 +15,6 @@
#include "content/public/test/test_utils.h"
#include "extensions/browser/extension_function.h"
#include "extensions/browser/extension_function_dispatcher.h"
#include "extensions/common/extension_builder.h"
#include "testing/gtest/include/gtest/gtest.h"
using extensions::ExtensionFunctionDispatcher;
......@@ -89,40 +88,6 @@ std::string GetString(const base::DictionaryValue* val,
return result;
}
scoped_refptr<Extension> CreateExtension(
Manifest::Location location,
base::DictionaryValue* test_extension_value,
const std::string& id_input) {
std::string error;
const base::FilePath test_extension_path;
std::string id;
if (!id_input.empty())
id = crx_file::id_util::GenerateId(id_input);
scoped_refptr<Extension> extension(
Extension::Create(test_extension_path, location, *test_extension_value,
Extension::NO_FLAGS, id, &error));
EXPECT_TRUE(error.empty()) << "Could not parse test extension " << error;
return extension;
}
scoped_refptr<Extension> CreateExtension(
base::DictionaryValue* test_extension_value) {
return CreateExtension(Manifest::INTERNAL, test_extension_value,
std::string());
}
scoped_refptr<Extension> CreateEmptyExtensionWithLocation(
Manifest::Location location) {
std::unique_ptr<base::DictionaryValue> test_extension_value =
ParseDictionary(R"(
{
"name": "Test",
"version": "1.0",
"manifest_version": 2
})");
return CreateExtension(location, test_extension_value.get(), std::string());
}
std::unique_ptr<base::Value> RunFunctionWithDelegateAndReturnSingleResult(
scoped_refptr<UIThreadExtensionFunction> function,
const std::string& args,
......
......@@ -11,7 +11,6 @@
#include "base/memory/ref_counted.h"
#include "base/run_loop.h"
#include "extensions/browser/extension_function.h"
#include "extensions/common/manifest.h"
namespace base {
class DictionaryValue;
......@@ -24,7 +23,6 @@ class BrowserContext;
}
namespace extensions {
class Extension;
class ExtensionFunctionDispatcher;
// TODO(yoz): crbug.com/394840: Remove duplicate functionality in
......@@ -74,21 +72,6 @@ bool GetBoolean(const base::DictionaryValue* val, const std::string& key);
int GetInteger(const base::DictionaryValue* val, const std::string& key);
std::string GetString(const base::DictionaryValue* val, const std::string& key);
// Creates an extension instance with a specified extension value that can be
// attached to an ExtensionFunction before running.
scoped_refptr<extensions::Extension> CreateExtension(
base::DictionaryValue* test_extension_value);
scoped_refptr<extensions::Extension> CreateExtension(
extensions::Manifest::Location location,
base::DictionaryValue* test_extension_value,
const std::string& id_input);
// Creates an extension instance with a specified location that can be attached
// to an ExtensionFunction before running.
scoped_refptr<extensions::Extension> CreateEmptyExtensionWithLocation(
extensions::Manifest::Location location);
// Run |function| with |args| and return the result. Adds an error to the
// current test if |function| returns an error. Takes ownership of
// |function|. The caller takes ownership of the result.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment