| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | 
							- /* appjet:version 0.1 */
 
- /* appjet:library */
 
- // Copyright (c) 2010, Herbert Vojčík
 
- // Licensed by MIT license (http://www.opensource.org/licenses/mit-license.php)
 
- /**@overview This library contains various utility functions to support unit-testing.
 
-  */
 
- /**
 
-  * Returns stub function that logs arguments called
 
-  * into its property called log and returns retval.
 
-  * Useful primarily for testing.
 
-  */
 
- function stub(retval) {
 
-     var result = function() {
 
-         result.log.push(Array.slice(arguments));
 
-         return retval;
 
-     };
 
-     result.log = [];
 
-     return result;
 
- }
 
- function picker () {
 
-   var args = Array.prototype.slice.call(arguments);
 
-   return function (self) {
 
-     return args.map(function (prop) {
 
-       var ch = prop[0], rest = prop.substring(1);
 
-       return ch === "+" ? +self[rest] : ch === "?" ? !!self[rest] : self[prop];
 
-     });
 
-   };
 
- };
 
- function mockLib(lib, exports) {
 
-   var old = appjet._native.importApp;
 
-   appjet._native.importApp = function () { return exports; };
 
-   try { import({}, lib); } finally { appjet._native.importApp = old; }
 
- }
 
- /* appjet:server */
 
- import("lib-support/jsunit");
 
- var _l = import({}, "lib-support/jsunit-goodies");
 
- // ==== Test cases ====
 
- page.testSuite = [
 
- 	function logIsEmptyForNewStub() {
 
- 	    var f = _l.stub();
 
- 	    assertArrayEquals("Log is not empty array", [], f.log);
 
- 	},
 
- 	
 
- 	function stubIsAFunction() {
 
- 	    var f = _l.stub();
 
- 	    assertEquals("Stub is not a function", "function", typeof f);
 
- 	},
 
- 	
 
- 	function stubWithoutRetvalReturnsUndefined() {
 
- 	    var f = _l.stub();
 
- 	    assertEquals("Stub doesn't return undefined", undefined, f(3, "hello"));
 
- 	},
 
- 	
 
- 	function stubWithRetvalReturnsRetval() {
 
- 	    var f = _l.stub("world");
 
- 	    assertEquals("Stub returns incorrect value", "world", f(3, "hello"));
 
- 	},
 
- 	
 
- 	function stub_CalledMultipleTimes_ReturnsAlwaysRetval_AndLogsArguments() {
 
- 	    var f = _l.stub("hi");
 
- 	    var r1 = f("hello", 14, "world");
 
- 	    assertArrayEquals("Log is incorrect 1", [["hello", 14, "world"]], f.log);
 
- 	    var r2 = f("!", f);
 
- 	    assertArrayEquals("Log is incorrect 2", [["hello", 14, "world"], ["!", f]], f.log);
 
- 	    f();
 
- 	    assertArrayEquals("Log is incorrect 3", [["hello", 14, "world"], ["!", f], []], f.log);
 
- 	    assertEquals("Stub returns incorrect value 1", "hi", r1);
 
- 	    assertEquals("Stub returns incorrect value 2", "hi", r2);
 
- 	},
 
-   
 
-   //TODO tests for the rest
 
- ];
 
- // ==== Test runner ====
 
- import("lib-support/runner");
 
- runTestsByDefault();
 
 
  |