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