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

Side by Side Diff: chrome/common/extensions/manifest_tests/extension_manifests_options_unittest.cc

Issue 667453003: First stage of launch for embedded options pages. With this patch, extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git/+/master
Patch Set: Created 6 years, 2 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/strings/stringprintf.h" 5 #include "base/strings/stringprintf.h"
6 #include "chrome/common/extensions/manifest_tests/chrome_manifest_test.h" 6 #include "chrome/common/extensions/manifest_tests/chrome_manifest_test.h"
7 #include "extensions/common/error_utils.h" 7 #include "extensions/common/error_utils.h"
8 #include "extensions/common/feature_switch.h" 8 #include "extensions/common/feature_switch.h"
9 #include "extensions/common/manifest_constants.h" 9 #include "extensions/common/manifest_constants.h"
10 #include "extensions/common/manifest_handlers/options_page_info.h" 10 #include "extensions/common/manifest_handlers/options_page_info.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 extension = LoadAndExpectSuccess("options_ui_page_with_legacy_page.json"); 58 extension = LoadAndExpectSuccess("options_ui_page_with_legacy_page.json");
59 EXPECT_EQ(base::StringPrintf("chrome-extension://%s/newoptions.html", 59 EXPECT_EQ(base::StringPrintf("chrome-extension://%s/newoptions.html",
60 extension.get()->id().c_str()), 60 extension.get()->id().c_str()),
61 OptionsPageInfo::GetOptionsPage(extension.get()).spec()); 61 OptionsPageInfo::GetOptionsPage(extension.get()).spec());
62 62
63 Testcase testcases[] = {Testcase("options_ui_page_bad_url.json", 63 Testcase testcases[] = {Testcase("options_ui_page_bad_url.json",
64 "'page': expected page, got null")}; 64 "'page': expected page, got null")};
65 RunTestcases(testcases, arraysize(testcases), EXPECT_TYPE_WARNING); 65 RunTestcases(testcases, arraysize(testcases), EXPECT_TYPE_WARNING);
66 } 66 }
67 67
68 // Tests for the options_ui.chrome_style and options_ui.open_in_tab fields. 68 // Tests for the options_ui.chrome_style and options_ui.open_in_tab fields with
69 // the flag enabled. This makes open_in_tab default to true if unspecified.
69 TEST_F(OptionsPageManifestTest, OptionsUIChromeStyleAndOpenInTab) { 70 TEST_F(OptionsPageManifestTest, OptionsUIChromeStyleAndOpenInTab) {
70 FeatureSwitch::ScopedOverride enable_flag( 71 FeatureSwitch::ScopedOverride enable_flag(
71 FeatureSwitch::embedded_extension_options(), true); 72 FeatureSwitch::embedded_extension_options(), true);
72 73
74 // Explicitly specifying true in the manifest for options_ui.chrome_style and
75 // options_ui.open_in_tab sets them both to true.
76 scoped_refptr<Extension> extension =
77 LoadAndExpectSuccess("options_ui_flags_true.json");
78 EXPECT_TRUE(OptionsPageInfo::ShouldUseChromeStyle(extension.get()));
79 EXPECT_TRUE(OptionsPageInfo::ShouldOpenInTab(extension.get()));
80
81 // Explicitly specifying false in the manifest for options_ui.chrome_style
82 // and options_ui.open_in_tab sets them both to false.
83 extension = LoadAndExpectSuccess("options_ui_flags_false.json");
84 EXPECT_FALSE(OptionsPageInfo::ShouldUseChromeStyle(extension.get()));
85 EXPECT_FALSE(OptionsPageInfo::ShouldOpenInTab(extension.get()));
86
87 // Specifying an options_ui key but neither options_ui.chrome_style nor
88 // options_ui.open_in_tab uses the default values: false for open-in-tab,
89 // false for use-chrome-style.
90 extension = LoadAndExpectSuccess("options_ui_page_basic.json");
91 EXPECT_FALSE(OptionsPageInfo::ShouldUseChromeStyle(extension.get()));
92 EXPECT_FALSE(OptionsPageInfo::ShouldOpenInTab(extension.get()));
93
94 // Likewise specifying no options_ui key at all.
95 extension = LoadAndExpectSuccess("init_valid_options.json");
96 EXPECT_FALSE(OptionsPageInfo::ShouldUseChromeStyle(extension.get()));
97 EXPECT_FALSE(OptionsPageInfo::ShouldOpenInTab(extension.get()));
98 }
99
100 // Tests for the options_ui.chrome_style and options_ui.open_in_tab fields when
101 // the flag for embedded extension options is turned off. This makes
102 // open_in_tab default to false.
103 TEST_F(OptionsPageManifestTest, OptionsUIChromeStyleAndOpenInTabNoFlag) {
104 ASSERT_FALSE(FeatureSwitch::embedded_extension_options()->IsEnabled());
105
106 // These conditions are the same as OptionsUIChromeStyleAndOpenInTab, except
107 // when the flag is off the default for open-in-tab is true.
108
73 scoped_refptr<Extension> extension = 109 scoped_refptr<Extension> extension =
74 LoadAndExpectSuccess("options_ui_flags_true.json"); 110 LoadAndExpectSuccess("options_ui_flags_true.json");
75 EXPECT_TRUE(OptionsPageInfo::ShouldUseChromeStyle(extension.get())); 111 EXPECT_TRUE(OptionsPageInfo::ShouldUseChromeStyle(extension.get()));
76 EXPECT_TRUE(OptionsPageInfo::ShouldOpenInTab(extension.get())); 112 EXPECT_TRUE(OptionsPageInfo::ShouldOpenInTab(extension.get()));
77 113
78 extension = LoadAndExpectSuccess("options_ui_flags_false.json"); 114 extension = LoadAndExpectSuccess("options_ui_flags_false.json");
79 EXPECT_FALSE(OptionsPageInfo::ShouldUseChromeStyle(extension.get())); 115 EXPECT_FALSE(OptionsPageInfo::ShouldUseChromeStyle(extension.get()));
80 EXPECT_FALSE(OptionsPageInfo::ShouldOpenInTab(extension.get())); 116 EXPECT_FALSE(OptionsPageInfo::ShouldOpenInTab(extension.get()));
81 117
82 // If chrome_style and open_in_tab are not set, they should be false.
83 extension = LoadAndExpectSuccess("options_ui_page_basic.json"); 118 extension = LoadAndExpectSuccess("options_ui_page_basic.json");
84 EXPECT_FALSE(OptionsPageInfo::ShouldUseChromeStyle(extension.get())); 119 EXPECT_FALSE(OptionsPageInfo::ShouldUseChromeStyle(extension.get()));
85 EXPECT_FALSE(OptionsPageInfo::ShouldOpenInTab(extension.get()));
86 }
87
88 // Tests for the options_ui.chrome_style and options_ui.open_in_tab fields when
89 // the flag for embedded extension options is turned off. chrome_style should
90 // always be false, open_in_tab should always be true.
91 TEST_F(OptionsPageManifestTest, OptionsUIChromeStyleAndOpenInTabNoFlag) {
92 ASSERT_FALSE(FeatureSwitch::embedded_extension_options()->IsEnabled());
93
94 scoped_refptr<Extension> extension =
95 LoadAndExpectSuccess("options_ui_flags_true.json");
96 EXPECT_FALSE(OptionsPageInfo::ShouldUseChromeStyle(extension.get()));
97 EXPECT_TRUE(OptionsPageInfo::ShouldOpenInTab(extension.get())); 120 EXPECT_TRUE(OptionsPageInfo::ShouldOpenInTab(extension.get()));
98 121
99 extension = LoadAndExpectSuccess("options_ui_flags_false.json"); 122 extension = LoadAndExpectSuccess("init_valid_options.json");
100 EXPECT_FALSE(OptionsPageInfo::ShouldUseChromeStyle(extension.get()));
101 EXPECT_TRUE(OptionsPageInfo::ShouldOpenInTab(extension.get()));
102
103 extension = LoadAndExpectSuccess("options_ui_page_basic.json");
104 EXPECT_FALSE(OptionsPageInfo::ShouldUseChromeStyle(extension.get())); 123 EXPECT_FALSE(OptionsPageInfo::ShouldUseChromeStyle(extension.get()));
105 EXPECT_TRUE(OptionsPageInfo::ShouldOpenInTab(extension.get())); 124 EXPECT_TRUE(OptionsPageInfo::ShouldOpenInTab(extension.get()));
106 } 125 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698