summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_webui_apitest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/extension_webui_apitest.cc')
-rw-r--r--chrome/browser/extensions/extension_webui_apitest.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_webui_apitest.cc b/chrome/browser/extensions/extension_webui_apitest.cc
index dcd40d3..156c6c0 100644
--- a/chrome/browser/extensions/extension_webui_apitest.cc
+++ b/chrome/browser/extensions/extension_webui_apitest.cc
@@ -18,6 +18,8 @@
#include "extensions/browser/event_router.h"
#include "extensions/common/api/test.h"
#include "extensions/common/extension.h"
+#include "extensions/common/feature_switch.h"
+#include "extensions/common/switches.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace extensions {
@@ -108,6 +110,18 @@ class ExtensionWebUITest : public ExtensionApiTest {
base::Bind(&FindFrame, frame_url, &frame_host));
return frame_host;
}
+
+ virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
+ FeatureSwitch::ScopedOverride enable_options(
+ FeatureSwitch::embedded_extension_options(), true);
+ // Need to add a command line flag as well as a FeatureSwitch because the
+ // FeatureSwitch is not copied over to the renderer process from the
+ // browser process.
+ command_line->AppendSwitch(switches::kEnableEmbeddedExtensionOptions);
+ ExtensionApiTest::SetUpCommandLine(command_line);
+ }
+
+ scoped_ptr<FeatureSwitch::ScopedOverride> enable_options_;
};
IN_PROC_BROWSER_TEST_F(ExtensionWebUITest, SanityCheckAvailableAPIs) {
@@ -167,6 +181,23 @@ IN_PROC_BROWSER_TEST_F(ExtensionWebUITest, RuntimeLastError) {
EXPECT_EQ("true", listener->message());
}
+IN_PROC_BROWSER_TEST_F(ExtensionWebUITest, CanEmbedExtensionOptions) {
+ scoped_ptr<ExtensionTestMessageListener> listener(
+ new ExtensionTestMessageListener("ready", true));
+
+ const Extension* extension = InstallExtension(
+ test_data_dir_.AppendASCII("extension_options").AppendASCII("embed_self"),
+ 1);
+ ASSERT_TRUE(extension);
+
+ ASSERT_TRUE(RunTestOnExtensions("can_embed_extension_options.js"));
+
+ ASSERT_TRUE(listener->WaitUntilSatisfied());
+ listener->Reply(extension->id());
+ listener.reset(new ExtensionTestMessageListener("guest loaded", false));
+ ASSERT_TRUE(listener->WaitUntilSatisfied());
+}
+
} // namespace
} // namespace extensions