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

Unified Diff: chrome/test/chromedriver/js/execute_async_script_test.html

Issue 12675002: [chromedriver] Implement command: executeAsyncScript and setScriptTimeout (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/chromedriver/js/execute_async_script_test.html
diff --git a/chrome/test/chromedriver/js/execute_async_script_test.html b/chrome/test/chromedriver/js/execute_async_script_test.html
new file mode 100644
index 0000000000000000000000000000000000000000..2a0727086d3d80b81e28ad4c17413dc91451cc98
--- /dev/null
+++ b/chrome/test/chromedriver/js/execute_async_script_test.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML>
+<html>
+<script src='test.js'></script>
+<script src='execute_async_script.js'></script>
+<script>
+
+var idName = 'chromedriverAsyncScriptId';
+var finishFlagName = 'chromedriverAsyncScriptFinsished';
+var resultName = 'chromedriverAsyncScriptResult';
+
+function resetResult() {
+ document[idName] = null;
+ document[finishFlagName] = null;
+ document[resultName] = null;
+}
+
+function testExecuteAsyncScript() {
+ resetResult();
+ var injectedArgs = null;
+ function setArguments(args) {
+ injectedArgs = args;
+ }
+ var script =
+ 'var args = arguments; args[0](args); args[args.length - 1](args[1]);';
+ var script_args = [setArguments, 1];
+ executeAsyncScript(script, script_args);
+ assertEquals(3, injectedArgs.length);
+ assertEquals(setArguments, injectedArgs[0]);
+ assertEquals(1, injectedArgs[1]);
+ assert(document[finishFlagName]);
+ assert(1, document[resultName]);
+ assert(1, document[idName]);
+}
+
+function testFirstScriptFinishAfterSecondScript() {
+ resetResult();
+ executeAsyncScript(
+ 'var fn = arguments[0]; setTimeout(function(){ fn(1); }, 100000);', []);
+ assert(!document[finishFlagName]);
+ assertEquals(null, document[resultName]);
+ assertEquals(1, document[idName]);
+ executeAsyncScript('var fn = arguments[0]; fn(2);', []);
+ assert(document[finishFlagName]);
+ assertEquals(2, document[resultName]);
+ assertEquals(2, document[idName]);
+}
+
+</script>
+<body>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698