smparkes-jazrb 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. data/README.rdoc +2 -0
  2. data/bin/jazrb +46 -14
  3. data/doc/jasmine/files.html +165 -11
  4. data/doc/jasmine/index.html +5 -13
  5. data/doc/jasmine/symbols/_global_.html +145 -19
  6. data/doc/jasmine/symbols/jasmine.Block.html +72 -6
  7. data/doc/jasmine/symbols/jasmine.Clock.html +678 -0
  8. data/doc/jasmine/symbols/jasmine.Env.html +632 -16
  9. data/doc/jasmine/symbols/jasmine.EnvjsReporter.html +1 -1
  10. data/doc/jasmine/symbols/jasmine.JsApiReporter.html +500 -6
  11. data/doc/jasmine/symbols/jasmine.Matchers.html +228 -9
  12. data/doc/jasmine/symbols/jasmine.MultiReporter.html +72 -6
  13. data/doc/jasmine/symbols/jasmine.NestedResults.html +5 -7
  14. data/doc/jasmine/symbols/jasmine.Reporter.html +252 -6
  15. data/doc/jasmine/symbols/jasmine.Runner.html +377 -6
  16. data/doc/jasmine/symbols/jasmine.Spec.html +972 -8
  17. data/doc/jasmine/symbols/jasmine.Spy.html +6 -8
  18. data/doc/jasmine/symbols/jasmine.Suite.html +354 -6
  19. data/doc/jasmine/symbols/jasmine.XMLReporter.html +1 -1
  20. data/doc/jasmine/symbols/jasmine.html +571 -18
  21. data/doc/jasmine/symbols/jasmine.util.html +213 -6
  22. data/doc/jasmine/symbols/src/src_Block.js.html +29 -0
  23. data/doc/jasmine/symbols/src/src_Env.js.html +232 -0
  24. data/doc/jasmine/symbols/src/src_JsApiReporter.js.html +110 -0
  25. data/doc/jasmine/symbols/src/src_Matchers.js.html +399 -0
  26. data/doc/jasmine/symbols/src/src_MultiReporter.js.html +36 -0
  27. data/doc/jasmine/symbols/src/src_NestedResults.js.html +88 -0
  28. data/doc/jasmine/symbols/src/src_PrettyPrinter.js.html +128 -0
  29. data/doc/jasmine/symbols/src/src_Queue.js.html +119 -0
  30. data/doc/jasmine/symbols/src/src_Reporter.js.html +35 -0
  31. data/doc/jasmine/symbols/src/src_Reporters.js.html +51 -0
  32. data/doc/jasmine/symbols/src/src_Runner.js.html +75 -0
  33. data/doc/jasmine/symbols/src/src_Spec.js.html +228 -0
  34. data/doc/jasmine/symbols/src/src_Suite.js.html +77 -0
  35. data/doc/jasmine/symbols/src/src_WaitsBlock.js.html +21 -0
  36. data/doc/jasmine/symbols/src/src_WaitsForBlock.js.html +45 -0
  37. data/doc/jasmine/symbols/src/src_base.js.html +557 -0
  38. data/doc/jasmine/symbols/src/src_mock-timeout.js.html +185 -0
  39. data/doc/jasmine/symbols/src/src_util.js.html +75 -0
  40. data/lib/jazrb/intro.js +32 -3
  41. data/lib/jazrb/jasmine/XMLReporter.js +36 -2
  42. data/lib/jazrb/jasmine/jasmine-0.10.0.js +73 -15
  43. data/lib/jazrb/jasmine/jasmine.js +73 -15
  44. data/lib/jazrb/options.rb +5 -0
  45. data/lib/jazrb/qintro.js +113 -0
  46. data/lib/jazrb/qoutro.js +3 -0
  47. data/lib/jazrb/qunit/qunit.css +17 -0
  48. data/lib/jazrb/qunit/qunit.js +1027 -0
  49. metadata +26 -7
  50. data/doc/jasmine/symbols/src/lib_consolex.js.html +0 -35
  51. data/doc/jasmine/symbols/src/lib_jasmine-0.10.0.js.html +0 -2302
  52. data/doc/jasmine/symbols/src/lib_jasmine-0.9.0.js.html +0 -2212
  53. data/doc/jasmine/symbols/src/lib_json2.js.html +0 -486
@@ -0,0 +1,557 @@
1
+ <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
2
+ .KEYW {color: #933;}
3
+ .COMM {color: #bbb; font-style: italic;}
4
+ .NUMB {color: #393;}
5
+ .STRN {color: #393;}
6
+ .REGX {color: #339;}
7
+ .line {border-right: 1px dotted #666; color: #666; font-style: normal;}
8
+ </style></head><body><pre><span class='line'> 1</span> <span class="COMM">/**
9
+ <span class='line'> 2</span> * Top level namespace for Jasmine, a lightweight JavaScript BDD/spec/testing framework.
10
+ <span class='line'> 3</span> *
11
+ <span class='line'> 4</span> * @namespace
12
+ <span class='line'> 5</span> */</span><span class="WHIT">
13
+ <span class='line'> 6</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">jasmine</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
14
+ <span class='line'> 7</span>
15
+ <span class='line'> 8</span> </span><span class="COMM">/**
16
+ <span class='line'> 9</span> * @private
17
+ <span class='line'> 10</span> */</span><span class="WHIT">
18
+ <span class='line'> 11</span> </span><span class="NAME">jasmine.unimplementedMethod_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
19
+ <span class='line'> 12</span> </span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="STRN">"unimplemented method"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
20
+ <span class='line'> 13</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
21
+ <span class='line'> 14</span>
22
+ <span class='line'> 15</span> </span><span class="COMM">/**
23
+ <span class='line'> 16</span> * Default interval for event loop yields. Small values here may result in slow test running. Zero means no updates until all tests have completed.
24
+ <span class='line'> 17</span> *
25
+ <span class='line'> 18</span> */</span><span class="WHIT">
26
+ <span class='line'> 19</span> </span><span class="NAME">jasmine.DEFAULT_UPDATE_INTERVAL</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">250</span><span class="PUNC">;</span><span class="WHIT">
27
+ <span class='line'> 20</span>
28
+ <span class='line'> 21</span> </span><span class="COMM">/**
29
+ <span class='line'> 22</span> * Allows for bound functions to be comapred. Internal use only.
30
+ <span class='line'> 23</span> *
31
+ <span class='line'> 24</span> * @ignore
32
+ <span class='line'> 25</span> * @private
33
+ <span class='line'> 26</span> * @param base {Object} bound 'this' for the function
34
+ <span class='line'> 27</span> * @param name {Function} function to find
35
+ <span class='line'> 28</span> */</span><span class="WHIT">
36
+ <span class='line'> 29</span> </span><span class="NAME">jasmine.bindOriginal_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">base</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
37
+ <span class='line'> 30</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">original</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">base</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
38
+ <span class='line'> 31</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">original.apply</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
39
+ <span class='line'> 32</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
40
+ <span class='line'> 33</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">original.apply</span><span class="PUNC">(</span><span class="NAME">base</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
41
+ <span class='line'> 34</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
42
+ <span class='line'> 35</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
43
+ <span class='line'> 36</span> </span><span class="WHIT"> </span><span class="COMM">// IE support</span><span class="WHIT">
44
+ <span class='line'> 37</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">window</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
45
+ <span class='line'> 38</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
46
+ <span class='line'> 39</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
47
+ <span class='line'> 40</span>
48
+ <span class='line'> 41</span> </span><span class="NAME">jasmine.setTimeout</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jasmine.bindOriginal_</span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'setTimeout'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
49
+ <span class='line'> 42</span> </span><span class="NAME">jasmine.clearTimeout</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jasmine.bindOriginal_</span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'clearTimeout'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
50
+ <span class='line'> 43</span> </span><span class="NAME">jasmine.setInterval</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jasmine.bindOriginal_</span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'setInterval'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
51
+ <span class='line'> 44</span> </span><span class="NAME">jasmine.clearInterval</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jasmine.bindOriginal_</span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'clearInterval'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
52
+ <span class='line'> 45</span>
53
+ <span class='line'> 46</span> </span><span class="NAME">jasmine.MessageResult</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">text</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
54
+ <span class='line'> 47</span> </span><span class="WHIT"> </span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'MessageResult'</span><span class="PUNC">;</span><span class="WHIT">
55
+ <span class='line'> 48</span> </span><span class="WHIT"> </span><span class="NAME">this.text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text</span><span class="PUNC">;</span><span class="WHIT">
56
+ <span class='line'> 49</span> </span><span class="WHIT"> </span><span class="NAME">this.trace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// todo: test better</span><span class="WHIT">
57
+ <span class='line'> 50</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
58
+ <span class='line'> 51</span>
59
+ <span class='line'> 52</span> </span><span class="NAME">jasmine.ExpectationResult</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">params</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
60
+ <span class='line'> 53</span> </span><span class="WHIT"> </span><span class="NAME">this.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'ExpectationResult'</span><span class="PUNC">;</span><span class="WHIT">
61
+ <span class='line'> 54</span> </span><span class="WHIT"> </span><span class="NAME">this.matcherName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">params.matcherName</span><span class="PUNC">;</span><span class="WHIT">
62
+ <span class='line'> 55</span> </span><span class="WHIT"> </span><span class="NAME">this.passed_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">params.passed</span><span class="PUNC">;</span><span class="WHIT">
63
+ <span class='line'> 56</span> </span><span class="WHIT"> </span><span class="NAME">this.expected</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">params.expected</span><span class="PUNC">;</span><span class="WHIT">
64
+ <span class='line'> 57</span> </span><span class="WHIT"> </span><span class="NAME">this.actual</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">params.actual</span><span class="PUNC">;</span><span class="WHIT">
65
+ <span class='line'> 58</span>
66
+ <span class='line'> 59</span> </span><span class="WHIT"> </span><span class="COMM">/** @deprecated */</span><span class="WHIT">
67
+ <span class='line'> 60</span> </span><span class="WHIT"> </span><span class="NAME">this.details</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">params.details</span><span class="PUNC">;</span><span class="WHIT">
68
+ <span class='line'> 61</span> </span><span class="WHIT">
69
+ <span class='line'> 62</span> </span><span class="NAME">this.message</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.passed_</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'Passed.'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">params.message</span><span class="PUNC">;</span><span class="WHIT">
70
+ <span class='line'> 63</span> </span><span class="WHIT"> </span><span class="NAME">this.trace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.passed_</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
71
+ <span class='line'> 64</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">params.exception</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">params.exception</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="NAME">this.message</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
72
+ <span class='line'> 65</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
73
+ <span class='line'> 66</span>
74
+ <span class='line'> 67</span> </span><span class="NAME">jasmine.ExpectationResult.prototype.passed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
75
+ <span class='line'> 68</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.passed_</span><span class="PUNC">;</span><span class="WHIT">
76
+ <span class='line'> 69</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
77
+ <span class='line'> 70</span>
78
+ <span class='line'> 71</span> </span><span class="COMM">/**
79
+ <span class='line'> 72</span> * Getter for the Jasmine environment. Ensures one gets created
80
+ <span class='line'> 73</span> */</span><span class="WHIT">
81
+ <span class='line'> 74</span> </span><span class="NAME">jasmine.getEnv</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
82
+ <span class='line'> 75</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jasmine.currentEnv_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jasmine.currentEnv_</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">jasmine.Env</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
83
+ <span class='line'> 76</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
84
+ <span class='line'> 77</span>
85
+ <span class='line'> 78</span> </span><span class="COMM">/**
86
+ <span class='line'> 79</span> * @ignore
87
+ <span class='line'> 80</span> * @private
88
+ <span class='line'> 81</span> * @param value
89
+ <span class='line'> 82</span> * @returns {Boolean}
90
+ <span class='line'> 83</span> */</span><span class="WHIT">
91
+ <span class='line'> 84</span> </span><span class="NAME">jasmine.isArray_</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
92
+ <span class='line'> 85</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
93
+ <span class='line'> 86</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
94
+ <span class='line'> 87</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">value.length</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
95
+ <span class='line'> 88</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">value.splice</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
96
+ <span class='line'> 89</span> </span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">value.propertyIsEnumerable</span><span class="PUNC">(</span><span class="STRN">'length'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
97
+ <span class='line'> 90</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
98
+ <span class='line'> 91</span>
99
+ <span class='line'> 92</span> </span><span class="COMM">/**
100
+ <span class='line'> 93</span> * Pretty printer for expecations. Takes any object and turns it into a human-readable string.
101
+ <span class='line'> 94</span> *
102
+ <span class='line'> 95</span> * @param value {Object} an object to be outputted
103
+ <span class='line'> 96</span> * @returns {String}
104
+ <span class='line'> 97</span> */</span><span class="WHIT">
105
+ <span class='line'> 98</span> </span><span class="NAME">jasmine.pp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
106
+ <span class='line'> 99</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">stringPrettyPrinter</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">jasmine.StringPrettyPrinter</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
107
+ <span class='line'>100</span> </span><span class="WHIT"> </span><span class="NAME">stringPrettyPrinter.format</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
108
+ <span class='line'>101</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">stringPrettyPrinter.string</span><span class="PUNC">;</span><span class="WHIT">
109
+ <span class='line'>102</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
110
+ <span class='line'>103</span>
111
+ <span class='line'>104</span> </span><span class="COMM">/**
112
+ <span class='line'>105</span> * Returns true if the object is a DOM Node.
113
+ <span class='line'>106</span> *
114
+ <span class='line'>107</span> * @param {Object} obj object to check
115
+ <span class='line'>108</span> * @returns {Boolean}
116
+ <span class='line'>109</span> */</span><span class="WHIT">
117
+ <span class='line'>110</span> </span><span class="NAME">jasmine.isDomNode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
118
+ <span class='line'>111</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">[</span><span class="STRN">'nodeType'</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
119
+ <span class='line'>112</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
120
+ <span class='line'>113</span>
121
+ <span class='line'>114</span> </span><span class="COMM">/**
122
+ <span class='line'>115</span> * Returns a matchable 'generic' object of the class type. For use in expecations of type when values don't matter.
123
+ <span class='line'>116</span> *
124
+ <span class='line'>117</span> * @example
125
+ <span class='line'>118</span> * // don't care about which function is passed in, as long as it's a function
126
+ <span class='line'>119</span> * expect(mySpy).wasCalledWith(jasmine.any(Function));
127
+ <span class='line'>120</span> *
128
+ <span class='line'>121</span> * @param {Class} clazz
129
+ <span class='line'>122</span> * @returns matchable object of the type clazz
130
+ <span class='line'>123</span> */</span><span class="WHIT">
131
+ <span class='line'>124</span> </span><span class="NAME">jasmine.any</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">clazz</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
132
+ <span class='line'>125</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">jasmine.Matchers.Any</span><span class="PUNC">(</span><span class="NAME">clazz</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
133
+ <span class='line'>126</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
134
+ <span class='line'>127</span>
135
+ <span class='line'>128</span> </span><span class="COMM">/**
136
+ <span class='line'>129</span> * Jasmine Spies are test doubles that can act as stubs, spies, fakes or when used in an expecation, mocks.
137
+ <span class='line'>130</span> *
138
+ <span class='line'>131</span> * Spies should be created in test setup, before expectations. They can then be checked, using the standard Jasmine
139
+ <span class='line'>132</span> * expectation syntax. Spies can be checked if they were called or not and what the calling params were.
140
+ <span class='line'>133</span> *
141
+ <span class='line'>134</span> * A Spy has the following mehtod: wasCalled, callCount, mostRecentCall, and argsForCall (see docs)
142
+ <span class='line'>135</span> * Spies are torn down at the end of every spec.
143
+ <span class='line'>136</span> *
144
+ <span class='line'>137</span> * Note: Do &lt;b>not&lt;/b> call new jasmine.Spy() directly - a spy must be created using spyOn, jasmine.createSpy or jasmine.createSpyObj.
145
+ <span class='line'>138</span> *
146
+ <span class='line'>139</span> * @example
147
+ <span class='line'>140</span> * // a stub
148
+ <span class='line'>141</span> * var myStub = jasmine.createSpy('myStub'); // can be used anywhere
149
+ <span class='line'>142</span> *
150
+ <span class='line'>143</span> * // spy example
151
+ <span class='line'>144</span> * var foo = {
152
+ <span class='line'>145</span> * not: function(bool) { return !bool; }
153
+ <span class='line'>146</span> * }
154
+ <span class='line'>147</span> *
155
+ <span class='line'>148</span> * // actual foo.not will not be called, execution stops
156
+ <span class='line'>149</span> * spyOn(foo, 'not');
157
+ <span class='line'>150</span>
158
+ <span class='line'>151</span> // foo.not spied upon, execution will continue to implementation
159
+ <span class='line'>152</span> * spyOn(foo, 'not').andCallThrough();
160
+ <span class='line'>153</span> *
161
+ <span class='line'>154</span> * // fake example
162
+ <span class='line'>155</span> * var foo = {
163
+ <span class='line'>156</span> * not: function(bool) { return !bool; }
164
+ <span class='line'>157</span> * }
165
+ <span class='line'>158</span> *
166
+ <span class='line'>159</span> * // foo.not(val) will return val
167
+ <span class='line'>160</span> * spyOn(foo, 'not').andCallFake(function(value) {return value;});
168
+ <span class='line'>161</span> *
169
+ <span class='line'>162</span> * // mock example
170
+ <span class='line'>163</span> * foo.not(7 == 7);
171
+ <span class='line'>164</span> * expect(foo.not).wasCalled();
172
+ <span class='line'>165</span> * expect(foo.not).wasCalledWith(true);
173
+ <span class='line'>166</span> *
174
+ <span class='line'>167</span> * @constructor
175
+ <span class='line'>168</span> * @see spyOn, jasmine.createSpy, jasmine.createSpyObj
176
+ <span class='line'>169</span> * @param {String} name
177
+ <span class='line'>170</span> */</span><span class="WHIT">
178
+ <span class='line'>171</span> </span><span class="NAME">jasmine.Spy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
179
+ <span class='line'>172</span> </span><span class="WHIT"> </span><span class="COMM">/**
180
+ <span class='line'>173</span> * The name of the spy, if provided.
181
+ <span class='line'>174</span> */</span><span class="WHIT">
182
+ <span class='line'>175</span> </span><span class="WHIT"> </span><span class="NAME">this.identity</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">'unknown'</span><span class="PUNC">;</span><span class="WHIT">
183
+ <span class='line'>176</span> </span><span class="WHIT"> </span><span class="COMM">/**
184
+ <span class='line'>177</span> * Is this Object a spy?
185
+ <span class='line'>178</span> */</span><span class="WHIT">
186
+ <span class='line'>179</span> </span><span class="WHIT"> </span><span class="NAME">this.isSpy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
187
+ <span class='line'>180</span> </span><span class="WHIT"> </span><span class="COMM">/**
188
+ <span class='line'>181</span> * The actual function this spy stubs.
189
+ <span class='line'>182</span> */</span><span class="WHIT">
190
+ <span class='line'>183</span> </span><span class="WHIT"> </span><span class="NAME">this.plan</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
191
+ <span class='line'>184</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
192
+ <span class='line'>185</span> </span><span class="WHIT"> </span><span class="COMM">/**
193
+ <span class='line'>186</span> * Tracking of the most recent call to the spy.
194
+ <span class='line'>187</span> * @example
195
+ <span class='line'>188</span> * var mySpy = jasmine.createSpy('foo');
196
+ <span class='line'>189</span> * mySpy(1, 2);
197
+ <span class='line'>190</span> * mySpy.mostRecentCall.args = [1, 2];
198
+ <span class='line'>191</span> */</span><span class="WHIT">
199
+ <span class='line'>192</span> </span><span class="WHIT"> </span><span class="NAME">this.mostRecentCall</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
200
+ <span class='line'>193</span>
201
+ <span class='line'>194</span> </span><span class="WHIT"> </span><span class="COMM">/**
202
+ <span class='line'>195</span> * Holds arguments for each call to the spy, indexed by call count
203
+ <span class='line'>196</span> * @example
204
+ <span class='line'>197</span> * var mySpy = jasmine.createSpy('foo');
205
+ <span class='line'>198</span> * mySpy(1, 2);
206
+ <span class='line'>199</span> * mySpy(7, 8);
207
+ <span class='line'>200</span> * mySpy.mostRecentCall.args = [7, 8];
208
+ <span class='line'>201</span> * mySpy.argsForCall[0] = [1, 2];
209
+ <span class='line'>202</span> * mySpy.argsForCall[1] = [7, 8];
210
+ <span class='line'>203</span> */</span><span class="WHIT">
211
+ <span class='line'>204</span> </span><span class="WHIT"> </span><span class="NAME">this.argsForCall</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
212
+ <span class='line'>205</span> </span><span class="WHIT"> </span><span class="NAME">this.calls</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
213
+ <span class='line'>206</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
214
+ <span class='line'>207</span>
215
+ <span class='line'>208</span> </span><span class="COMM">/**
216
+ <span class='line'>209</span> * Tells a spy to call through to the actual implemenatation.
217
+ <span class='line'>210</span> *
218
+ <span class='line'>211</span> * @example
219
+ <span class='line'>212</span> * var foo = {
220
+ <span class='line'>213</span> * bar: function() { // do some stuff }
221
+ <span class='line'>214</span> * }
222
+ <span class='line'>215</span> *
223
+ <span class='line'>216</span> * // defining a spy on an existing property: foo.bar
224
+ <span class='line'>217</span> * spyOn(foo, 'bar').andCallThrough();
225
+ <span class='line'>218</span> */</span><span class="WHIT">
226
+ <span class='line'>219</span> </span><span class="NAME">jasmine.Spy.prototype.andCallThrough</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
227
+ <span class='line'>220</span> </span><span class="WHIT"> </span><span class="NAME">this.plan</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.originalValue</span><span class="PUNC">;</span><span class="WHIT">
228
+ <span class='line'>221</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
229
+ <span class='line'>222</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
230
+ <span class='line'>223</span>
231
+ <span class='line'>224</span> </span><span class="COMM">/**
232
+ <span class='line'>225</span> * For setting the return value of a spy.
233
+ <span class='line'>226</span> *
234
+ <span class='line'>227</span> * @example
235
+ <span class='line'>228</span> * // defining a spy from scratch: foo() returns 'baz'
236
+ <span class='line'>229</span> * var foo = jasmine.createSpy('spy on foo').andReturn('baz');
237
+ <span class='line'>230</span> *
238
+ <span class='line'>231</span> * // defining a spy on an existing property: foo.bar() returns 'baz'
239
+ <span class='line'>232</span> * spyOn(foo, 'bar').andReturn('baz');
240
+ <span class='line'>233</span> *
241
+ <span class='line'>234</span> * @param {Object} value
242
+ <span class='line'>235</span> */</span><span class="WHIT">
243
+ <span class='line'>236</span> </span><span class="NAME">jasmine.Spy.prototype.andReturn</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
244
+ <span class='line'>237</span> </span><span class="WHIT"> </span><span class="NAME">this.plan</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
245
+ <span class='line'>238</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
246
+ <span class='line'>239</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
247
+ <span class='line'>240</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
248
+ <span class='line'>241</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
249
+ <span class='line'>242</span>
250
+ <span class='line'>243</span> </span><span class="COMM">/**
251
+ <span class='line'>244</span> * For throwing an exception when a spy is called.
252
+ <span class='line'>245</span> *
253
+ <span class='line'>246</span> * @example
254
+ <span class='line'>247</span> * // defining a spy from scratch: foo() throws an exception w/ message 'ouch'
255
+ <span class='line'>248</span> * var foo = jasmine.createSpy('spy on foo').andThrow('baz');
256
+ <span class='line'>249</span> *
257
+ <span class='line'>250</span> * // defining a spy on an existing property: foo.bar() throws an exception w/ message 'ouch'
258
+ <span class='line'>251</span> * spyOn(foo, 'bar').andThrow('baz');
259
+ <span class='line'>252</span> *
260
+ <span class='line'>253</span> * @param {String} exceptionMsg
261
+ <span class='line'>254</span> */</span><span class="WHIT">
262
+ <span class='line'>255</span> </span><span class="NAME">jasmine.Spy.prototype.andThrow</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">exceptionMsg</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
263
+ <span class='line'>256</span> </span><span class="WHIT"> </span><span class="NAME">this.plan</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
264
+ <span class='line'>257</span> </span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="NAME">exceptionMsg</span><span class="PUNC">;</span><span class="WHIT">
265
+ <span class='line'>258</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
266
+ <span class='line'>259</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
267
+ <span class='line'>260</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
268
+ <span class='line'>261</span>
269
+ <span class='line'>262</span> </span><span class="COMM">/**
270
+ <span class='line'>263</span> * Calls an alternate implementation when a spy is called.
271
+ <span class='line'>264</span> *
272
+ <span class='line'>265</span> * @example
273
+ <span class='line'>266</span> * var baz = function() {
274
+ <span class='line'>267</span> * // do some stuff, return something
275
+ <span class='line'>268</span> * }
276
+ <span class='line'>269</span> * // defining a spy from scratch: foo() calls the function baz
277
+ <span class='line'>270</span> * var foo = jasmine.createSpy('spy on foo').andCall(baz);
278
+ <span class='line'>271</span> *
279
+ <span class='line'>272</span> * // defining a spy on an existing property: foo.bar() calls an anonymnous function
280
+ <span class='line'>273</span> * spyOn(foo, 'bar').andCall(function() { return 'baz';} );
281
+ <span class='line'>274</span> *
282
+ <span class='line'>275</span> * @param {Function} fakeFunc
283
+ <span class='line'>276</span> */</span><span class="WHIT">
284
+ <span class='line'>277</span> </span><span class="NAME">jasmine.Spy.prototype.andCallFake</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">fakeFunc</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
285
+ <span class='line'>278</span> </span><span class="WHIT"> </span><span class="NAME">this.plan</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fakeFunc</span><span class="PUNC">;</span><span class="WHIT">
286
+ <span class='line'>279</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
287
+ <span class='line'>280</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
288
+ <span class='line'>281</span>
289
+ <span class='line'>282</span> </span><span class="COMM">/**
290
+ <span class='line'>283</span> * Resets all of a spy's the tracking variables so that it can be used again.
291
+ <span class='line'>284</span> *
292
+ <span class='line'>285</span> * @example
293
+ <span class='line'>286</span> * spyOn(foo, 'bar');
294
+ <span class='line'>287</span> *
295
+ <span class='line'>288</span> * foo.bar();
296
+ <span class='line'>289</span> *
297
+ <span class='line'>290</span> * expect(foo.bar.callCount).toEqual(1);
298
+ <span class='line'>291</span> *
299
+ <span class='line'>292</span> * foo.bar.reset();
300
+ <span class='line'>293</span> *
301
+ <span class='line'>294</span> * expect(foo.bar.callCount).toEqual(0);
302
+ <span class='line'>295</span> */</span><span class="WHIT">
303
+ <span class='line'>296</span> </span><span class="NAME">jasmine.Spy.prototype.reset</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
304
+ <span class='line'>297</span> </span><span class="WHIT"> </span><span class="NAME">this.wasCalled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
305
+ <span class='line'>298</span> </span><span class="WHIT"> </span><span class="NAME">this.callCount</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
306
+ <span class='line'>299</span> </span><span class="WHIT"> </span><span class="NAME">this.argsForCall</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
307
+ <span class='line'>300</span> </span><span class="WHIT"> </span><span class="NAME">this.calls</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
308
+ <span class='line'>301</span> </span><span class="WHIT"> </span><span class="NAME">this.mostRecentCall</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
309
+ <span class='line'>302</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
310
+ <span class='line'>303</span>
311
+ <span class='line'>304</span> </span><span class="NAME">jasmine.createSpy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
312
+ <span class='line'>305</span>
313
+ <span class='line'>306</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">spyObj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
314
+ <span class='line'>307</span> </span><span class="WHIT"> </span><span class="NAME">spyObj.wasCalled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
315
+ <span class='line'>308</span> </span><span class="WHIT"> </span><span class="NAME">spyObj.callCount</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
316
+ <span class='line'>309</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">args</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jasmine.util.argsToArray</span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
317
+ <span class='line'>310</span> </span><span class="WHIT"> </span><span class="NAME">spyObj.mostRecentCall.object</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
318
+ <span class='line'>311</span> </span><span class="WHIT"> </span><span class="NAME">spyObj.mostRecentCall.args</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args</span><span class="PUNC">;</span><span class="WHIT">
319
+ <span class='line'>312</span> </span><span class="WHIT"> </span><span class="NAME">spyObj.argsForCall.push</span><span class="PUNC">(</span><span class="NAME">args</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
320
+ <span class='line'>313</span> </span><span class="WHIT"> </span><span class="NAME">spyObj.calls.push</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="NAME">object</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">args</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">args</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
321
+ <span class='line'>314</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">spyObj.plan.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
322
+ <span class='line'>315</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
323
+ <span class='line'>316</span>
324
+ <span class='line'>317</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">spy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">jasmine.Spy</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
325
+ <span class='line'>318</span>
326
+ <span class='line'>319</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">spy</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
327
+ <span class='line'>320</span> </span><span class="WHIT"> </span><span class="NAME">spyObj</span><span class="PUNC">[</span><span class="NAME">prop</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">spy</span><span class="PUNC">[</span><span class="NAME">prop</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
328
+ <span class='line'>321</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
329
+ <span class='line'>322</span>
330
+ <span class='line'>323</span> </span><span class="WHIT"> </span><span class="NAME">spyObj.reset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
331
+ <span class='line'>324</span>
332
+ <span class='line'>325</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">spyObj</span><span class="PUNC">;</span><span class="WHIT">
333
+ <span class='line'>326</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
334
+ <span class='line'>327</span>
335
+ <span class='line'>328</span> </span><span class="COMM">/**
336
+ <span class='line'>329</span> * Creates a more complicated spy: an Object that has every property a function that is a spy. Used for stubbing something
337
+ <span class='line'>330</span> * large in one call.
338
+ <span class='line'>331</span> *
339
+ <span class='line'>332</span> * @param {String} baseName name of spy class
340
+ <span class='line'>333</span> * @param {Array} methodNames array of names of methods to make spies
341
+ <span class='line'>334</span> */</span><span class="WHIT">
342
+ <span class='line'>335</span> </span><span class="NAME">jasmine.createSpyObj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">baseName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">methodNames</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
343
+ <span class='line'>336</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
344
+ <span class='line'>337</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">methodNames.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
345
+ <span class='line'>338</span> </span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">[</span><span class="NAME">methodNames</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">jasmine.createSpy</span><span class="PUNC">(</span><span class="NAME">baseName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">methodNames</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
346
+ <span class='line'>339</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
347
+ <span class='line'>340</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">;</span><span class="WHIT">
348
+ <span class='line'>341</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
349
+ <span class='line'>342</span>
350
+ <span class='line'>343</span> </span><span class="NAME">jasmine.log</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">message</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
351
+ <span class='line'>344</span> </span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">currentSpec.log</span><span class="PUNC">(</span><span class="NAME">message</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
352
+ <span class='line'>345</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
353
+ <span class='line'>346</span>
354
+ <span class='line'>347</span> </span><span class="COMM">/**
355
+ <span class='line'>348</span> * Function that installs a spy on an existing object's method name. Used within a Spec to create a spy.
356
+ <span class='line'>349</span> *
357
+ <span class='line'>350</span> * @example
358
+ <span class='line'>351</span> * // spy example
359
+ <span class='line'>352</span> * var foo = {
360
+ <span class='line'>353</span> * not: function(bool) { return !bool; }
361
+ <span class='line'>354</span> * }
362
+ <span class='line'>355</span> * spyOn(foo, 'not'); // actual foo.not will not be called, execution stops
363
+ <span class='line'>356</span> *
364
+ <span class='line'>357</span> * @see jasmine.createSpy
365
+ <span class='line'>358</span> * @param obj
366
+ <span class='line'>359</span> * @param methodName
367
+ <span class='line'>360</span> * @returns a Jasmine spy that can be chained with all spy methods
368
+ <span class='line'>361</span> */</span><span class="WHIT">
369
+ <span class='line'>362</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">spyOn</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">methodName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ignore</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
370
+ <span class='line'>363</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">currentSpec.spyOn</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">methodName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ignore</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
371
+ <span class='line'>364</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
372
+ <span class='line'>365</span>
373
+ <span class='line'>366</span> </span><span class="COMM">/**
374
+ <span class='line'>367</span> * Creates a Jasmine spec that will be added to the current suite.
375
+ <span class='line'>368</span> *
376
+ <span class='line'>369</span> * // TODO: pending tests
377
+ <span class='line'>370</span> *
378
+ <span class='line'>371</span> * @example
379
+ <span class='line'>372</span> * it('should be true', function() {
380
+ <span class='line'>373</span> * expect(true).toEqual(true);
381
+ <span class='line'>374</span> * });
382
+ <span class='line'>375</span> *
383
+ <span class='line'>376</span> * @param {String} desc description of this specification
384
+ <span class='line'>377</span> * @param {Function} func defines the preconditions and expectations of the spec
385
+ <span class='line'>378</span> */</span><span class="WHIT">
386
+ <span class='line'>379</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">it</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">desc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
387
+ <span class='line'>380</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">it</span><span class="PUNC">(</span><span class="NAME">desc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
388
+ <span class='line'>381</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
389
+ <span class='line'>382</span>
390
+ <span class='line'>383</span> </span><span class="COMM">/**
391
+ <span class='line'>384</span> * Creates a &lt;em>disabled&lt;/em> Jasmine spec.
392
+ <span class='line'>385</span> *
393
+ <span class='line'>386</span> * A convenience method that allows existing specs to be disabled temporarily during development.
394
+ <span class='line'>387</span> *
395
+ <span class='line'>388</span> * @param {String} desc description of this specification
396
+ <span class='line'>389</span> * @param {Function} func defines the preconditions and expectations of the spec
397
+ <span class='line'>390</span> */</span><span class="WHIT">
398
+ <span class='line'>391</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">xit</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">desc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
399
+ <span class='line'>392</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">xit</span><span class="PUNC">(</span><span class="NAME">desc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
400
+ <span class='line'>393</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
401
+ <span class='line'>394</span>
402
+ <span class='line'>395</span> </span><span class="COMM">/**
403
+ <span class='line'>396</span> * Starts a chain for a Jasmine expectation.
404
+ <span class='line'>397</span> *
405
+ <span class='line'>398</span> * It is passed an Object that is the actual value and should chain to one of the many
406
+ <span class='line'>399</span> * jasmine.Matchers functions.
407
+ <span class='line'>400</span> *
408
+ <span class='line'>401</span> * @param {Object} actual Actual value to test against and expected value
409
+ <span class='line'>402</span> */</span><span class="WHIT">
410
+ <span class='line'>403</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">expect</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">actual</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
411
+ <span class='line'>404</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">currentSpec.expect</span><span class="PUNC">(</span><span class="NAME">actual</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
412
+ <span class='line'>405</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
413
+ <span class='line'>406</span>
414
+ <span class='line'>407</span> </span><span class="COMM">/**
415
+ <span class='line'>408</span> * Defines part of a jasmine spec. Used in cominbination with waits or waitsFor in asynchrnous specs.
416
+ <span class='line'>409</span> *
417
+ <span class='line'>410</span> * @param {Function} func Function that defines part of a jasmine spec.
418
+ <span class='line'>411</span> */</span><span class="WHIT">
419
+ <span class='line'>412</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">runs</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">func</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
420
+ <span class='line'>413</span> </span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">currentSpec.runs</span><span class="PUNC">(</span><span class="NAME">func</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
421
+ <span class='line'>414</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
422
+ <span class='line'>415</span>
423
+ <span class='line'>416</span> </span><span class="COMM">/**
424
+ <span class='line'>417</span> * Waits for a timeout before moving to the next runs()-defined block.
425
+ <span class='line'>418</span> * @param {Number} timeout
426
+ <span class='line'>419</span> */</span><span class="WHIT">
427
+ <span class='line'>420</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">waits</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">timeout</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
428
+ <span class='line'>421</span> </span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">currentSpec.waits</span><span class="PUNC">(</span><span class="NAME">timeout</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
429
+ <span class='line'>422</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
430
+ <span class='line'>423</span>
431
+ <span class='line'>424</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">anticipate</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">number</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
432
+ <span class='line'>425</span> </span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">currentSpec.anticipate</span><span class="PUNC">(</span><span class="NAME">number</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
433
+ <span class='line'>426</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
434
+ <span class='line'>427</span>
435
+ <span class='line'>428</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">incomplete</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
436
+ <span class='line'>429</span> </span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">currentSpec.stop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
437
+ <span class='line'>430</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
438
+ <span class='line'>431</span>
439
+ <span class='line'>432</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">complete</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
440
+ <span class='line'>433</span> </span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">currentSpec.start</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
441
+ <span class='line'>434</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
442
+ <span class='line'>435</span>
443
+ <span class='line'>436</span> </span><span class="COMM">/**
444
+ <span class='line'>437</span> * Waits for the latchFunction to return true before proceeding to the next runs()-defined block.
445
+ <span class='line'>438</span> *
446
+ <span class='line'>439</span> * @param {Number} timeout
447
+ <span class='line'>440</span> * @param {Function} latchFunction
448
+ <span class='line'>441</span> * @param {String} message
449
+ <span class='line'>442</span> */</span><span class="WHIT">
450
+ <span class='line'>443</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">waitsFor</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">timeout</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">latchFunction</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">message</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
451
+ <span class='line'>444</span> </span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">currentSpec.waitsFor</span><span class="PUNC">(</span><span class="NAME">timeout</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">latchFunction</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">message</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
452
+ <span class='line'>445</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
453
+ <span class='line'>446</span>
454
+ <span class='line'>447</span> </span><span class="COMM">/**
455
+ <span class='line'>448</span> * A function that is called before each spec in a suite.
456
+ <span class='line'>449</span> *
457
+ <span class='line'>450</span> * Used for spec setup, including validating assumptions.
458
+ <span class='line'>451</span> *
459
+ <span class='line'>452</span> * @param {Function} beforeEachFunction
460
+ <span class='line'>453</span> */</span><span class="WHIT">
461
+ <span class='line'>454</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">beforeEach</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">beforeEachFunction</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
462
+ <span class='line'>455</span> </span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">beforeEach</span><span class="PUNC">(</span><span class="NAME">beforeEachFunction</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
463
+ <span class='line'>456</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
464
+ <span class='line'>457</span>
465
+ <span class='line'>458</span> </span><span class="COMM">/**
466
+ <span class='line'>459</span> * A function that is called after each spec in a suite.
467
+ <span class='line'>460</span> *
468
+ <span class='line'>461</span> * Used for restoring any state that is hijacked during spec execution.
469
+ <span class='line'>462</span> *
470
+ <span class='line'>463</span> * @param {Function} afterEachFunction
471
+ <span class='line'>464</span> */</span><span class="WHIT">
472
+ <span class='line'>465</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">afterEach</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">afterEachFunction</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
473
+ <span class='line'>466</span> </span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">afterEach</span><span class="PUNC">(</span><span class="NAME">afterEachFunction</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
474
+ <span class='line'>467</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
475
+ <span class='line'>468</span>
476
+ <span class='line'>469</span> </span><span class="COMM">/**
477
+ <span class='line'>470</span> * Defines a suite of specifications.
478
+ <span class='line'>471</span> *
479
+ <span class='line'>472</span> * Stores the description and all defined specs in the Jasmine environment as one suite of specs. Variables declared
480
+ <span class='line'>473</span> * are accessible by calls to beforeEach, it, and afterEach. Describe blocks can be nested, allowing for specialization
481
+ <span class='line'>474</span> * of setup in some tests.
482
+ <span class='line'>475</span> *
483
+ <span class='line'>476</span> * @example
484
+ <span class='line'>477</span> * // TODO: a simple suite
485
+ <span class='line'>478</span> *
486
+ <span class='line'>479</span> * // TODO: a simple suite with a nested describe block
487
+ <span class='line'>480</span> *
488
+ <span class='line'>481</span> * @param {String} description A string, usually the class under test.
489
+ <span class='line'>482</span> * @param {Function} specDefinitions function that defines several specs.
490
+ <span class='line'>483</span> */</span><span class="WHIT">
491
+ <span class='line'>484</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">describe</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">description</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">specDefinitions</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
492
+ <span class='line'>485</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">describe</span><span class="PUNC">(</span><span class="NAME">description</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">specDefinitions</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
493
+ <span class='line'>486</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
494
+ <span class='line'>487</span>
495
+ <span class='line'>488</span> </span><span class="COMM">/**
496
+ <span class='line'>489</span> * Disables a suite of specifications. Used to disable some suites in a file, or files, temporarily during development.
497
+ <span class='line'>490</span> *
498
+ <span class='line'>491</span> * @param {String} description A string, usually the class under test.
499
+ <span class='line'>492</span> * @param {Function} specDefinitions function that defines several specs.
500
+ <span class='line'>493</span> */</span><span class="WHIT">
501
+ <span class='line'>494</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">xdescribe</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">description</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">specDefinitions</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
502
+ <span class='line'>495</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jasmine.getEnv</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">xdescribe</span><span class="PUNC">(</span><span class="NAME">description</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">specDefinitions</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
503
+ <span class='line'>496</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
504
+ <span class='line'>497</span>
505
+ <span class='line'>498</span>
506
+ <span class='line'>499</span> </span><span class="NAME">jasmine.XmlHttpRequest</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">XMLHttpRequest</span><span class="PUNC">;</span><span class="WHIT">
507
+ <span class='line'>500</span>
508
+ <span class='line'>501</span> </span><span class="COMM">// Provide the XMLHttpRequest class for IE 5.x-6.x:</span><span class="WHIT">
509
+ <span class='line'>502</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">XMLHttpRequest</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"undefined"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">jasmine.XmlHttpRequest</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
510
+ <span class='line'>503</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
511
+ <span class='line'>504</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ActiveXObject</span><span class="PUNC">(</span><span class="STRN">"Msxml2.XMLHTTP.6.0"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
512
+ <span class='line'>505</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
513
+ <span class='line'>506</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
514
+ <span class='line'>507</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
515
+ <span class='line'>508</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ActiveXObject</span><span class="PUNC">(</span><span class="STRN">"Msxml2.XMLHTTP.3.0"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
516
+ <span class='line'>509</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
517
+ <span class='line'>510</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
518
+ <span class='line'>511</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
519
+ <span class='line'>512</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ActiveXObject</span><span class="PUNC">(</span><span class="STRN">"Msxml2.XMLHTTP"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
520
+ <span class='line'>513</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
521
+ <span class='line'>514</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
522
+ <span class='line'>515</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
523
+ <span class='line'>516</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ActiveXObject</span><span class="PUNC">(</span><span class="STRN">"Microsoft.XMLHTTP"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
524
+ <span class='line'>517</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
525
+ <span class='line'>518</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
526
+ <span class='line'>519</span> </span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="STRN">"This browser does not support XMLHttpRequest."</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
527
+ <span class='line'>520</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
528
+ <span class='line'>521</span>
529
+ <span class='line'>522</span> </span><span class="COMM">/**
530
+ <span class='line'>523</span> * Adds suite files to an HTML document so that they are executed, thus adding them to the current
531
+ <span class='line'>524</span> * Jasmine environment.
532
+ <span class='line'>525</span> *
533
+ <span class='line'>526</span> * @param {String} url path to the file to include
534
+ <span class='line'>527</span> * @param {Boolean} opt_global
535
+ <span class='line'>528</span> */</span><span class="WHIT">
536
+ <span class='line'>529</span>
537
+ <span class='line'>530</span> </span><span class="NAME">jasmine._eval</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">__jasmine__</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
538
+ <span class='line'>531</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">eval</span><span class="PUNC">(</span><span class="NAME">__jasmine__</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
539
+ <span class='line'>532</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
540
+ <span class='line'>533</span>
541
+ <span class='line'>534</span> </span><span class="NAME">jasmine.include</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">url</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">opt_global</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
542
+ <span class='line'>535</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">opt_global</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
543
+ <span class='line'>536</span> </span><span class="WHIT"> </span><span class="NAME">document.write</span><span class="PUNC">(</span><span class="STRN">'&lt;script type="text/javascript" src="'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'">&lt;/'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'script>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
544
+ <span class='line'>537</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
545
+ <span class='line'>538</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">xhr</span><span class="PUNC">;</span><span class="WHIT">
546
+ <span class='line'>539</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
547
+ <span class='line'>540</span> </span><span class="WHIT"> </span><span class="NAME">xhr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">jasmine.XmlHttpRequest</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
548
+ <span class='line'>541</span> </span><span class="WHIT"> </span><span class="NAME">xhr.open</span><span class="PUNC">(</span><span class="STRN">"GET"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">url</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
549
+ <span class='line'>542</span> </span><span class="WHIT"> </span><span class="NAME">xhr.send</span><span class="PUNC">(</span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
550
+ <span class='line'>543</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
551
+ <span class='line'>544</span> </span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="STRN">"couldn't fetch "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">": "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
552
+ <span class='line'>545</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
553
+ <span class='line'>546</span>
554
+ <span class='line'>547</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">jasmine._eval</span><span class="PUNC">(</span><span class="NAME">xhr.responseText</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
555
+ <span class='line'>548</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
556
+ <span class='line'>549</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
557
+ <span class='line'>550</span> </span></pre></body></html>