summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/extensions/extension_api_client_unittest.cc
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-14 02:40:53 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-14 02:40:53 +0000
commit22f22e700c7f47c077184e26667bc77d4767099a (patch)
treed2a68a49996104f3f3254ce4b6bf8f3a4ec8ec90 /chrome/renderer/extensions/extension_api_client_unittest.cc
parent372d832bd96a6422209e2d9891b89d2699502569 (diff)
downloadchromium_src-22f22e700c7f47c077184e26667bc77d4767099a.zip
chromium_src-22f22e700c7f47c077184e26667bc77d4767099a.tar.gz
chromium_src-22f22e700c7f47c077184e26667bc77d4767099a.tar.bz2
Revert "Revert "implemented extensions api windows.update().""
This reverts commit 81242e3b9c6e6fbc42ccf5f973b27ed4cf4401d6. This wasn't the cause of the breakage. Review URL: http://codereview.chromium.org/115337 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16032 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/extensions/extension_api_client_unittest.cc')
-rw-r--r--chrome/renderer/extensions/extension_api_client_unittest.cc83
1 files changed, 83 insertions, 0 deletions
diff --git a/chrome/renderer/extensions/extension_api_client_unittest.cc b/chrome/renderer/extensions/extension_api_client_unittest.cc
index 6104bab..9689d95 100644
--- a/chrome/renderer/extensions/extension_api_client_unittest.cc
+++ b/chrome/renderer/extensions/extension_api_client_unittest.cc
@@ -172,6 +172,89 @@ TEST_F(ExtensionAPIClientTest, GetAllWindows) {
"GetAllWindows", "null");
}
+TEST_F(ExtensionAPIClientTest, CreateWindow) {
+ ExpectJsFail("chrome.windows.create({url: 1}, function(){});",
+ "Uncaught Error: Invalid value for argument 0. Property "
+ "'url': Expected 'string' but got 'integer'.");
+ ExpectJsFail("chrome.windows.create({left: 'foo'}, function(){});",
+ "Uncaught Error: Invalid value for argument 0. Property "
+ "'left': Expected 'integer' but got 'string'.");
+ ExpectJsFail("chrome.windows.create({top: 'foo'}, function(){});",
+ "Uncaught Error: Invalid value for argument 0. Property "
+ "'top': Expected 'integer' but got 'string'.");
+ ExpectJsFail("chrome.windows.create({width: 'foo'}, function(){});",
+ "Uncaught Error: Invalid value for argument 0. Property "
+ "'width': Expected 'integer' but got 'string'.");
+ ExpectJsFail("chrome.windows.create({height: 'foo'}, function(){});",
+ "Uncaught Error: Invalid value for argument 0. Property "
+ "'height': Expected 'integer' but got 'string'.");
+ ExpectJsFail("chrome.windows.create({foo: 42}, function(){});",
+ "Uncaught Error: Invalid value for argument 0. Property "
+ "'foo': Unexpected property.");
+
+ ExpectJsPass("chrome.windows.create({"
+ " url:'http://www.google.com/',"
+ " left:0,"
+ " top: 10,"
+ " width:100,"
+ " height:200"
+ "})",
+ "CreateWindow",
+ "{\"url\":\"http://www.google.com/\","
+ "\"left\":0,"
+ "\"top\":10,"
+ "\"width\":100,"
+ "\"height\":200}");
+}
+
+TEST_F(ExtensionAPIClientTest, UpdateWindow) {
+ ExpectJsFail("chrome.windows.update(null);",
+ "Uncaught Error: Parameter 0 is required.");
+ ExpectJsFail("chrome.windows.update(42, {left: 'foo'});",
+ "Uncaught Error: Invalid value for argument 1. Property "
+ "'left': Expected 'integer' but got 'string'.");
+ ExpectJsFail("chrome.windows.update(42, {top: 'foo'});",
+ "Uncaught Error: Invalid value for argument 1. Property "
+ "'top': Expected 'integer' but got 'string'.");
+ ExpectJsFail("chrome.windows.update(42, {height: false});",
+ "Uncaught Error: Invalid value for argument 1. Property "
+ "'height': Expected 'integer' but got 'boolean'.");
+ ExpectJsFail("chrome.windows.update(42, {width: false});",
+ "Uncaught Error: Invalid value for argument 1. Property "
+ "'width': Expected 'integer' but got 'boolean'.");
+ ExpectJsFail("chrome.windows.update(42, {foo: false});",
+ "Uncaught Error: Invalid value for argument 1. Property "
+ "'foo': Unexpected property.");
+
+ ExpectJsPass("chrome.windows.update(42, {"
+ " width:100,"
+ " height:200"
+ "})",
+ "UpdateWindow",
+ "[42,"
+ "{\"width\":100,"
+ "\"height\":200}]");
+}
+
+TEST_F(ExtensionAPIClientTest, RemoveWindow) {
+ ExpectJsFail("chrome.windows.remove(32, function(){}, 20);",
+ "Uncaught Error: Too many arguments.");
+
+ ExpectJsFail("chrome.windows.remove('abc', function(){});",
+ "Uncaught Error: Invalid value for argument 0. "
+ "Expected 'integer' but got 'string'.");
+
+ ExpectJsFail("chrome.windows.remove(1, 1);",
+ "Uncaught Error: Invalid value for argument 1. "
+ "Expected 'function' but got 'integer'.");
+
+ ExpectJsPass("chrome.windows.remove(2, function(){})",
+ "RemoveWindow", "2");
+
+ ExpectJsPass("chrome.windows.remove(2)",
+ "RemoveWindow", "2");
+}
+
// Tab API tests
TEST_F(ExtensionAPIClientTest, GetTab) {