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

Side by Side Diff: chrome/browser/guest_view/extension_options/extension_options_apitest.cc

Issue 556563003: Move ExtensionOptionsGuest code from chrome to extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix gn Created 6 years, 3 months 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/files/file_path.h"
6 #include "base/strings/stringprintf.h"
7 #include "chrome/browser/extensions/extension_apitest.h"
8 #include "chrome/test/base/ui_test_utils.h"
9 #include "extensions/common/feature_switch.h"
10 #include "extensions/common/switches.h"
11 #include "extensions/test/result_catcher.h"
12
13 using extensions::Extension;
14 using extensions::FeatureSwitch;
15
16 class ExtensionOptionsApiTest : public ExtensionApiTest {
17 private:
18 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
19 ExtensionApiTest::SetUpCommandLine(command_line);
20
21 enable_options_.reset(new FeatureSwitch::ScopedOverride(
22 FeatureSwitch::embedded_extension_options(), true));
23 // Need to add a command line flag as well as a FeatureSwitch because the
24 // FeatureSwitch is not copied over to the renderer process from the
25 // browser process.
26 command_line->AppendSwitch(
27 extensions::switches::kEnableEmbeddedExtensionOptions);
28 }
29
30 scoped_ptr<FeatureSwitch::ScopedOverride> enable_options_;
31 };
32
33 IN_PROC_BROWSER_TEST_F(ExtensionOptionsApiTest, ExtensionCanEmbedOwnOptions) {
34 base::FilePath extension_dir =
35 test_data_dir_.AppendASCII("extension_options").AppendASCII("embed_self");
36 ASSERT_TRUE(LoadExtension(extension_dir));
37 ASSERT_TRUE(RunExtensionSubtest("extension_options/embed_self", "test.html"));
38 }
39
40 IN_PROC_BROWSER_TEST_F(ExtensionOptionsApiTest,
41 ShouldNotEmbedOtherExtensionsOptions) {
42 base::FilePath dir = test_data_dir_.AppendASCII("extension_options")
43 .AppendASCII("embed_other");
44
45 const Extension* embedder = InstallExtension(dir.AppendASCII("embedder"), 1);
46 const Extension* embedded = InstallExtension(dir.AppendASCII("embedded"), 1);
47
48 ASSERT_TRUE(embedder);
49 ASSERT_TRUE(embedded);
50
51 // Since the extension id of the embedded extension is not always the same,
52 // store the embedded extension id in the embedder's storage before running
53 // the tests.
54 std::string script = base::StringPrintf(
55 "chrome.storage.local.set({'embeddedId': '%s'}, function() {"
56 "window.domAutomationController.send('done injecting');});",
57 embedded->id().c_str());
58
59 ExecuteScriptInBackgroundPage(embedder->id(), script);
60 extensions::ResultCatcher catcher;
61 ui_test_utils::NavigateToURL(browser(),
62 embedder->GetResourceURL("test.html"));
63 ASSERT_TRUE(catcher.GetNextResult());
64 }
65
66 IN_PROC_BROWSER_TEST_F(ExtensionOptionsApiTest,
67 CannotEmbedUsingInvalidExtensionIds) {
68 ASSERT_TRUE(InstallExtension(test_data_dir_.AppendASCII("extension_options")
69 .AppendASCII("embed_invalid"),
70 1));
71 ASSERT_TRUE(
72 RunExtensionSubtest("extension_options/embed_invalid", "test.html"));
73 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698