smparkes-jazrb 0.0.9 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +2 -0
- data/bin/jazrb +46 -14
- data/doc/jasmine/files.html +165 -11
- data/doc/jasmine/index.html +5 -13
- data/doc/jasmine/symbols/_global_.html +145 -19
- data/doc/jasmine/symbols/jasmine.Block.html +72 -6
- data/doc/jasmine/symbols/jasmine.Clock.html +678 -0
- data/doc/jasmine/symbols/jasmine.Env.html +632 -16
- data/doc/jasmine/symbols/jasmine.EnvjsReporter.html +1 -1
- data/doc/jasmine/symbols/jasmine.JsApiReporter.html +500 -6
- data/doc/jasmine/symbols/jasmine.Matchers.html +228 -9
- data/doc/jasmine/symbols/jasmine.MultiReporter.html +72 -6
- data/doc/jasmine/symbols/jasmine.NestedResults.html +5 -7
- data/doc/jasmine/symbols/jasmine.Reporter.html +252 -6
- data/doc/jasmine/symbols/jasmine.Runner.html +377 -6
- data/doc/jasmine/symbols/jasmine.Spec.html +972 -8
- data/doc/jasmine/symbols/jasmine.Spy.html +6 -8
- data/doc/jasmine/symbols/jasmine.Suite.html +354 -6
- data/doc/jasmine/symbols/jasmine.XMLReporter.html +1 -1
- data/doc/jasmine/symbols/jasmine.html +571 -18
- data/doc/jasmine/symbols/jasmine.util.html +213 -6
- data/doc/jasmine/symbols/src/src_Block.js.html +29 -0
- data/doc/jasmine/symbols/src/src_Env.js.html +232 -0
- data/doc/jasmine/symbols/src/src_JsApiReporter.js.html +110 -0
- data/doc/jasmine/symbols/src/src_Matchers.js.html +399 -0
- data/doc/jasmine/symbols/src/src_MultiReporter.js.html +36 -0
- data/doc/jasmine/symbols/src/src_NestedResults.js.html +88 -0
- data/doc/jasmine/symbols/src/src_PrettyPrinter.js.html +128 -0
- data/doc/jasmine/symbols/src/src_Queue.js.html +119 -0
- data/doc/jasmine/symbols/src/src_Reporter.js.html +35 -0
- data/doc/jasmine/symbols/src/src_Reporters.js.html +51 -0
- data/doc/jasmine/symbols/src/src_Runner.js.html +75 -0
- data/doc/jasmine/symbols/src/src_Spec.js.html +228 -0
- data/doc/jasmine/symbols/src/src_Suite.js.html +77 -0
- data/doc/jasmine/symbols/src/src_WaitsBlock.js.html +21 -0
- data/doc/jasmine/symbols/src/src_WaitsForBlock.js.html +45 -0
- data/doc/jasmine/symbols/src/src_base.js.html +557 -0
- data/doc/jasmine/symbols/src/src_mock-timeout.js.html +185 -0
- data/doc/jasmine/symbols/src/src_util.js.html +75 -0
- data/lib/jazrb/intro.js +32 -3
- data/lib/jazrb/jasmine/XMLReporter.js +36 -2
- data/lib/jazrb/jasmine/jasmine-0.10.0.js +73 -15
- data/lib/jazrb/jasmine/jasmine.js +73 -15
- data/lib/jazrb/options.rb +5 -0
- data/lib/jazrb/qintro.js +113 -0
- data/lib/jazrb/qoutro.js +3 -0
- data/lib/jazrb/qunit/qunit.css +17 -0
- data/lib/jazrb/qunit/qunit.js +1027 -0
- metadata +26 -7
- data/doc/jasmine/symbols/src/lib_consolex.js.html +0 -35
- data/doc/jasmine/symbols/src/lib_jasmine-0.10.0.js.html +0 -2302
- data/doc/jasmine/symbols/src/lib_jasmine-0.9.0.js.html +0 -2212
- data/doc/jasmine/symbols/src/lib_json2.js.html +0 -486
@@ -13,10 +13,10 @@ jasmine.unimplementedMethod_ = function() {
|
|
13
13
|
};
|
14
14
|
|
15
15
|
/**
|
16
|
-
*
|
16
|
+
* Default interval for event loop yields. Small values here may result in slow test running. Zero means no updates until all tests have completed.
|
17
17
|
*
|
18
18
|
*/
|
19
|
-
jasmine.
|
19
|
+
jasmine.DEFAULT_UPDATE_INTERVAL = 250;
|
20
20
|
|
21
21
|
/**
|
22
22
|
* Allows for bound functions to be comapred. Internal use only.
|
@@ -60,7 +60,8 @@ jasmine.ExpectationResult = function(params) {
|
|
60
60
|
this.details = params.details;
|
61
61
|
|
62
62
|
this.message = this.passed_ ? 'Passed.' : params.message;
|
63
|
-
this.trace = this.passed_ ? '' :
|
63
|
+
this.trace = this.passed_ ? '' :
|
64
|
+
( params.exception ? params.exception : new Error(this.message) );
|
64
65
|
};
|
65
66
|
|
66
67
|
jasmine.ExpectationResult.prototype.passed = function () {
|
@@ -177,7 +178,7 @@ jasmine.Spy = function(name) {
|
|
177
178
|
*/
|
178
179
|
this.isSpy = true;
|
179
180
|
/**
|
180
|
-
* The
|
181
|
+
* The actual function this spy stubs.
|
181
182
|
*/
|
182
183
|
this.plan = function() {
|
183
184
|
};
|
@@ -358,8 +359,8 @@ jasmine.log = function(message) {
|
|
358
359
|
* @param methodName
|
359
360
|
* @returns a Jasmine spy that can be chained with all spy methods
|
360
361
|
*/
|
361
|
-
var spyOn = function(obj, methodName) {
|
362
|
-
return jasmine.getEnv().currentSpec.spyOn(obj, methodName);
|
362
|
+
var spyOn = function(obj, methodName, ignore) {
|
363
|
+
return jasmine.getEnv().currentSpec.spyOn(obj, methodName, ignore);
|
363
364
|
};
|
364
365
|
|
365
366
|
/**
|
@@ -420,6 +421,18 @@ var waits = function(timeout) {
|
|
420
421
|
jasmine.getEnv().currentSpec.waits(timeout);
|
421
422
|
};
|
422
423
|
|
424
|
+
var anticipate = function(number) {
|
425
|
+
jasmine.getEnv().currentSpec.anticipate(number);
|
426
|
+
};
|
427
|
+
|
428
|
+
var incomplete = function() {
|
429
|
+
jasmine.getEnv().currentSpec.stop();
|
430
|
+
};
|
431
|
+
|
432
|
+
var complete = function() {
|
433
|
+
jasmine.getEnv().currentSpec.start();
|
434
|
+
};
|
435
|
+
|
423
436
|
/**
|
424
437
|
* Waits for the latchFunction to return true before proceeding to the next runs()-defined block.
|
425
438
|
*
|
@@ -539,7 +552,7 @@ jasmine.version_= {
|
|
539
552
|
"major": 0,
|
540
553
|
"minor": 10,
|
541
554
|
"build": 0,
|
542
|
-
"revision":
|
555
|
+
"revision": 1258603168
|
543
556
|
};
|
544
557
|
/**
|
545
558
|
* @namespace
|
@@ -547,13 +560,16 @@ jasmine.version_= {
|
|
547
560
|
jasmine.util = {};
|
548
561
|
|
549
562
|
/**
|
550
|
-
* Declare that a child class
|
563
|
+
* Declare that a child class inherit it's prototype from the parent class.
|
551
564
|
*
|
552
565
|
* @private
|
553
566
|
* @param {Function} childClass
|
554
567
|
* @param {Function} parentClass
|
555
568
|
*/
|
556
569
|
jasmine.util.inherit = function(childClass, parentClass) {
|
570
|
+
/**
|
571
|
+
* @private
|
572
|
+
*/
|
557
573
|
var subclass = function() {
|
558
574
|
};
|
559
575
|
subclass.prototype = parentClass.prototype;
|
@@ -617,7 +633,7 @@ jasmine.Env = function() {
|
|
617
633
|
|
618
634
|
this.reporter = new jasmine.MultiReporter();
|
619
635
|
|
620
|
-
this.updateInterval = jasmine.
|
636
|
+
this.updateInterval = jasmine.DEFAULT_UPDATE_INTERVAL
|
621
637
|
this.lastUpdate = 0;
|
622
638
|
this.specFilter = function() {
|
623
639
|
return true;
|
@@ -903,7 +919,7 @@ jasmine.JsApiReporter.prototype.suites = function() {
|
|
903
919
|
};
|
904
920
|
|
905
921
|
jasmine.JsApiReporter.prototype.summarize_ = function(suiteOrSpec) {
|
906
|
-
var isSuite = suiteOrSpec instanceof jasmine.Suite
|
922
|
+
var isSuite = suiteOrSpec instanceof jasmine.Suite;
|
907
923
|
var summary = {
|
908
924
|
id: suiteOrSpec.id,
|
909
925
|
name: suiteOrSpec.description,
|
@@ -984,7 +1000,7 @@ jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
|
|
984
1000
|
* @constructor
|
985
1001
|
* @param {jasmine.Env} env
|
986
1002
|
* @param actual
|
987
|
-
* @param {jasmine.
|
1003
|
+
* @param {jasmine.Spec} spec
|
988
1004
|
*/
|
989
1005
|
jasmine.Matchers = function(env, actual, spec) {
|
990
1006
|
this.env = env;
|
@@ -1605,6 +1621,7 @@ jasmine.Queue = function(env) {
|
|
1605
1621
|
this.running = false;
|
1606
1622
|
this.index = 0;
|
1607
1623
|
this.offset = 0;
|
1624
|
+
this._stopped = 0;
|
1608
1625
|
};
|
1609
1626
|
|
1610
1627
|
jasmine.Queue.prototype.addBefore = function(block) {
|
@@ -1626,6 +1643,18 @@ jasmine.Queue.prototype.start = function(onComplete) {
|
|
1626
1643
|
this.next_();
|
1627
1644
|
};
|
1628
1645
|
|
1646
|
+
jasmine.Queue.prototype._start = function() {
|
1647
|
+
var self = this;
|
1648
|
+
this._stopped--;
|
1649
|
+
if(this._stopped == 0){
|
1650
|
+
setTimeout(function(){self.next_();},0);
|
1651
|
+
}
|
1652
|
+
};
|
1653
|
+
|
1654
|
+
jasmine.Queue.prototype._stop = function() {
|
1655
|
+
this._stopped++;
|
1656
|
+
};
|
1657
|
+
|
1629
1658
|
jasmine.Queue.prototype.isRunning = function() {
|
1630
1659
|
return this.running;
|
1631
1660
|
};
|
@@ -1636,7 +1665,8 @@ jasmine.Queue.prototype.next_ = function() {
|
|
1636
1665
|
var self = this;
|
1637
1666
|
var goAgain = true;
|
1638
1667
|
|
1639
|
-
|
1668
|
+
// debug("stopped",this._stopped,self.index,self.blocks.length);
|
1669
|
+
while (goAgain && this._stopped <= 0) {
|
1640
1670
|
goAgain = false;
|
1641
1671
|
|
1642
1672
|
if (self.index < self.blocks.length) {
|
@@ -1649,6 +1679,9 @@ jasmine.Queue.prototype.next_ = function() {
|
|
1649
1679
|
return;
|
1650
1680
|
}
|
1651
1681
|
|
1682
|
+
if( self.blocks[self.index]._anticipate !== undefined ) {
|
1683
|
+
}
|
1684
|
+
|
1652
1685
|
self.offset = 0;
|
1653
1686
|
self.index++;
|
1654
1687
|
|
@@ -1693,13 +1726,23 @@ jasmine.Queue.prototype.results = function() {
|
|
1693
1726
|
};
|
1694
1727
|
|
1695
1728
|
|
1696
|
-
|
1729
|
+
/** JasmineReporters.reporter
|
1697
1730
|
* Base object that will get called whenever a Spec, Suite, or Runner is done. It is up to
|
1698
1731
|
* descendants of this object to do something with the results (see json_reporter.js)
|
1732
|
+
*
|
1733
|
+
* @deprecated
|
1699
1734
|
*/
|
1700
1735
|
jasmine.Reporters = {};
|
1701
1736
|
|
1737
|
+
/**
|
1738
|
+
* @deprecated
|
1739
|
+
* @param callbacks
|
1740
|
+
*/
|
1702
1741
|
jasmine.Reporters.reporter = function(callbacks) {
|
1742
|
+
/**
|
1743
|
+
* @deprecated
|
1744
|
+
* @param callbacks
|
1745
|
+
*/
|
1703
1746
|
var that = {
|
1704
1747
|
callbacks: callbacks || {},
|
1705
1748
|
|
@@ -1858,6 +1901,18 @@ jasmine.Spec.prototype.addToQueue = function (block) {
|
|
1858
1901
|
}
|
1859
1902
|
};
|
1860
1903
|
|
1904
|
+
jasmine.Spec.prototype.stop = function(){
|
1905
|
+
this.queue._stop();
|
1906
|
+
}
|
1907
|
+
|
1908
|
+
jasmine.Spec.prototype.start = function(){
|
1909
|
+
this.queue._start();
|
1910
|
+
}
|
1911
|
+
|
1912
|
+
jasmine.Spec.prototype.anticipate = function(number){
|
1913
|
+
this._anticipate = number;
|
1914
|
+
}
|
1915
|
+
|
1861
1916
|
jasmine.Spec.prototype.addMatcherResult = function(result) {
|
1862
1917
|
this.results_.addResult(result);
|
1863
1918
|
};
|
@@ -1881,7 +1936,8 @@ jasmine.Spec.prototype.waitsFor = function(timeout, latchFunction, timeoutMessag
|
|
1881
1936
|
jasmine.Spec.prototype.fail = function (e) {
|
1882
1937
|
var expectationResult = new jasmine.ExpectationResult({
|
1883
1938
|
passed: false,
|
1884
|
-
message: e ? jasmine.util.formatException(e) : 'Exception'
|
1939
|
+
message: e ? jasmine.util.formatException(e) : 'Exception',
|
1940
|
+
exception: e
|
1885
1941
|
});
|
1886
1942
|
this.results_.addResult(expectationResult);
|
1887
1943
|
};
|
@@ -2209,7 +2265,9 @@ jasmine.FakeTimer.prototype.scheduleFunction = function(timeoutKey, funcToCall,
|
|
2209
2265
|
};
|
2210
2266
|
};
|
2211
2267
|
|
2212
|
-
|
2268
|
+
/**
|
2269
|
+
* @namespace
|
2270
|
+
*/
|
2213
2271
|
jasmine.Clock = {
|
2214
2272
|
defaultFakeTimer: new jasmine.FakeTimer(),
|
2215
2273
|
|
@@ -13,10 +13,10 @@ jasmine.unimplementedMethod_ = function() {
|
|
13
13
|
};
|
14
14
|
|
15
15
|
/**
|
16
|
-
*
|
16
|
+
* Default interval for event loop yields. Small values here may result in slow test running. Zero means no updates until all tests have completed.
|
17
17
|
*
|
18
18
|
*/
|
19
|
-
jasmine.
|
19
|
+
jasmine.DEFAULT_UPDATE_INTERVAL = 250;
|
20
20
|
|
21
21
|
/**
|
22
22
|
* Allows for bound functions to be comapred. Internal use only.
|
@@ -60,7 +60,8 @@ jasmine.ExpectationResult = function(params) {
|
|
60
60
|
this.details = params.details;
|
61
61
|
|
62
62
|
this.message = this.passed_ ? 'Passed.' : params.message;
|
63
|
-
this.trace = this.passed_ ? '' :
|
63
|
+
this.trace = this.passed_ ? '' :
|
64
|
+
( params.exception ? params.exception : new Error(this.message) );
|
64
65
|
};
|
65
66
|
|
66
67
|
jasmine.ExpectationResult.prototype.passed = function () {
|
@@ -177,7 +178,7 @@ jasmine.Spy = function(name) {
|
|
177
178
|
*/
|
178
179
|
this.isSpy = true;
|
179
180
|
/**
|
180
|
-
* The
|
181
|
+
* The actual function this spy stubs.
|
181
182
|
*/
|
182
183
|
this.plan = function() {
|
183
184
|
};
|
@@ -358,8 +359,8 @@ jasmine.log = function(message) {
|
|
358
359
|
* @param methodName
|
359
360
|
* @returns a Jasmine spy that can be chained with all spy methods
|
360
361
|
*/
|
361
|
-
var spyOn = function(obj, methodName) {
|
362
|
-
return jasmine.getEnv().currentSpec.spyOn(obj, methodName);
|
362
|
+
var spyOn = function(obj, methodName, ignore) {
|
363
|
+
return jasmine.getEnv().currentSpec.spyOn(obj, methodName, ignore);
|
363
364
|
};
|
364
365
|
|
365
366
|
/**
|
@@ -420,6 +421,18 @@ var waits = function(timeout) {
|
|
420
421
|
jasmine.getEnv().currentSpec.waits(timeout);
|
421
422
|
};
|
422
423
|
|
424
|
+
var anticipate = function(number) {
|
425
|
+
jasmine.getEnv().currentSpec.anticipate(number);
|
426
|
+
};
|
427
|
+
|
428
|
+
var incomplete = function() {
|
429
|
+
jasmine.getEnv().currentSpec.stop();
|
430
|
+
};
|
431
|
+
|
432
|
+
var complete = function() {
|
433
|
+
jasmine.getEnv().currentSpec.start();
|
434
|
+
};
|
435
|
+
|
423
436
|
/**
|
424
437
|
* Waits for the latchFunction to return true before proceeding to the next runs()-defined block.
|
425
438
|
*
|
@@ -539,7 +552,7 @@ jasmine.version_= {
|
|
539
552
|
"major": 0,
|
540
553
|
"minor": 10,
|
541
554
|
"build": 0,
|
542
|
-
"revision":
|
555
|
+
"revision": 1258603168
|
543
556
|
};
|
544
557
|
/**
|
545
558
|
* @namespace
|
@@ -547,13 +560,16 @@ jasmine.version_= {
|
|
547
560
|
jasmine.util = {};
|
548
561
|
|
549
562
|
/**
|
550
|
-
* Declare that a child class
|
563
|
+
* Declare that a child class inherit it's prototype from the parent class.
|
551
564
|
*
|
552
565
|
* @private
|
553
566
|
* @param {Function} childClass
|
554
567
|
* @param {Function} parentClass
|
555
568
|
*/
|
556
569
|
jasmine.util.inherit = function(childClass, parentClass) {
|
570
|
+
/**
|
571
|
+
* @private
|
572
|
+
*/
|
557
573
|
var subclass = function() {
|
558
574
|
};
|
559
575
|
subclass.prototype = parentClass.prototype;
|
@@ -617,7 +633,7 @@ jasmine.Env = function() {
|
|
617
633
|
|
618
634
|
this.reporter = new jasmine.MultiReporter();
|
619
635
|
|
620
|
-
this.updateInterval = jasmine.
|
636
|
+
this.updateInterval = jasmine.DEFAULT_UPDATE_INTERVAL
|
621
637
|
this.lastUpdate = 0;
|
622
638
|
this.specFilter = function() {
|
623
639
|
return true;
|
@@ -903,7 +919,7 @@ jasmine.JsApiReporter.prototype.suites = function() {
|
|
903
919
|
};
|
904
920
|
|
905
921
|
jasmine.JsApiReporter.prototype.summarize_ = function(suiteOrSpec) {
|
906
|
-
var isSuite = suiteOrSpec instanceof jasmine.Suite
|
922
|
+
var isSuite = suiteOrSpec instanceof jasmine.Suite;
|
907
923
|
var summary = {
|
908
924
|
id: suiteOrSpec.id,
|
909
925
|
name: suiteOrSpec.description,
|
@@ -984,7 +1000,7 @@ jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
|
|
984
1000
|
* @constructor
|
985
1001
|
* @param {jasmine.Env} env
|
986
1002
|
* @param actual
|
987
|
-
* @param {jasmine.
|
1003
|
+
* @param {jasmine.Spec} spec
|
988
1004
|
*/
|
989
1005
|
jasmine.Matchers = function(env, actual, spec) {
|
990
1006
|
this.env = env;
|
@@ -1605,6 +1621,7 @@ jasmine.Queue = function(env) {
|
|
1605
1621
|
this.running = false;
|
1606
1622
|
this.index = 0;
|
1607
1623
|
this.offset = 0;
|
1624
|
+
this._stopped = 0;
|
1608
1625
|
};
|
1609
1626
|
|
1610
1627
|
jasmine.Queue.prototype.addBefore = function(block) {
|
@@ -1626,6 +1643,18 @@ jasmine.Queue.prototype.start = function(onComplete) {
|
|
1626
1643
|
this.next_();
|
1627
1644
|
};
|
1628
1645
|
|
1646
|
+
jasmine.Queue.prototype._start = function() {
|
1647
|
+
var self = this;
|
1648
|
+
this._stopped--;
|
1649
|
+
if(this._stopped == 0){
|
1650
|
+
setTimeout(function(){self.next_();},0);
|
1651
|
+
}
|
1652
|
+
};
|
1653
|
+
|
1654
|
+
jasmine.Queue.prototype._stop = function() {
|
1655
|
+
this._stopped++;
|
1656
|
+
};
|
1657
|
+
|
1629
1658
|
jasmine.Queue.prototype.isRunning = function() {
|
1630
1659
|
return this.running;
|
1631
1660
|
};
|
@@ -1636,7 +1665,8 @@ jasmine.Queue.prototype.next_ = function() {
|
|
1636
1665
|
var self = this;
|
1637
1666
|
var goAgain = true;
|
1638
1667
|
|
1639
|
-
|
1668
|
+
// debug("stopped",this._stopped,self.index,self.blocks.length);
|
1669
|
+
while (goAgain && this._stopped <= 0) {
|
1640
1670
|
goAgain = false;
|
1641
1671
|
|
1642
1672
|
if (self.index < self.blocks.length) {
|
@@ -1649,6 +1679,9 @@ jasmine.Queue.prototype.next_ = function() {
|
|
1649
1679
|
return;
|
1650
1680
|
}
|
1651
1681
|
|
1682
|
+
if( self.blocks[self.index]._anticipate !== undefined ) {
|
1683
|
+
}
|
1684
|
+
|
1652
1685
|
self.offset = 0;
|
1653
1686
|
self.index++;
|
1654
1687
|
|
@@ -1693,13 +1726,23 @@ jasmine.Queue.prototype.results = function() {
|
|
1693
1726
|
};
|
1694
1727
|
|
1695
1728
|
|
1696
|
-
|
1729
|
+
/** JasmineReporters.reporter
|
1697
1730
|
* Base object that will get called whenever a Spec, Suite, or Runner is done. It is up to
|
1698
1731
|
* descendants of this object to do something with the results (see json_reporter.js)
|
1732
|
+
*
|
1733
|
+
* @deprecated
|
1699
1734
|
*/
|
1700
1735
|
jasmine.Reporters = {};
|
1701
1736
|
|
1737
|
+
/**
|
1738
|
+
* @deprecated
|
1739
|
+
* @param callbacks
|
1740
|
+
*/
|
1702
1741
|
jasmine.Reporters.reporter = function(callbacks) {
|
1742
|
+
/**
|
1743
|
+
* @deprecated
|
1744
|
+
* @param callbacks
|
1745
|
+
*/
|
1703
1746
|
var that = {
|
1704
1747
|
callbacks: callbacks || {},
|
1705
1748
|
|
@@ -1858,6 +1901,18 @@ jasmine.Spec.prototype.addToQueue = function (block) {
|
|
1858
1901
|
}
|
1859
1902
|
};
|
1860
1903
|
|
1904
|
+
jasmine.Spec.prototype.stop = function(){
|
1905
|
+
this.queue._stop();
|
1906
|
+
}
|
1907
|
+
|
1908
|
+
jasmine.Spec.prototype.start = function(){
|
1909
|
+
this.queue._start();
|
1910
|
+
}
|
1911
|
+
|
1912
|
+
jasmine.Spec.prototype.anticipate = function(number){
|
1913
|
+
this._anticipate = number;
|
1914
|
+
}
|
1915
|
+
|
1861
1916
|
jasmine.Spec.prototype.addMatcherResult = function(result) {
|
1862
1917
|
this.results_.addResult(result);
|
1863
1918
|
};
|
@@ -1881,7 +1936,8 @@ jasmine.Spec.prototype.waitsFor = function(timeout, latchFunction, timeoutMessag
|
|
1881
1936
|
jasmine.Spec.prototype.fail = function (e) {
|
1882
1937
|
var expectationResult = new jasmine.ExpectationResult({
|
1883
1938
|
passed: false,
|
1884
|
-
message: e ? jasmine.util.formatException(e) : 'Exception'
|
1939
|
+
message: e ? jasmine.util.formatException(e) : 'Exception',
|
1940
|
+
exception: e
|
1885
1941
|
});
|
1886
1942
|
this.results_.addResult(expectationResult);
|
1887
1943
|
};
|
@@ -2209,7 +2265,9 @@ jasmine.FakeTimer.prototype.scheduleFunction = function(timeoutKey, funcToCall,
|
|
2209
2265
|
};
|
2210
2266
|
};
|
2211
2267
|
|
2212
|
-
|
2268
|
+
/**
|
2269
|
+
* @namespace
|
2270
|
+
*/
|
2213
2271
|
jasmine.Clock = {
|
2214
2272
|
defaultFakeTimer: new jasmine.FakeTimer(),
|
2215
2273
|
|
data/lib/jazrb/options.rb
CHANGED
@@ -3,6 +3,7 @@ require 'optparse'
|
|
3
3
|
$jazrb_verbose = false
|
4
4
|
$jazrb_xml = false
|
5
5
|
$jazrb_deps = nil
|
6
|
+
$jazrb_qunit = false
|
6
7
|
|
7
8
|
OptionParser.new do |o|
|
8
9
|
|
@@ -14,6 +15,10 @@ OptionParser.new do |o|
|
|
14
15
|
$jazrb_xml = true
|
15
16
|
end
|
16
17
|
|
18
|
+
o.on("-q","--qunit") do
|
19
|
+
$jazrb_qunit = true
|
20
|
+
end
|
21
|
+
|
17
22
|
o.on("--deps PATH") do |path|
|
18
23
|
$jazrb_deps = path
|
19
24
|
end
|
data/lib/jazrb/qintro.js
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
this.QUnit || load(Ruby.ENV["JAZRB_JS_PATH"]+"/qunit/qunit.js");
|
2
|
+
|
3
|
+
(function(){
|
4
|
+
|
5
|
+
var APOS = "'"; QUOTE = '"';
|
6
|
+
var ESCAPED_QUOTE = { };
|
7
|
+
ESCAPED_QUOTE[QUOTE] = '"';
|
8
|
+
ESCAPED_QUOTE[APOS] = ''';
|
9
|
+
|
10
|
+
function formatAttributes(attributes) {
|
11
|
+
var att_value;
|
12
|
+
var apos_pos, quot_pos;
|
13
|
+
var use_quote, escape, quote_to_escape;
|
14
|
+
var att_str;
|
15
|
+
var re;
|
16
|
+
var result = '';
|
17
|
+
|
18
|
+
for (var att in attributes) {
|
19
|
+
att_value = attributes[att] || "";
|
20
|
+
|
21
|
+
att_value = att_value.replace(/&/g, "&");
|
22
|
+
att_value = att_value.replace(/</g, "<");
|
23
|
+
att_value = att_value.replace(/>/g, ">");
|
24
|
+
|
25
|
+
// Find first quote marks if any
|
26
|
+
apos_pos = att_value.indexOf(APOS);
|
27
|
+
quot_pos = att_value.indexOf(QUOTE);
|
28
|
+
|
29
|
+
// Determine which quote type to use around
|
30
|
+
// the attribute value
|
31
|
+
if (apos_pos == -1 && quot_pos == -1) {
|
32
|
+
att_str = ' ' + att + "='" + att_value + "'";
|
33
|
+
result += att_str;
|
34
|
+
continue;
|
35
|
+
}
|
36
|
+
|
37
|
+
// Prefer the single quote unless forced to use double
|
38
|
+
if (quot_pos != -1 && quot_pos < apos_pos) {
|
39
|
+
use_quote = APOS;
|
40
|
+
}
|
41
|
+
else {
|
42
|
+
use_quote = QUOTE;
|
43
|
+
}
|
44
|
+
|
45
|
+
// Figure out which kind of quote to escape
|
46
|
+
// Use nice dictionary instead of yucky if-else nests
|
47
|
+
escape = ESCAPED_QUOTE[use_quote];
|
48
|
+
|
49
|
+
// Escape only the right kind of quote
|
50
|
+
re = new RegExp(use_quote,'g');
|
51
|
+
att_str = ' ' + att + '=' + use_quote +
|
52
|
+
att_value.replace(re, escape) + use_quote;
|
53
|
+
result += att_str;
|
54
|
+
}
|
55
|
+
return result;
|
56
|
+
};
|
57
|
+
|
58
|
+
|
59
|
+
var module;
|
60
|
+
var test;
|
61
|
+
|
62
|
+
var started = false;
|
63
|
+
|
64
|
+
QUnit.moduleStart = function(m,te) {
|
65
|
+
if(!started){
|
66
|
+
started = true;
|
67
|
+
print("<testsuites>");
|
68
|
+
}
|
69
|
+
if(module) {
|
70
|
+
print(" </testsuite>");
|
71
|
+
}
|
72
|
+
print(" <testsuite"+formatAttributes({name:m})+">");
|
73
|
+
module = m;
|
74
|
+
};
|
75
|
+
|
76
|
+
QUnit.testStart = function(t) {
|
77
|
+
test = t;
|
78
|
+
};
|
79
|
+
|
80
|
+
QUnit.log = function(r,m) {
|
81
|
+
var name = test + " : " + m;
|
82
|
+
var msg;
|
83
|
+
if (!r) {
|
84
|
+
var match = m.match(/(.*), (expected: .* result: .*)/);
|
85
|
+
if(match) {
|
86
|
+
name = match[1];
|
87
|
+
msg = match[2];
|
88
|
+
} else {
|
89
|
+
name = test;
|
90
|
+
msg = m;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
print(" <testcase"+formatAttributes({name:name})+">");
|
94
|
+
if(!r){
|
95
|
+
print(" <failure"+formatAttributes({message:msg})+">");
|
96
|
+
print(" </failure>");
|
97
|
+
}
|
98
|
+
print(" </testcase>");
|
99
|
+
// var s = ( r ? "PASS (" : "FAIL (" ) + ") " + test_string + m;
|
100
|
+
// print(s);
|
101
|
+
};
|
102
|
+
|
103
|
+
QUnit.done = function(f,t) {
|
104
|
+
// print((t-f) + " Passed, " + f + " Failed, " + t + " Total Tests" );
|
105
|
+
if(module){
|
106
|
+
print(" </testsuite>");
|
107
|
+
}
|
108
|
+
if(started) {
|
109
|
+
print("</testsuites>");
|
110
|
+
}
|
111
|
+
};
|
112
|
+
|
113
|
+
})(QUnit);
|
data/lib/jazrb/qoutro.js
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
h1#qunit-header { padding: 15px; font-size: large; background-color: #06b; color: white; font-family: 'trebuchet ms', verdana, arial; margin: 0; }
|
2
|
+
h1#qunit-header a { color: white; }
|
3
|
+
|
4
|
+
h2#qunit-banner { height: 2em; border-bottom: 1px solid white; background-color: #eee; margin: 0; font-family: 'trebuchet ms', verdana, arial; }
|
5
|
+
h2#qunit-banner.pass { background-color: green; }
|
6
|
+
h2#qunit-banner.fail { background-color: red; }
|
7
|
+
|
8
|
+
h2#qunit-userAgent { padding: 10px; background-color: #eee; color: black; margin: 0; font-size: small; font-weight: normal; font-family: 'trebuchet ms', verdana, arial; font-size: 10pt; }
|
9
|
+
|
10
|
+
div#qunit-testrunner-toolbar { background: #eee; border-top: 1px solid black; padding: 10px; font-family: 'trebuchet ms', verdana, arial; margin: 0; font-size: 10pt; }
|
11
|
+
|
12
|
+
ol#qunit-tests { font-family: 'trebuchet ms', verdana, arial; font-size: 10pt; }
|
13
|
+
ol#qunit-tests li strong { cursor:pointer; }
|
14
|
+
ol#qunit-tests .pass { color: green; }
|
15
|
+
ol#qunit-tests .fail { color: red; }
|
16
|
+
|
17
|
+
p#qunit-testresult { margin-left: 1em; font-size: 10pt; font-family: 'trebuchet ms', verdana, arial; }
|