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 b606a0accdbff1fe1082c979db0d2d1e5b6ad97a..6203ae4da2d53f3100ee4cfc18960abf75c10ca7 100644 |
--- a/chrome/browser/extensions/api/tabs/tabs_test.cc |
+++ b/chrome/browser/extensions/api/tabs/tabs_test.cc |
@@ -42,8 +42,19 @@ namespace utils = extension_function_test_utils; |
namespace { |
using ExtensionTabsTest = InProcessBrowserTest; |
-using ExtensionWindowCreateTest = InProcessBrowserTest; |
-} |
+ |
+class ExtensionWindowCreateTest : public InProcessBrowserTest { |
+ public: |
+ // Runs chrome.windows.create(), expecting an error. |
+ std::string RunCreateWindowExpectError(const std::string& args) { |
+ scoped_refptr<WindowsCreateFunction> function(new WindowsCreateFunction); |
+ function->set_extension(test_util::CreateEmptyExtension().get()); |
+ return api_test_utils::RunFunctionAndReturnError(function.get(), args, |
+ browser()->profile()); |
+ } |
+}; |
+ |
+} // namespace |
IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, GetWindow) { |
int window_id = ExtensionTabUtil::GetWindowId(browser()); |
@@ -594,6 +605,42 @@ IN_PROC_BROWSER_TEST_F(ExtensionWindowCreateTest, AcceptState) { |
#endif |
} |
+IN_PROC_BROWSER_TEST_F(ExtensionWindowCreateTest, ValidateCreateWindowState) { |
+ 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(), |