changeset 11:08983db95420

Improved the engine runner test suite.
author Atul Varma <varmaa@toolness.com>
date Sun, 11 May 2008 14:28:29 -0700
parents 4b6b9ea26552
children a0c7b17ae1c6
files tests/output/test_engine_runner.txt tests/test_engine_runner.js
diffstat 2 files changed, 28 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/tests/output/test_engine_runner.txt	Sun May 11 13:58:05 2008 -0700
+++ b/tests/output/test_engine_runner.txt	Sun May 11 14:28:29 2008 -0700
@@ -1,3 +1,8 @@
-onLineInput() received, responding with: hello
+onLineInput() received
+  responding immediately with: hello
 engine.answer() received: 1, hello
+onLineInput() received
+  queuing delayed response: hello again
+Calling delayed call
+engine.answer() received: 1, hello again
 onQuit() received
--- a/tests/test_engine_runner.js	Sun May 11 13:58:05 2008 -0700
+++ b/tests/test_engine_runner.js	Sun May 11 14:28:29 2008 -0700
@@ -15,9 +15,10 @@
 
             switch (self._step) {
             case 1:
+            case 2:
                 effect = GNUSTO_EFFECT_INPUT;
                 break;
-            case 2:
+            case 3:
                 effect = GNUSTO_EFFECT_QUIT;
                 break;
             default:
@@ -34,6 +35,7 @@
 }
 
 function TestZui() {
+    this._inputCount = 0;
     var self = this;
 
     this.__proto__ = {
@@ -42,13 +44,29 @@
         },
 
         onLineInput: function(callback) {
-            var response = "hello";
-            print("onLineInput() received, responding with: "+response);
-            callback(response);
+            var responses = ["hello", "hello again"];
+            var response = responses[self._inputCount];
+
+            print("onLineInput() received");
+            if (self._inputCount == 0) {
+                print("  responding immediately with: "+response);
+                callback(response);
+            } else {
+                print("  queuing delayed response: "+response);
+                gDelayedCallQueue.push(function() { callback(response); });
+            }
+            self._inputCount += 1;
         }
     };
 };
 
 var gZui = new TestZui();
 var gRunner = new EngineRunner(new FakeEngine(), gZui);
+var gDelayedCallQueue = [];
+
 gRunner.run();
+
+while (gDelayedCallQueue.length) {
+    print("Calling delayed call");
+    gDelayedCallQueue.pop()();
+}