SUnit-Tests.js 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945
  1. define(["amber/boot", "require", "amber_core/SUnit"], function($boot,requirejs){"use strict";
  2. var $core=$boot.api,nil=$boot.nilAsValue,$nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
  3. var $pkg = $core.addPackage("SUnit-Tests");
  4. $pkg.innerEval = function (expr) { return eval(expr); };
  5. $pkg.transport = {"type":"amd","amdNamespace":"amber_core"};
  6. $core.addClass("ExampleSetTest", $globals.TestCase, ["empty", "full"], "SUnit-Tests");
  7. //>>excludeStart("ide", pragmas.excludeIdeData);
  8. $globals.ExampleSetTest.comment="ExampleSetTest is taken from Pharo 1.4.\x0a\x0aTHe purpose of this class is to demonstrate a simple use case of the test framework.";
  9. //>>excludeEnd("ide");
  10. $core.addMethod(
  11. $core.method({
  12. selector: "setUp",
  13. protocol: "running",
  14. fn: function (){
  15. var self=this,$self=this;
  16. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  17. return $core.withContext(function($ctx1) {
  18. //>>excludeEnd("ctx");
  19. $self["@empty"]=$recv($globals.Set)._new();
  20. $self["@full"]=$recv($globals.Set)._with_with_((5),"abc");
  21. return self;
  22. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  23. }, function($ctx1) {$ctx1.fill(self,"setUp",{},$globals.ExampleSetTest)});
  24. //>>excludeEnd("ctx");
  25. },
  26. //>>excludeStart("ide", pragmas.excludeIdeData);
  27. args: [],
  28. source: "setUp\x0a\x09empty := Set new.\x0a\x09full := Set with: 5 with: #abc",
  29. referencedClasses: ["Set"],
  30. //>>excludeEnd("ide");
  31. messageSends: ["new", "with:with:"]
  32. }),
  33. $globals.ExampleSetTest);
  34. $core.addMethod(
  35. $core.method({
  36. selector: "testAdd",
  37. protocol: "tests",
  38. fn: function (){
  39. var self=this,$self=this;
  40. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  41. return $core.withContext(function($ctx1) {
  42. //>>excludeEnd("ctx");
  43. $recv($self["@empty"])._add_((5));
  44. $self._assert_($recv($self["@empty"])._includes_((5)));
  45. return self;
  46. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  47. }, function($ctx1) {$ctx1.fill(self,"testAdd",{},$globals.ExampleSetTest)});
  48. //>>excludeEnd("ctx");
  49. },
  50. //>>excludeStart("ide", pragmas.excludeIdeData);
  51. args: [],
  52. source: "testAdd\x0a\x09empty add: 5.\x0a\x09self assert: (empty includes: 5)",
  53. referencedClasses: [],
  54. //>>excludeEnd("ide");
  55. messageSends: ["add:", "assert:", "includes:"]
  56. }),
  57. $globals.ExampleSetTest);
  58. $core.addMethod(
  59. $core.method({
  60. selector: "testGrow",
  61. protocol: "tests",
  62. fn: function (){
  63. var self=this,$self=this;
  64. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  65. return $core.withContext(function($ctx1) {
  66. //>>excludeEnd("ctx");
  67. $recv($self["@empty"])._addAll_((1)._to_((100)));
  68. $self._assert_equals_($recv($self["@empty"])._size(),(100));
  69. return self;
  70. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  71. }, function($ctx1) {$ctx1.fill(self,"testGrow",{},$globals.ExampleSetTest)});
  72. //>>excludeEnd("ctx");
  73. },
  74. //>>excludeStart("ide", pragmas.excludeIdeData);
  75. args: [],
  76. source: "testGrow\x0a\x09empty addAll: (1 to: 100).\x0a\x09self assert: empty size equals: 100",
  77. referencedClasses: [],
  78. //>>excludeEnd("ide");
  79. messageSends: ["addAll:", "to:", "assert:equals:", "size"]
  80. }),
  81. $globals.ExampleSetTest);
  82. $core.addMethod(
  83. $core.method({
  84. selector: "testIllegal",
  85. protocol: "tests",
  86. fn: function (){
  87. var self=this,$self=this;
  88. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  89. return $core.withContext(function($ctx1) {
  90. //>>excludeEnd("ctx");
  91. $self._should_raise_((function(){
  92. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  93. return $core.withContext(function($ctx2) {
  94. //>>excludeEnd("ctx");
  95. return $recv($self["@empty"])._at_((5));
  96. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  97. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  98. //>>excludeEnd("ctx");
  99. }),$globals.Error);
  100. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  101. $ctx1.sendIdx["should:raise:"]=1;
  102. //>>excludeEnd("ctx");
  103. $self._should_raise_((function(){
  104. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  105. return $core.withContext(function($ctx2) {
  106. //>>excludeEnd("ctx");
  107. return $recv($self["@empty"])._at_put_((5),"abc");
  108. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  109. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
  110. //>>excludeEnd("ctx");
  111. }),$globals.Error);
  112. return self;
  113. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  114. }, function($ctx1) {$ctx1.fill(self,"testIllegal",{},$globals.ExampleSetTest)});
  115. //>>excludeEnd("ctx");
  116. },
  117. //>>excludeStart("ide", pragmas.excludeIdeData);
  118. args: [],
  119. source: "testIllegal\x0a\x09self\x0a\x09\x09should: [ empty at: 5 ]\x0a\x09\x09raise: Error.\x0a\x09self\x0a\x09\x09should: [ empty at: 5 put: #abc ]\x0a\x09\x09raise: Error",
  120. referencedClasses: ["Error"],
  121. //>>excludeEnd("ide");
  122. messageSends: ["should:raise:", "at:", "at:put:"]
  123. }),
  124. $globals.ExampleSetTest);
  125. $core.addMethod(
  126. $core.method({
  127. selector: "testIncludes",
  128. protocol: "tests",
  129. fn: function (){
  130. var self=this,$self=this;
  131. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  132. return $core.withContext(function($ctx1) {
  133. //>>excludeEnd("ctx");
  134. var $1;
  135. $1=$recv($self["@full"])._includes_((5));
  136. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  137. $ctx1.sendIdx["includes:"]=1;
  138. //>>excludeEnd("ctx");
  139. $self._assert_($1);
  140. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  141. $ctx1.sendIdx["assert:"]=1;
  142. //>>excludeEnd("ctx");
  143. $self._assert_($recv($self["@full"])._includes_("abc"));
  144. return self;
  145. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  146. }, function($ctx1) {$ctx1.fill(self,"testIncludes",{},$globals.ExampleSetTest)});
  147. //>>excludeEnd("ctx");
  148. },
  149. //>>excludeStart("ide", pragmas.excludeIdeData);
  150. args: [],
  151. source: "testIncludes\x0a\x09self assert: (full includes: 5).\x0a\x09self assert: (full includes: #abc)",
  152. referencedClasses: [],
  153. //>>excludeEnd("ide");
  154. messageSends: ["assert:", "includes:"]
  155. }),
  156. $globals.ExampleSetTest);
  157. $core.addMethod(
  158. $core.method({
  159. selector: "testOccurrences",
  160. protocol: "tests",
  161. fn: function (){
  162. var self=this,$self=this;
  163. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  164. return $core.withContext(function($ctx1) {
  165. //>>excludeEnd("ctx");
  166. var $1,$2;
  167. $1=$recv($self["@empty"])._occurrencesOf_((0));
  168. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  169. $ctx1.sendIdx["occurrencesOf:"]=1;
  170. //>>excludeEnd("ctx");
  171. $self._assert_equals_($1,(0));
  172. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  173. $ctx1.sendIdx["assert:equals:"]=1;
  174. //>>excludeEnd("ctx");
  175. $2=$recv($self["@full"])._occurrencesOf_((5));
  176. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  177. $ctx1.sendIdx["occurrencesOf:"]=2;
  178. //>>excludeEnd("ctx");
  179. $self._assert_equals_($2,(1));
  180. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  181. $ctx1.sendIdx["assert:equals:"]=2;
  182. //>>excludeEnd("ctx");
  183. $recv($self["@full"])._add_((5));
  184. $self._assert_equals_($recv($self["@full"])._occurrencesOf_((5)),(1));
  185. return self;
  186. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  187. }, function($ctx1) {$ctx1.fill(self,"testOccurrences",{},$globals.ExampleSetTest)});
  188. //>>excludeEnd("ctx");
  189. },
  190. //>>excludeStart("ide", pragmas.excludeIdeData);
  191. args: [],
  192. source: "testOccurrences\x0a\x09self assert: (empty occurrencesOf: 0) equals: 0.\x0a\x09self assert: (full occurrencesOf: 5) equals: 1.\x0a\x09full add: 5.\x0a\x09self assert: (full occurrencesOf: 5) equals: 1",
  193. referencedClasses: [],
  194. //>>excludeEnd("ide");
  195. messageSends: ["assert:equals:", "occurrencesOf:", "add:"]
  196. }),
  197. $globals.ExampleSetTest);
  198. $core.addMethod(
  199. $core.method({
  200. selector: "testRemove",
  201. protocol: "tests",
  202. fn: function (){
  203. var self=this,$self=this;
  204. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  205. return $core.withContext(function($ctx1) {
  206. //>>excludeEnd("ctx");
  207. var $1;
  208. $recv($self["@full"])._remove_((5));
  209. $1=$recv($self["@full"])._includes_("abc");
  210. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  211. $ctx1.sendIdx["includes:"]=1;
  212. //>>excludeEnd("ctx");
  213. $self._assert_($1);
  214. $self._deny_($recv($self["@full"])._includes_((5)));
  215. return self;
  216. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  217. }, function($ctx1) {$ctx1.fill(self,"testRemove",{},$globals.ExampleSetTest)});
  218. //>>excludeEnd("ctx");
  219. },
  220. //>>excludeStart("ide", pragmas.excludeIdeData);
  221. args: [],
  222. source: "testRemove\x0a\x09full remove: 5.\x0a\x09self assert: (full includes: #abc).\x0a\x09self deny: (full includes: 5)",
  223. referencedClasses: [],
  224. //>>excludeEnd("ide");
  225. messageSends: ["remove:", "assert:", "includes:", "deny:"]
  226. }),
  227. $globals.ExampleSetTest);
  228. $core.addClass("SUnitAsyncTest", $globals.TestCase, ["flag"], "SUnit-Tests");
  229. $core.addMethod(
  230. $core.method({
  231. selector: "fakeError",
  232. protocol: "helpers",
  233. fn: function (){
  234. var self=this,$self=this;
  235. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  236. return $core.withContext(function($ctx1) {
  237. //>>excludeEnd("ctx");
  238. $self["@flag"]="bad";
  239. $self._timeout_((30));
  240. $self["@flag"]=$recv($self._async_((function(){
  241. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  242. return $core.withContext(function($ctx2) {
  243. //>>excludeEnd("ctx");
  244. $self["@flag"]="ok";
  245. return $self._error_("Intentional");
  246. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  247. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  248. //>>excludeEnd("ctx");
  249. })))._valueWithTimeout_((20));
  250. return self;
  251. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  252. }, function($ctx1) {$ctx1.fill(self,"fakeError",{},$globals.SUnitAsyncTest)});
  253. //>>excludeEnd("ctx");
  254. },
  255. //>>excludeStart("ide", pragmas.excludeIdeData);
  256. args: [],
  257. source: "fakeError\x0a\x09flag := 'bad'.\x0a\x09self timeout: 30.\x0a\x09flag := (self async: [ flag := 'ok'. self error: 'Intentional' ]) valueWithTimeout: 20",
  258. referencedClasses: [],
  259. //>>excludeEnd("ide");
  260. messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"]
  261. }),
  262. $globals.SUnitAsyncTest);
  263. $core.addMethod(
  264. $core.method({
  265. selector: "fakeErrorFailingInTearDown",
  266. protocol: "helpers",
  267. fn: function (){
  268. var self=this,$self=this;
  269. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  270. return $core.withContext(function($ctx1) {
  271. //>>excludeEnd("ctx");
  272. $self["@flag"]="bad";
  273. $self._timeout_((30));
  274. $self["@flag"]=$recv($self._async_((function(){
  275. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  276. return $core.withContext(function($ctx2) {
  277. //>>excludeEnd("ctx");
  278. return $self._error_("Intentional");
  279. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  280. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  281. //>>excludeEnd("ctx");
  282. })))._valueWithTimeout_((20));
  283. return self;
  284. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  285. }, function($ctx1) {$ctx1.fill(self,"fakeErrorFailingInTearDown",{},$globals.SUnitAsyncTest)});
  286. //>>excludeEnd("ctx");
  287. },
  288. //>>excludeStart("ide", pragmas.excludeIdeData);
  289. args: [],
  290. source: "fakeErrorFailingInTearDown\x0a\x09flag := 'bad'.\x0a\x09self timeout: 30.\x0a\x09flag := (self async: [ self error: 'Intentional' ]) valueWithTimeout: 20",
  291. referencedClasses: [],
  292. //>>excludeEnd("ide");
  293. messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"]
  294. }),
  295. $globals.SUnitAsyncTest);
  296. $core.addMethod(
  297. $core.method({
  298. selector: "fakeFailure",
  299. protocol: "helpers",
  300. fn: function (){
  301. var self=this,$self=this;
  302. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  303. return $core.withContext(function($ctx1) {
  304. //>>excludeEnd("ctx");
  305. $self["@flag"]="bad";
  306. $self._timeout_((30));
  307. $self["@flag"]=$recv($self._async_((function(){
  308. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  309. return $core.withContext(function($ctx2) {
  310. //>>excludeEnd("ctx");
  311. $self["@flag"]="ok";
  312. return $self._assert_(false);
  313. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  314. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  315. //>>excludeEnd("ctx");
  316. })))._valueWithTimeout_((20));
  317. return self;
  318. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  319. }, function($ctx1) {$ctx1.fill(self,"fakeFailure",{},$globals.SUnitAsyncTest)});
  320. //>>excludeEnd("ctx");
  321. },
  322. //>>excludeStart("ide", pragmas.excludeIdeData);
  323. args: [],
  324. source: "fakeFailure\x0a\x09flag := 'bad'.\x0a\x09self timeout: 30.\x0a\x09flag := (self async: [ flag := 'ok'. self assert: false ]) valueWithTimeout: 20",
  325. referencedClasses: [],
  326. //>>excludeEnd("ide");
  327. messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:"]
  328. }),
  329. $globals.SUnitAsyncTest);
  330. $core.addMethod(
  331. $core.method({
  332. selector: "fakeMultipleTimeoutFailing",
  333. protocol: "helpers",
  334. fn: function (){
  335. var self=this,$self=this;
  336. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  337. return $core.withContext(function($ctx1) {
  338. //>>excludeEnd("ctx");
  339. var $1;
  340. $self._timeout_((100));
  341. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  342. $ctx1.sendIdx["timeout:"]=1;
  343. //>>excludeEnd("ctx");
  344. $1=$self._async_((function(){
  345. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  346. return $core.withContext(function($ctx2) {
  347. //>>excludeEnd("ctx");
  348. $self._timeout_((20));
  349. return $recv($self._async_((function(){
  350. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  351. return $core.withContext(function($ctx3) {
  352. //>>excludeEnd("ctx");
  353. return $self._finished();
  354. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  355. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
  356. //>>excludeEnd("ctx");
  357. })))._valueWithTimeout_((30));
  358. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  359. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  360. //>>excludeEnd("ctx");
  361. }));
  362. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  363. $ctx1.sendIdx["async:"]=1;
  364. //>>excludeEnd("ctx");
  365. $recv($1)._valueWithTimeout_((20));
  366. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  367. $ctx1.sendIdx["valueWithTimeout:"]=1;
  368. //>>excludeEnd("ctx");
  369. return self;
  370. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  371. }, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutFailing",{},$globals.SUnitAsyncTest)});
  372. //>>excludeEnd("ctx");
  373. },
  374. //>>excludeStart("ide", pragmas.excludeIdeData);
  375. args: [],
  376. source: "fakeMultipleTimeoutFailing\x0a\x09self timeout: 100.\x0a\x09(self async: [ \x0a\x09\x09self timeout: 20.\x0a\x09\x09(self async: [ self finished ]) valueWithTimeout: 30\x0a\x09]) valueWithTimeout: 20",
  377. referencedClasses: [],
  378. //>>excludeEnd("ide");
  379. messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"]
  380. }),
  381. $globals.SUnitAsyncTest);
  382. $core.addMethod(
  383. $core.method({
  384. selector: "fakeMultipleTimeoutPassing",
  385. protocol: "helpers",
  386. fn: function (){
  387. var self=this,$self=this;
  388. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  389. return $core.withContext(function($ctx1) {
  390. //>>excludeEnd("ctx");
  391. var $1;
  392. $self._timeout_((20));
  393. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  394. $ctx1.sendIdx["timeout:"]=1;
  395. //>>excludeEnd("ctx");
  396. $1=$self._async_((function(){
  397. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  398. return $core.withContext(function($ctx2) {
  399. //>>excludeEnd("ctx");
  400. $self._timeout_((40));
  401. return $recv($self._async_((function(){
  402. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  403. return $core.withContext(function($ctx3) {
  404. //>>excludeEnd("ctx");
  405. return $self._finished();
  406. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  407. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
  408. //>>excludeEnd("ctx");
  409. })))._valueWithTimeout_((20));
  410. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  411. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  412. //>>excludeEnd("ctx");
  413. }));
  414. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  415. $ctx1.sendIdx["async:"]=1;
  416. //>>excludeEnd("ctx");
  417. $recv($1)._valueWithTimeout_((10));
  418. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  419. $ctx1.sendIdx["valueWithTimeout:"]=1;
  420. //>>excludeEnd("ctx");
  421. return self;
  422. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  423. }, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutPassing",{},$globals.SUnitAsyncTest)});
  424. //>>excludeEnd("ctx");
  425. },
  426. //>>excludeStart("ide", pragmas.excludeIdeData);
  427. args: [],
  428. source: "fakeMultipleTimeoutPassing\x0a\x09self timeout: 20.\x0a\x09(self async: [\x0a\x09\x09self timeout: 40.\x0a\x09\x09(self async: [ self finished ]) valueWithTimeout: 20\x0a\x09]) valueWithTimeout: 10",
  429. referencedClasses: [],
  430. //>>excludeEnd("ide");
  431. messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"]
  432. }),
  433. $globals.SUnitAsyncTest);
  434. $core.addMethod(
  435. $core.method({
  436. selector: "fakeTimeout",
  437. protocol: "helpers",
  438. fn: function (){
  439. var self=this,$self=this;
  440. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  441. return $core.withContext(function($ctx1) {
  442. //>>excludeEnd("ctx");
  443. $self._timeout_((10));
  444. $recv($self._async_((function(){
  445. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  446. return $core.withContext(function($ctx2) {
  447. //>>excludeEnd("ctx");
  448. return $self._finished();
  449. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  450. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  451. //>>excludeEnd("ctx");
  452. })))._valueWithTimeout_((20));
  453. return self;
  454. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  455. }, function($ctx1) {$ctx1.fill(self,"fakeTimeout",{},$globals.SUnitAsyncTest)});
  456. //>>excludeEnd("ctx");
  457. },
  458. //>>excludeStart("ide", pragmas.excludeIdeData);
  459. args: [],
  460. source: "fakeTimeout\x0a\x09self timeout: 10.\x0a\x09(self async: [ self finished ]) valueWithTimeout: 20",
  461. referencedClasses: [],
  462. //>>excludeEnd("ide");
  463. messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"]
  464. }),
  465. $globals.SUnitAsyncTest);
  466. $core.addMethod(
  467. $core.method({
  468. selector: "selectorSetOf:",
  469. protocol: "private",
  470. fn: function (aCollection){
  471. var self=this,$self=this;
  472. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  473. return $core.withContext(function($ctx1) {
  474. //>>excludeEnd("ctx");
  475. return $recv($recv(aCollection)._collect_((function(each){
  476. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  477. return $core.withContext(function($ctx2) {
  478. //>>excludeEnd("ctx");
  479. return $recv(each)._selector();
  480. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  481. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  482. //>>excludeEnd("ctx");
  483. })))._asSet();
  484. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  485. }, function($ctx1) {$ctx1.fill(self,"selectorSetOf:",{aCollection:aCollection},$globals.SUnitAsyncTest)});
  486. //>>excludeEnd("ctx");
  487. },
  488. //>>excludeStart("ide", pragmas.excludeIdeData);
  489. args: ["aCollection"],
  490. source: "selectorSetOf: aCollection\x0a\x09^ (aCollection collect: [ :each | each selector ]) asSet",
  491. referencedClasses: [],
  492. //>>excludeEnd("ide");
  493. messageSends: ["asSet", "collect:", "selector"]
  494. }),
  495. $globals.SUnitAsyncTest);
  496. $core.addMethod(
  497. $core.method({
  498. selector: "setUp",
  499. protocol: "running",
  500. fn: function (){
  501. var self=this,$self=this;
  502. $self["@flag"]="ok";
  503. return self;
  504. },
  505. //>>excludeStart("ide", pragmas.excludeIdeData);
  506. args: [],
  507. source: "setUp\x0a\x09flag := 'ok'",
  508. referencedClasses: [],
  509. //>>excludeEnd("ide");
  510. messageSends: []
  511. }),
  512. $globals.SUnitAsyncTest);
  513. $core.addMethod(
  514. $core.method({
  515. selector: "tearDown",
  516. protocol: "running",
  517. fn: function (){
  518. var self=this,$self=this;
  519. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  520. return $core.withContext(function($ctx1) {
  521. //>>excludeEnd("ctx");
  522. $self._assert_equals_("ok",$self["@flag"]);
  523. return self;
  524. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  525. }, function($ctx1) {$ctx1.fill(self,"tearDown",{},$globals.SUnitAsyncTest)});
  526. //>>excludeEnd("ctx");
  527. },
  528. //>>excludeStart("ide", pragmas.excludeIdeData);
  529. args: [],
  530. source: "tearDown\x0a\x09self assert: 'ok' equals: flag",
  531. referencedClasses: [],
  532. //>>excludeEnd("ide");
  533. messageSends: ["assert:equals:"]
  534. }),
  535. $globals.SUnitAsyncTest);
  536. $core.addMethod(
  537. $core.method({
  538. selector: "testAsyncErrorsAndFailures",
  539. protocol: "tests",
  540. fn: function (){
  541. var self=this,$self=this;
  542. var suite,runner,result,assertBlock;
  543. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  544. return $core.withContext(function($ctx1) {
  545. //>>excludeEnd("ctx");
  546. var $1,$2,$3,$4;
  547. suite=["fakeError", "fakeErrorFailingInTearDown", "fakeFailure", "testPass"]._collect_((function(each){
  548. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  549. return $core.withContext(function($ctx2) {
  550. //>>excludeEnd("ctx");
  551. return $recv($self._class())._selector_(each);
  552. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  553. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  554. //>>excludeEnd("ctx");
  555. }));
  556. runner=$recv($globals.TestSuiteRunner)._on_(suite);
  557. $self._timeout_((200));
  558. result=$recv(runner)._result();
  559. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  560. $ctx1.sendIdx["result"]=1;
  561. //>>excludeEnd("ctx");
  562. assertBlock=$self._async_((function(){
  563. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  564. return $core.withContext(function($ctx2) {
  565. //>>excludeEnd("ctx");
  566. $1=$self._selectorSetOf_($recv(result)._errors());
  567. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  568. $ctx2.sendIdx["selectorSetOf:"]=1;
  569. //>>excludeEnd("ctx");
  570. $2=["fakeError"]._asSet();
  571. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  572. $ctx2.sendIdx["asSet"]=1;
  573. //>>excludeEnd("ctx");
  574. $self._assert_equals_($1,$2);
  575. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  576. $ctx2.sendIdx["assert:equals:"]=1;
  577. //>>excludeEnd("ctx");
  578. $self._assert_equals_($self._selectorSetOf_($recv(result)._failures()),["fakeErrorFailingInTearDown", "fakeFailure"]._asSet());
  579. return $self._finished();
  580. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  581. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
  582. //>>excludeEnd("ctx");
  583. }));
  584. $recv($recv(runner)._announcer())._on_do_($globals.ResultAnnouncement,(function(ann){
  585. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  586. return $core.withContext(function($ctx2) {
  587. //>>excludeEnd("ctx");
  588. $3=$recv($recv(ann)._result()).__eq_eq(result);
  589. if($core.assert($3)){
  590. $4=$recv($recv(result)._runs()).__eq($recv(result)._total());
  591. return $recv($4)._ifTrue_(assertBlock);
  592. }
  593. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  594. }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1,3)});
  595. //>>excludeEnd("ctx");
  596. }));
  597. $recv(runner)._run();
  598. return self;
  599. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  600. }, function($ctx1) {$ctx1.fill(self,"testAsyncErrorsAndFailures",{suite:suite,runner:runner,result:result,assertBlock:assertBlock},$globals.SUnitAsyncTest)});
  601. //>>excludeEnd("ctx");
  602. },
  603. //>>excludeStart("ide", pragmas.excludeIdeData);
  604. args: [],
  605. source: "testAsyncErrorsAndFailures\x0a\x09| suite runner result assertBlock |\x0a\x09suite := #('fakeError' 'fakeErrorFailingInTearDown' 'fakeFailure' 'testPass') collect: [ :each | self class selector: each ].\x0a\x09runner := TestSuiteRunner on: suite.\x0a\x09self timeout: 200.\x0a\x09result := runner result.\x0a\x09assertBlock := self async: [\x0a\x09\x09self assert: (self selectorSetOf: result errors) equals: #('fakeError') asSet.\x0a\x09\x09self assert: (self selectorSetOf: result failures) equals: #('fakeErrorFailingInTearDown' 'fakeFailure') asSet.\x0a\x09\x09self finished\x0a\x09].\x0a\x09runner announcer on: ResultAnnouncement do: [ :ann |\x0a\x09\x09ann result == result ifTrue: [ result runs = result total ifTrue: assertBlock ] ].\x0a\x09runner run",
  606. referencedClasses: ["TestSuiteRunner", "ResultAnnouncement"],
  607. //>>excludeEnd("ide");
  608. messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:equals:", "selectorSetOf:", "errors", "asSet", "failures", "finished", "on:do:", "announcer", "ifTrue:", "==", "=", "runs", "total", "run"]
  609. }),
  610. $globals.SUnitAsyncTest);
  611. $core.addMethod(
  612. $core.method({
  613. selector: "testAsyncNeedsTimeout",
  614. protocol: "tests",
  615. fn: function (){
  616. var self=this,$self=this;
  617. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  618. return $core.withContext(function($ctx1) {
  619. //>>excludeEnd("ctx");
  620. $self._should_raise_((function(){
  621. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  622. return $core.withContext(function($ctx2) {
  623. //>>excludeEnd("ctx");
  624. return $self._async_((function(){
  625. }));
  626. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  627. $ctx2.sendIdx["async:"]=1;
  628. //>>excludeEnd("ctx");
  629. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  630. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  631. //>>excludeEnd("ctx");
  632. }),$globals.Error);
  633. $self._timeout_((0));
  634. $self._shouldnt_raise_((function(){
  635. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  636. return $core.withContext(function($ctx2) {
  637. //>>excludeEnd("ctx");
  638. return $self._async_((function(){
  639. }));
  640. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  641. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,3)});
  642. //>>excludeEnd("ctx");
  643. }),$globals.Error);
  644. $self._finished();
  645. return self;
  646. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  647. }, function($ctx1) {$ctx1.fill(self,"testAsyncNeedsTimeout",{},$globals.SUnitAsyncTest)});
  648. //>>excludeEnd("ctx");
  649. },
  650. //>>excludeStart("ide", pragmas.excludeIdeData);
  651. args: [],
  652. source: "testAsyncNeedsTimeout\x0a\x09self should: [ self async: [ ] ] raise: Error.\x0a\x09self timeout: 0.\x0a\x09self shouldnt: [ self async: [ ] ] raise: Error.\x0a\x09self finished",
  653. referencedClasses: ["Error"],
  654. //>>excludeEnd("ide");
  655. messageSends: ["should:raise:", "async:", "timeout:", "shouldnt:raise:", "finished"]
  656. }),
  657. $globals.SUnitAsyncTest);
  658. $core.addMethod(
  659. $core.method({
  660. selector: "testFinishedNeedsTimeout",
  661. protocol: "tests",
  662. fn: function (){
  663. var self=this,$self=this;
  664. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  665. return $core.withContext(function($ctx1) {
  666. //>>excludeEnd("ctx");
  667. $self._should_raise_((function(){
  668. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  669. return $core.withContext(function($ctx2) {
  670. //>>excludeEnd("ctx");
  671. return $self._finished();
  672. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  673. $ctx2.sendIdx["finished"]=1;
  674. //>>excludeEnd("ctx");
  675. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  676. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  677. //>>excludeEnd("ctx");
  678. }),$globals.Error);
  679. $self._timeout_((0));
  680. $self._shouldnt_raise_((function(){
  681. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  682. return $core.withContext(function($ctx2) {
  683. //>>excludeEnd("ctx");
  684. return $self._finished();
  685. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  686. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
  687. //>>excludeEnd("ctx");
  688. }),$globals.Error);
  689. return self;
  690. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  691. }, function($ctx1) {$ctx1.fill(self,"testFinishedNeedsTimeout",{},$globals.SUnitAsyncTest)});
  692. //>>excludeEnd("ctx");
  693. },
  694. //>>excludeStart("ide", pragmas.excludeIdeData);
  695. args: [],
  696. source: "testFinishedNeedsTimeout\x0a\x09self should: [ self finished ] raise: Error.\x0a\x09self timeout: 0.\x0a\x09self shouldnt: [ self finished ] raise: Error.",
  697. referencedClasses: ["Error"],
  698. //>>excludeEnd("ide");
  699. messageSends: ["should:raise:", "finished", "timeout:", "shouldnt:raise:"]
  700. }),
  701. $globals.SUnitAsyncTest);
  702. $core.addMethod(
  703. $core.method({
  704. selector: "testIsAsyncReturnsCorrectValues",
  705. protocol: "tests",
  706. fn: function (){
  707. var self=this,$self=this;
  708. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  709. return $core.withContext(function($ctx1) {
  710. //>>excludeEnd("ctx");
  711. var $1,$2;
  712. $1=$self._isAsync();
  713. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  714. $ctx1.sendIdx["isAsync"]=1;
  715. //>>excludeEnd("ctx");
  716. $self._deny_($1);
  717. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  718. $ctx1.sendIdx["deny:"]=1;
  719. //>>excludeEnd("ctx");
  720. $self._timeout_((0));
  721. $2=$self._isAsync();
  722. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  723. $ctx1.sendIdx["isAsync"]=2;
  724. //>>excludeEnd("ctx");
  725. $self._assert_($2);
  726. $self._finished();
  727. $self._deny_($self._isAsync());
  728. return self;
  729. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  730. }, function($ctx1) {$ctx1.fill(self,"testIsAsyncReturnsCorrectValues",{},$globals.SUnitAsyncTest)});
  731. //>>excludeEnd("ctx");
  732. },
  733. //>>excludeStart("ide", pragmas.excludeIdeData);
  734. args: [],
  735. source: "testIsAsyncReturnsCorrectValues\x0a\x09self deny: self isAsync.\x0a\x09self timeout: 0.\x0a\x09self assert: self isAsync.\x0a\x09self finished.\x0a\x09self deny: self isAsync",
  736. referencedClasses: [],
  737. //>>excludeEnd("ide");
  738. messageSends: ["deny:", "isAsync", "timeout:", "assert:", "finished"]
  739. }),
  740. $globals.SUnitAsyncTest);
  741. $core.addMethod(
  742. $core.method({
  743. selector: "testPass",
  744. protocol: "tests",
  745. fn: function (){
  746. var self=this,$self=this;
  747. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  748. return $core.withContext(function($ctx1) {
  749. //>>excludeEnd("ctx");
  750. $self["@flag"]="bad";
  751. $self._timeout_((10));
  752. $self["@flag"]=$recv($self._async_((function(){
  753. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  754. return $core.withContext(function($ctx2) {
  755. //>>excludeEnd("ctx");
  756. $self._assert_(true);
  757. $self._finished();
  758. $self["@flag"]="ok";
  759. return $self["@flag"];
  760. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  761. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  762. //>>excludeEnd("ctx");
  763. })))._valueWithTimeout_((5));
  764. return self;
  765. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  766. }, function($ctx1) {$ctx1.fill(self,"testPass",{},$globals.SUnitAsyncTest)});
  767. //>>excludeEnd("ctx");
  768. },
  769. //>>excludeStart("ide", pragmas.excludeIdeData);
  770. args: [],
  771. source: "testPass\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a\x09flag := (self async: [ self assert: true. self finished. flag := 'ok' ]) valueWithTimeout: 5",
  772. referencedClasses: [],
  773. //>>excludeEnd("ide");
  774. messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:", "finished"]
  775. }),
  776. $globals.SUnitAsyncTest);
  777. $core.addMethod(
  778. $core.method({
  779. selector: "testTimeouts",
  780. protocol: "tests",
  781. fn: function (){
  782. var self=this,$self=this;
  783. var suite,runner,result,assertBlock;
  784. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  785. return $core.withContext(function($ctx1) {
  786. //>>excludeEnd("ctx");
  787. var $1,$2,$3;
  788. suite=["fakeTimeout", "fakeMultipleTimeoutFailing", "fakeMultipleTimeoutPassing", "testPass"]._collect_((function(each){
  789. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  790. return $core.withContext(function($ctx2) {
  791. //>>excludeEnd("ctx");
  792. return $recv($self._class())._selector_(each);
  793. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  794. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  795. //>>excludeEnd("ctx");
  796. }));
  797. runner=$recv($globals.TestSuiteRunner)._on_(suite);
  798. $self._timeout_((200));
  799. result=$recv(runner)._result();
  800. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  801. $ctx1.sendIdx["result"]=1;
  802. //>>excludeEnd("ctx");
  803. assertBlock=$self._async_((function(){
  804. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  805. return $core.withContext(function($ctx2) {
  806. //>>excludeEnd("ctx");
  807. $1=$self._selectorSetOf_($recv(result)._errors());
  808. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  809. $ctx2.sendIdx["selectorSetOf:"]=1;
  810. //>>excludeEnd("ctx");
  811. $self._assert_equals_($1,$recv($globals.Set)._new());
  812. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  813. $ctx2.sendIdx["assert:equals:"]=1;
  814. //>>excludeEnd("ctx");
  815. $self._assert_equals_($self._selectorSetOf_($recv(result)._failures()),["fakeMultipleTimeoutFailing", "fakeTimeout"]._asSet());
  816. return $self._finished();
  817. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  818. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
  819. //>>excludeEnd("ctx");
  820. }));
  821. $recv($recv(runner)._announcer())._on_do_($globals.ResultAnnouncement,(function(ann){
  822. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  823. return $core.withContext(function($ctx2) {
  824. //>>excludeEnd("ctx");
  825. $2=$recv($recv(ann)._result()).__eq_eq(result);
  826. if($core.assert($2)){
  827. $3=$recv($recv(result)._runs()).__eq($recv(result)._total());
  828. return $recv($3)._ifTrue_(assertBlock);
  829. }
  830. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  831. }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1,3)});
  832. //>>excludeEnd("ctx");
  833. }));
  834. $recv(runner)._run();
  835. return self;
  836. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  837. }, function($ctx1) {$ctx1.fill(self,"testTimeouts",{suite:suite,runner:runner,result:result,assertBlock:assertBlock},$globals.SUnitAsyncTest)});
  838. //>>excludeEnd("ctx");
  839. },
  840. //>>excludeStart("ide", pragmas.excludeIdeData);
  841. args: [],
  842. source: "testTimeouts\x0a\x09| suite runner result assertBlock |\x0a\x09suite := #('fakeTimeout' 'fakeMultipleTimeoutFailing' 'fakeMultipleTimeoutPassing' 'testPass') collect: [ :each | self class selector: each ].\x0a\x09runner := TestSuiteRunner on: suite.\x0a\x09self timeout: 200.\x0a\x09result := runner result.\x0a\x09assertBlock := self async: [\x0a\x09\x09self assert: (self selectorSetOf: result errors) equals: Set new.\x0a\x09\x09self assert: (self selectorSetOf: result failures) equals: #('fakeMultipleTimeoutFailing' 'fakeTimeout') asSet.\x0a\x09\x09self finished\x0a\x09].\x0a\x09runner announcer on: ResultAnnouncement do: [ :ann |\x0a\x09\x09ann result == result ifTrue: [ result runs = result total ifTrue: assertBlock ] ].\x0a\x09runner run",
  843. referencedClasses: ["TestSuiteRunner", "Set", "ResultAnnouncement"],
  844. //>>excludeEnd("ide");
  845. messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:equals:", "selectorSetOf:", "errors", "new", "failures", "asSet", "finished", "on:do:", "announcer", "ifTrue:", "==", "=", "runs", "total", "run"]
  846. }),
  847. $globals.SUnitAsyncTest);
  848. $core.addMethod(
  849. $core.method({
  850. selector: "testTwoAsyncPassesWithFinishedOnlyOneIsRun",
  851. protocol: "tests",
  852. fn: function (){
  853. var self=this,$self=this;
  854. var x;
  855. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  856. return $core.withContext(function($ctx1) {
  857. //>>excludeEnd("ctx");
  858. var $1;
  859. $self["@flag"]="bad";
  860. $self._timeout_((10));
  861. x=(0);
  862. $1=$self._async_((function(){
  863. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  864. return $core.withContext(function($ctx2) {
  865. //>>excludeEnd("ctx");
  866. $self._finished();
  867. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  868. $ctx2.sendIdx["finished"]=1;
  869. //>>excludeEnd("ctx");
  870. $self["@flag"]="ok";
  871. x=$recv(x).__plus((1));
  872. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  873. $ctx2.sendIdx["+"]=1;
  874. //>>excludeEnd("ctx");
  875. return $self._assert_equals_(x,(1));
  876. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  877. $ctx2.sendIdx["assert:equals:"]=1;
  878. //>>excludeEnd("ctx");
  879. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  880. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  881. //>>excludeEnd("ctx");
  882. }));
  883. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  884. $ctx1.sendIdx["async:"]=1;
  885. //>>excludeEnd("ctx");
  886. $self["@flag"]=$recv($1)._valueWithTimeout_((0));
  887. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  888. $ctx1.sendIdx["valueWithTimeout:"]=1;
  889. //>>excludeEnd("ctx");
  890. $self["@flag"]=$recv($self._async_((function(){
  891. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  892. return $core.withContext(function($ctx2) {
  893. //>>excludeEnd("ctx");
  894. $self._finished();
  895. $self["@flag"]="ok";
  896. x=$recv(x).__plus((1));
  897. return $self._assert_equals_(x,(1));
  898. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  899. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
  900. //>>excludeEnd("ctx");
  901. })))._valueWithTimeout_((0));
  902. return self;
  903. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  904. }, function($ctx1) {$ctx1.fill(self,"testTwoAsyncPassesWithFinishedOnlyOneIsRun",{x:x},$globals.SUnitAsyncTest)});
  905. //>>excludeEnd("ctx");
  906. },
  907. //>>excludeStart("ide", pragmas.excludeIdeData);
  908. args: [],
  909. source: "testTwoAsyncPassesWithFinishedOnlyOneIsRun\x0a\x09| x |\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a\x09x := 0.\x0a\x09flag := (self async: [ self finished. flag := 'ok'. x := x+1. self assert: x equals: 1 ]) valueWithTimeout: 0.\x0a\x09flag := (self async: [ self finished. flag := 'ok'. x := x+1. self assert: x equals: 1 ]) valueWithTimeout: 0.",
  910. referencedClasses: [],
  911. //>>excludeEnd("ide");
  912. messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished", "+", "assert:equals:"]
  913. }),
  914. $globals.SUnitAsyncTest);
  915. });