Commit | Line | Data |
---|---|---|
644eff8b RK |
1 | // Copyright (c) 2011 Google, Inc. |
2 | // | |
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy | |
4 | // of this software and associated documentation files (the "Software"), to deal | |
5 | // in the Software without restriction, including without limitation the rights | |
6 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
7 | // copies of the Software, and to permit persons to whom the Software is | |
8 | // furnished to do so, subject to the following conditions: | |
9 | // | |
10 | // The above copyright notice and this permission notice shall be included in | |
11 | // all copies or substantial portions of the Software. | |
12 | // | |
13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
18 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
19 | // THE SOFTWARE. | |
20 | ||
21 | /** | |
22 | * @fileoverview Mocked-out jstestdriver api that lets me test locally. | |
23 | * | |
24 | * @author konigsberg@google.com (Robert Konigsberg) | |
25 | */ | |
26 | var jstestdriver = { | |
e07e165f | 27 | jQuery : jQuery |
644eff8b RK |
28 | }; |
29 | ||
30 | var jstd = { | |
31 | include : function(name) { | |
32 | this.sucker("Not including " + name); | |
33 | }, | |
34 | sucker : function(text) { | |
35 | console.log(text + ", sucker!"); | |
36 | } | |
37 | }; | |
38 | ||
39 | function TestCase(name) { | |
40 | jstd.sucker("Not really creating TestCase(" + name + ")"); | |
41 | this.name = name; | |
42 | this.toString = function() { | |
43 | return "Fake test case " + name; | |
44 | }; | |
45 | ||
9d076ffe RK |
46 | var testCase = function() { return this; }; |
47 | testCase.prototype.setUp = function() { }; | |
48 | testCase.prototype.tearDown = function() { }; | |
49 | testCase.prototype.runTest = function(name) { | |
ca6c43aa RK |
50 | try { |
51 | this.setUp(); | |
52 | var fn = this[name]; | |
53 | fn.apply(this, []); | |
54 | this.tearDown(); | |
9d076ffe | 55 | return true; |
ca6c43aa RK |
56 | } catch (e) { |
57 | console.log(e.stack); | |
9d076ffe | 58 | return false; |
ca6c43aa | 59 | } |
644eff8b | 60 | }; |
9d076ffe RK |
61 | testCase.prototype.runAllTests = function() { |
62 | // what's better than for ... in for non-array objects? | |
63 | var tests = {}; | |
64 | for (var name in this) { | |
65 | if (name.indexOf('test') == 0 && typeof(this[name]) == 'function') { | |
66 | console.log("Running " + name); | |
67 | var result = this.runTest(name); | |
68 | tests[name] = result; | |
69 | } | |
70 | } | |
71 | console.log(prettyPrintEntity_(tests)); | |
72 | }; | |
73 | return testCase; | |
644eff8b | 74 | }; |