| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 | define(["amber/boot", "amber_core/Kernel-Objects"], function($boot){"use strict";if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;$core.addPackage("NodeTestRunner");$core.packages["NodeTestRunner"].innerEval = function (expr) { return eval(expr); };$core.packages["NodeTestRunner"].transport = {"type":"amd","amdNamespace":"amber_devkit"};$core.addClass("NodeTestRunner", $globals.Object, [], "NodeTestRunner");$core.addMethod($core.method({selector: "main",protocol: "not yet classified",fn: function (){var self=this;//>>excludeStart("ctx", pragmas.excludeDebugContexts);return $core.withContext(function($ctx1) {//>>excludeEnd("ctx");self._runTestSuite();return self;//>>excludeStart("ctx", pragmas.excludeDebugContexts);}, function($ctx1) {$ctx1.fill(self,"main",{},$globals.NodeTestRunner.a$cls)});//>>excludeEnd("ctx");},//>>excludeStart("ide", pragmas.excludeIdeData);args: [],source: "main\x0a\x09self runTestSuite",referencedClasses: [],//>>excludeEnd("ide");messageSends: ["runTestSuite"]}),$globals.NodeTestRunner.a$cls);$core.addMethod($core.method({selector: "runTestSuite",protocol: "not yet classified",fn: function (){var self=this;var suite,worker;//>>excludeStart("ctx", pragmas.excludeDebugContexts);return $core.withContext(function($ctx1) {//>>excludeEnd("ctx");var $2,$1,$3,$9,$8,$12,$11,$10,$7,$6,$15,$14,$13,$5,$4,$17,$16,$19,$18,$26,$25,$24,$23,$22,$28,$27,$21,$20,$30,$29,$32,$31,$39,$38,$37,$36,$35,$34,$33;suite=$recv($globals.OrderedCollection)._new();$recv($recv($recv($globals.TestCase)._allSubclasses())._select_((function(each){//>>excludeStart("ctx", pragmas.excludeDebugContexts);return $core.withContext(function($ctx2) {//>>excludeEnd("ctx");return $recv($recv(each)._isAbstract())._not();//>>excludeStart("ctx", pragmas.excludeDebugContexts);}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});//>>excludeEnd("ctx");})))._do_((function(each){//>>excludeStart("ctx", pragmas.excludeDebugContexts);return $core.withContext(function($ctx2) {//>>excludeEnd("ctx");return $recv(suite)._addAll_($recv(each)._buildSuite());//>>excludeStart("ctx", pragmas.excludeDebugContexts);}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});//>>excludeEnd("ctx");}));worker=$recv($globals.TestSuiteRunner)._on_(suite);$recv($recv(worker)._announcer())._on_do_($globals.ResultAnnouncement,(function(ann){var result;//>>excludeStart("ctx", pragmas.excludeDebugContexts);return $core.withContext(function($ctx2) {//>>excludeEnd("ctx");result=$recv(ann)._result();result;$2=$recv(result)._runs();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["runs"]=1;//>>excludeEnd("ctx");$1=$recv($2).__eq($recv(result)._total());if($core.assert($1)){$3=console;$9=$recv($recv(result)._runs())._asString();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["asString"]=1;//>>excludeEnd("ctx");$8=$recv($9).__comma(" tests run, ");//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx[","]=5;//>>excludeEnd("ctx");$12=$recv(result)._failures();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["failures"]=1;//>>excludeEnd("ctx");$11=$recv($12)._size();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["size"]=1;//>>excludeEnd("ctx");$10=$recv($11)._asString();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["asString"]=2;//>>excludeEnd("ctx");$7=$recv($8).__comma($10);//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx[","]=4;//>>excludeEnd("ctx");$6=$recv($7).__comma(" failures, ");//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx[","]=3;//>>excludeEnd("ctx");$15=$recv(result)._errors();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["errors"]=1;//>>excludeEnd("ctx");$14=$recv($15)._size();$13=$recv($14)._asString();$5=$recv($6).__comma($13);//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx[","]=2;//>>excludeEnd("ctx");$4=$recv($5).__comma(" errors.");//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx[","]=1;//>>excludeEnd("ctx");$recv($3)._log_($4);$17=$recv(result)._failures();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["failures"]=2;//>>excludeEnd("ctx");$16=$recv($17)._isEmpty();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["isEmpty"]=1;//>>excludeEnd("ctx");if(!$core.assert($16)){$19=$recv(result)._failures();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["failures"]=3;//>>excludeEnd("ctx");$18=$recv($19)._first();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["first"]=1;//>>excludeEnd("ctx");$recv($18)._runCase();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["runCase"]=1;//>>excludeEnd("ctx");$26=$recv(result)._failures();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["failures"]=4;//>>excludeEnd("ctx");$25=$recv($26)._first();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["first"]=2;//>>excludeEnd("ctx");$24=$recv($25)._class();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["class"]=1;//>>excludeEnd("ctx");$23=$recv($24)._name();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["name"]=1;//>>excludeEnd("ctx");$22=$recv($23).__comma(" >> ");//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx[","]=8;//>>excludeEnd("ctx");$28=$recv($recv(result)._failures())._first();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["first"]=3;//>>excludeEnd("ctx");$27=$recv($28)._selector();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["selector"]=1;//>>excludeEnd("ctx");$21=$recv($22).__comma($27);//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx[","]=7;//>>excludeEnd("ctx");$20=$recv($21).__comma(" is failing!");//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx[","]=6;//>>excludeEnd("ctx");self._throw_($20);//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["throw:"]=1;//>>excludeEnd("ctx");}$30=$recv(result)._errors();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["errors"]=2;//>>excludeEnd("ctx");$29=$recv($30)._isEmpty();if(!$core.assert($29)){$32=$recv(result)._errors();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["errors"]=3;//>>excludeEnd("ctx");$31=$recv($32)._first();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["first"]=4;//>>excludeEnd("ctx");$recv($31)._runCase();$39=$recv(result)._errors();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["errors"]=4;//>>excludeEnd("ctx");$38=$recv($39)._first();//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx["first"]=5;//>>excludeEnd("ctx");$37=$recv($38)._class();$36=$recv($37)._name();$35=$recv($36).__comma(" >> ");$34=$recv($35).__comma($recv($recv($recv(result)._errors())._first())._selector());//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx[","]=10;//>>excludeEnd("ctx");$33=$recv($34).__comma(" has errors!");//>>excludeStart("ctx", pragmas.excludeDebugContexts);$ctx2.sendIdx[","]=9;//>>excludeEnd("ctx");return self._throw_($33);}}//>>excludeStart("ctx", pragmas.excludeDebugContexts);}, function($ctx2) {$ctx2.fillBlock({ann:ann,result:result},$ctx1,3)});//>>excludeEnd("ctx");}));$recv(worker)._run();return self;//>>excludeStart("ctx", pragmas.excludeDebugContexts);}, function($ctx1) {$ctx1.fill(self,"runTestSuite",{suite:suite,worker:worker},$globals.NodeTestRunner.a$cls)});//>>excludeEnd("ctx");},//>>excludeStart("ide", pragmas.excludeIdeData);args: [],source: "runTestSuite\x0a\x09| suite worker |\x0a\x0a\x09suite := OrderedCollection new.\x0a    (TestCase allSubclasses select: [ :each | each isAbstract not ])\x0a\x09do: [ :each | suite addAll: each buildSuite ].\x0a\x0a\x09worker := TestSuiteRunner on: suite.\x0a\x09worker announcer on: ResultAnnouncement do:\x0a\x09[ :ann | | result |\x0a    \x09result := ann result.\x0a        result runs = result total ifTrue: [\x0a\x09        console log: result runs asString, ' tests run, ', result failures size asString, ' failures, ', result errors size asString, ' errors.'.\x0a\x0a            result failures isEmpty ifFalse: [\x0a                result failures first runCase.\x0a                \x22the line above should throw, normally, but just in case I leave the line below\x22\x0a                self throw: result failures first class name, ' >> ', result failures first selector, ' is failing!' ].\x0a            result errors isEmpty ifFalse: [\x0a                result errors first runCase.\x0a                \x22the line above should throw, normally, but just in case I leave the line below\x22\x0a                self throw: result errors first class name, ' >> ', result errors first selector, ' has errors!' ].\x0a    ]].\x0a    worker run",referencedClasses: ["OrderedCollection", "TestCase", "TestSuiteRunner", "ResultAnnouncement"],//>>excludeEnd("ide");messageSends: ["new", "do:", "select:", "allSubclasses", "not", "isAbstract", "addAll:", "buildSuite", "on:", "on:do:", "announcer", "result", "ifTrue:", "=", "runs", "total", "log:", ",", "asString", "size", "failures", "errors", "ifFalse:", "isEmpty", "runCase", "first", "throw:", "name", "class", "selector", "run"]}),$globals.NodeTestRunner.a$cls);});
 |