| Index: chrome/browser/extensions/api/tabs/tabs_test.cc
|
| diff --git a/chrome/browser/extensions/api/tabs/tabs_test.cc b/chrome/browser/extensions/api/tabs/tabs_test.cc
|
| index 38309a6a13404ec1b909ac5565e8a24fb4b30bcc..1ecdf956ac9b30aceaa62cdf991829c281a07acc 100644
|
| --- a/chrome/browser/extensions/api/tabs/tabs_test.cc
|
| +++ b/chrome/browser/extensions/api/tabs/tabs_test.cc
|
| @@ -37,11 +37,40 @@ namespace extensions {
|
| namespace keys = tabs_constants;
|
| namespace utils = extension_function_test_utils;
|
|
|
| -namespace {
|
| -
|
| class ExtensionTabsTest : public InProcessBrowserTest {
|
| };
|
|
|
| +class ExtensionWindowCreateTest : public InProcessBrowserTest {
|
| + public:
|
| + void SetUpOnMainThread() override;
|
| +
|
| + // Run chrome.windows.create(). If success, return |true|.
|
| + bool RunCreateWindow(const std::string& args);
|
| +
|
| + // Runs chrome.windows.create(), expecting an error.
|
| + std::string RunCreateWindowExpectError(const std::string& args);
|
| +
|
| + private:
|
| + scoped_refptr<Extension> extension_;
|
| +};
|
| +
|
| +void ExtensionWindowCreateTest::SetUpOnMainThread() {
|
| + extension_ = test_util::CreateEmptyExtension();
|
| +}
|
| +
|
| +bool ExtensionWindowCreateTest::RunCreateWindow(const std::string& args) {
|
| + scoped_refptr<WindowsCreateFunction> function(new WindowsCreateFunction());
|
| + function->set_extension(extension_.get());
|
| + return extensions::api_test_utils::RunFunction(function.get(), args,
|
| + browser()->profile());
|
| +}
|
| +
|
| +std::string ExtensionWindowCreateTest::RunCreateWindowExpectError(
|
| + const std::string& args) {
|
| + scoped_refptr<WindowsCreateFunction> function(new WindowsCreateFunction());
|
| + function->set_extension(extension_.get());
|
| + return extensions::api_test_utils::RunFunctionAndReturnError(
|
| + function.get(), args, browser()->profile());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, GetWindow) {
|
| @@ -561,6 +590,54 @@ IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, InvalidUpdateWindowState) {
|
| keys::kInvalidWindowStateError));
|
| }
|
|
|
| +IN_PROC_BROWSER_TEST_F(ExtensionWindowCreateTest, ValidateCreateWindowState) {
|
| + EXPECT_TRUE(RunCreateWindow("[{\"state\": \"fullscreen\"}]"));
|
| + EXPECT_TRUE(RunCreateWindow("[{\"state\": \"maximized\"}]"));
|
| + EXPECT_TRUE(RunCreateWindow("[{\"state\": \"minimized\"}]"));
|
| + EXPECT_TRUE(RunCreateWindow("[{\"state\": \"normal\"}]"));
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(ExtensionWindowCreateTest, InvalidCreateWindowState) {
|
| + EXPECT_TRUE(
|
| + MatchPattern(RunCreateWindowExpectError(
|
| + "[{\"state\": \"fullscreen\", \"type\": \"panel\"}]"),
|
| + keys::kInvalidWindowStateError));
|
| + EXPECT_TRUE(
|
| + MatchPattern(RunCreateWindowExpectError(
|
| + "[{\"state\": \"maximized\", \"type\": \"panel\"}]"),
|
| + keys::kInvalidWindowStateError));
|
| + EXPECT_TRUE(
|
| + MatchPattern(RunCreateWindowExpectError(
|
| + "[{\"state\": \"minimized\", \"type\": \"panel\"}]"),
|
| + keys::kInvalidWindowStateError));
|
| +
|
| + EXPECT_TRUE(
|
| + MatchPattern(RunCreateWindowExpectError(
|
| + "[{\"state\": \"minimized\", \"focused\": true}]"),
|
| + keys::kInvalidWindowStateError));
|
| +
|
| + EXPECT_TRUE(
|
| + MatchPattern(RunCreateWindowExpectError(
|
| + "[{\"state\": \"maximized\", \"focused\": false}]"),
|
| + keys::kInvalidWindowStateError));
|
| +
|
| + EXPECT_TRUE(
|
| + MatchPattern(RunCreateWindowExpectError(
|
| + "[{\"state\": \"fullscreen\", \"focused\": false}]"),
|
| + keys::kInvalidWindowStateError));
|
| +
|
| + EXPECT_TRUE(MatchPattern(RunCreateWindowExpectError(
|
| + "[{\"state\": \"minimized\", \"width\": 500}]"),
|
| + keys::kInvalidWindowStateError));
|
| +
|
| + EXPECT_TRUE(MatchPattern(RunCreateWindowExpectError(
|
| + "[{\"state\": \"maximized\", \"width\": 500}]"),
|
| + keys::kInvalidWindowStateError));
|
| + EXPECT_TRUE(MatchPattern(RunCreateWindowExpectError(
|
| + "[{\"state\": \"fullscreen\", \"width\": 500}]"),
|
| + keys::kInvalidWindowStateError));
|
| +}
|
| +
|
| IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, DuplicateTab) {
|
| content::OpenURLParams params(GURL(url::kAboutBlankURL),
|
| content::Referrer(),
|
|
|