Silk-Tests.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450
  1. define(["amber/boot"
  2. //>>excludeStart("imports", pragmas.excludeImports);
  3. , "amber/jquery/Wrappers-JQuery"
  4. //>>excludeEnd("imports");
  5. , "amber_core/SUnit", "domite/DOMite-Tests"], function($boot
  6. //>>excludeStart("imports", pragmas.excludeImports);
  7. //>>excludeEnd("imports");
  8. ){"use strict";
  9. if(!("nilAsValue" in $boot))$boot.nilAsValue=$boot.nilAsReceiver;
  10. var $core=$boot.api,nil=$boot.nilAsValue,$nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
  11. $core.addPackage("Silk-Tests");
  12. ($core.packageDescriptors||$core.packages)["Silk-Tests"].innerEval = function (expr) { return eval(expr); };
  13. ($core.packageDescriptors||$core.packages)["Silk-Tests"].imports = ["amber/jquery/Wrappers-JQuery"];
  14. ($core.packageDescriptors||$core.packages)["Silk-Tests"].transport = {"type":"amd","amdNamespace":"silk"};
  15. $core.addClass("SilkInheritedTest", $globals.DOMiteTest, [], "Silk-Tests");
  16. $core.addMethod(
  17. $core.method({
  18. selector: "testedClass",
  19. protocol: "fixture",
  20. fn: function (){
  21. var self=this,$self=this;
  22. return $globals.Silk;
  23. },
  24. //>>excludeStart("ide", pragmas.excludeIdeData);
  25. args: [],
  26. source: "testedClass\x0a\x09^ Silk",
  27. referencedClasses: ["Silk"],
  28. //>>excludeEnd("ide");
  29. messageSends: []
  30. }),
  31. $globals.SilkInheritedTest);
  32. $core.addClass("SilkTest", $globals.TestCase, ["fixtureDiv"], "Silk-Tests");
  33. $core.addMethod(
  34. $core.method({
  35. selector: "assertBodyEndsWith:",
  36. protocol: "fixture",
  37. fn: function (aString){
  38. var self=this,$self=this;
  39. var sanitizedBody,sanitizedAssertion;
  40. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  41. return $core.withContext(function($ctx1) {
  42. //>>excludeEnd("ctx");
  43. var $2,$3,$1;
  44. sanitizedBody=$recv($recv($recv(document)._body())._innerHTML())._replace_with_("\x5cs*","");
  45. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  46. $ctx1.sendIdx["replace:with:"]=1;
  47. //>>excludeEnd("ctx");
  48. sanitizedAssertion=$recv(aString)._replace_with_("\x5cs*","");
  49. $2=$recv(sanitizedBody)._size();
  50. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  51. $ctx1.sendIdx["size"]=1;
  52. //>>excludeEnd("ctx");
  53. $3=$recv(sanitizedAssertion)._size();
  54. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  55. $ctx1.sendIdx["size"]=2;
  56. //>>excludeEnd("ctx");
  57. $1=$recv($2).__gt_eq($3);
  58. $self._assert_($1);
  59. $self._assert_equals_($recv(sanitizedBody)._last_($recv(sanitizedAssertion)._size()),sanitizedAssertion);
  60. return self;
  61. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  62. }, function($ctx1) {$ctx1.fill(self,"assertBodyEndsWith:",{aString:aString,sanitizedBody:sanitizedBody,sanitizedAssertion:sanitizedAssertion},$globals.SilkTest)});
  63. //>>excludeEnd("ctx");
  64. },
  65. //>>excludeStart("ide", pragmas.excludeIdeData);
  66. args: ["aString"],
  67. source: "assertBodyEndsWith: aString\x0a\x09| sanitizedBody sanitizedAssertion |\x0a\x09sanitizedBody := document body innerHTML replace: '\x5cs*' with: ''.\x0a\x09sanitizedAssertion := aString replace: '\x5cs*' with: ''.\x0a\x09self assert: sanitizedBody size >= sanitizedAssertion size.\x0a\x09self\x0a\x09\x09assert: (sanitizedBody last: sanitizedAssertion size)\x0a\x09\x09equals: sanitizedAssertion",
  68. referencedClasses: [],
  69. //>>excludeEnd("ide");
  70. messageSends: ["replace:with:", "innerHTML", "body", "assert:", ">=", "size", "assert:equals:", "last:"]
  71. }),
  72. $globals.SilkTest);
  73. $core.addMethod(
  74. $core.method({
  75. selector: "assertBodyEndsWithOneOf:",
  76. protocol: "fixture",
  77. fn: function (aStringArray){
  78. var self=this,$self=this;
  79. var sanitizedBody,err;
  80. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  81. return $core.withContext(function($ctx1) {
  82. //>>excludeEnd("ctx");
  83. var $2,$3,$1,$4,$receiver;
  84. var $early={};
  85. try {
  86. sanitizedBody=$recv($recv($recv(document)._body())._innerHTML())._replace_with_("\x5cs*","");
  87. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  88. $ctx1.sendIdx["replace:with:"]=1;
  89. //>>excludeEnd("ctx");
  90. $recv(aStringArray)._do_((function(aString){
  91. var sanitizedAssertion;
  92. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  93. return $core.withContext(function($ctx2) {
  94. //>>excludeEnd("ctx");
  95. sanitizedAssertion=$recv(aString)._replace_with_("\x5cs*","");
  96. return $recv((function(){
  97. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  98. return $core.withContext(function($ctx3) {
  99. //>>excludeEnd("ctx");
  100. $2=$recv(sanitizedBody)._size();
  101. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  102. $ctx3.sendIdx["size"]=1;
  103. //>>excludeEnd("ctx");
  104. $3=$recv(sanitizedAssertion)._size();
  105. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  106. $ctx3.sendIdx["size"]=2;
  107. //>>excludeEnd("ctx");
  108. $1=$recv($2).__gt_eq($3);
  109. $self._assert_($1);
  110. $self._assert_equals_($recv(sanitizedBody)._last_($recv(sanitizedAssertion)._size()),sanitizedAssertion);
  111. throw $early=[self];
  112. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  113. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
  114. //>>excludeEnd("ctx");
  115. }))._on_do_($globals.Error,(function(e){
  116. err=e;
  117. return err;
  118. }));
  119. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  120. }, function($ctx2) {$ctx2.fillBlock({aString:aString,sanitizedAssertion:sanitizedAssertion},$ctx1,1)});
  121. //>>excludeEnd("ctx");
  122. }));
  123. $4=err;
  124. if(($receiver = $4) == null || $receiver.a$nil){
  125. $4;
  126. } else {
  127. $recv(err)._signal();
  128. }
  129. return self;
  130. }
  131. catch(e) {if(e===$early)return e[0]; throw e}
  132. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  133. }, function($ctx1) {$ctx1.fill(self,"assertBodyEndsWithOneOf:",{aStringArray:aStringArray,sanitizedBody:sanitizedBody,err:err},$globals.SilkTest)});
  134. //>>excludeEnd("ctx");
  135. },
  136. //>>excludeStart("ide", pragmas.excludeIdeData);
  137. args: ["aStringArray"],
  138. source: "assertBodyEndsWithOneOf: aStringArray\x0a\x09| sanitizedBody err |\x0a\x09sanitizedBody := document body innerHTML replace: '\x5cs*' with: ''.\x0a\x09aStringArray do: [ :aString |\x0a\x09\x09| sanitizedAssertion |\x0a\x09\x09sanitizedAssertion := aString replace: '\x5cs*' with: ''.\x0a\x09\x09[ self\x0a\x09\x09\x09assert: sanitizedBody size >= sanitizedAssertion size;\x0a\x09\x09\x09assert: (sanitizedBody last: sanitizedAssertion size)\x0a\x09\x09\x09equals: sanitizedAssertion. ^ self ] on: Error do: [ :e | err := e ]].\x0a\x09err ifNotNil: [ err signal ]",
  139. referencedClasses: ["Error"],
  140. //>>excludeEnd("ide");
  141. messageSends: ["replace:with:", "innerHTML", "body", "do:", "on:do:", "assert:", ">=", "size", "assert:equals:", "last:", "ifNotNil:", "signal"]
  142. }),
  143. $globals.SilkTest);
  144. $core.addMethod(
  145. $core.method({
  146. selector: "setUp",
  147. protocol: "fixture",
  148. fn: function (){
  149. var self=this,$self=this;
  150. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  151. return $core.withContext(function($ctx1) {
  152. //>>excludeEnd("ctx");
  153. $self["@fixtureDiv"]=$recv(document)._createElement_("div");
  154. $recv($recv(document)._body())._appendChild_($self["@fixtureDiv"]);
  155. $recv($self["@fixtureDiv"])._setAttribute_to_("id","fixture");
  156. $recv($self["@fixtureDiv"])._innerHTML_("sentinel");
  157. return self;
  158. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  159. }, function($ctx1) {$ctx1.fill(self,"setUp",{},$globals.SilkTest)});
  160. //>>excludeEnd("ctx");
  161. },
  162. //>>excludeStart("ide", pragmas.excludeIdeData);
  163. args: [],
  164. source: "setUp\x0a\x09fixtureDiv := document createElement: 'div'.\x0a\x09document body appendChild: fixtureDiv.\x0a\x09fixtureDiv setAttribute: 'id' to: 'fixture'.\x0a\x09fixtureDiv innerHTML: 'sentinel'",
  165. referencedClasses: [],
  166. //>>excludeEnd("ide");
  167. messageSends: ["createElement:", "appendChild:", "body", "setAttribute:to:", "innerHTML:"]
  168. }),
  169. $globals.SilkTest);
  170. $core.addMethod(
  171. $core.method({
  172. selector: "tearDown",
  173. protocol: "fixture",
  174. fn: function (){
  175. var self=this,$self=this;
  176. var lastChild;
  177. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  178. return $core.withContext(function($ctx1) {
  179. //>>excludeEnd("ctx");
  180. var $1;
  181. $1=$recv(document)._body();
  182. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  183. $ctx1.sendIdx["body"]=1;
  184. //>>excludeEnd("ctx");
  185. lastChild=$recv($1)._lastChild();
  186. $self._assert_equals_(lastChild,$self["@fixtureDiv"]);
  187. $recv($recv(document)._body())._removeChild_(lastChild);
  188. return self;
  189. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  190. }, function($ctx1) {$ctx1.fill(self,"tearDown",{lastChild:lastChild},$globals.SilkTest)});
  191. //>>excludeEnd("ctx");
  192. },
  193. //>>excludeStart("ide", pragmas.excludeIdeData);
  194. args: [],
  195. source: "tearDown\x0a\x09| lastChild |\x0a\x09lastChild := document body lastChild.\x0a\x09self assert: lastChild equals: fixtureDiv.\x0a\x09document body removeChild: lastChild",
  196. referencedClasses: [],
  197. //>>excludeEnd("ide");
  198. messageSends: ["lastChild", "body", "assert:equals:", "removeChild:"]
  199. }),
  200. $globals.SilkTest);
  201. $core.addMethod(
  202. $core.method({
  203. selector: "testInsertTable",
  204. protocol: "testing",
  205. fn: function (){
  206. var self=this,$self=this;
  207. var d,tbl;
  208. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  209. return $core.withContext(function($ctx1) {
  210. //>>excludeEnd("ctx");
  211. var $1,$2,$3;
  212. d="html body div#fixture"._asSilk();
  213. tbl=$recv(d)._TABLE();
  214. $1=$recv(tbl)._TR();
  215. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  216. $ctx1.sendIdx["TR"]=1;
  217. //>>excludeEnd("ctx");
  218. $recv($1)._TD_("A");
  219. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  220. $ctx1.sendIdx["TD:"]=1;
  221. //>>excludeEnd("ctx");
  222. $recv($1)._TD_("B");
  223. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  224. $ctx1.sendIdx["TD:"]=2;
  225. //>>excludeEnd("ctx");
  226. $2=$recv($1)._TD_("C");
  227. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  228. $ctx1.sendIdx["TD:"]=3;
  229. //>>excludeEnd("ctx");
  230. $3=$recv(tbl)._TR();
  231. $recv($3)._TD_("D");
  232. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  233. $ctx1.sendIdx["TD:"]=4;
  234. //>>excludeEnd("ctx");
  235. $recv($3)._TD_("E");
  236. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  237. $ctx1.sendIdx["TD:"]=5;
  238. //>>excludeEnd("ctx");
  239. $recv($3)._TD_("F");
  240. $self._assertBodyEndsWith_(">sentinel<table><tr><td>A</td><td>B</td><td>C</td></tr><tr><td>D</td><td>E</td><td>F</td></tr></table></div>");
  241. return self;
  242. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  243. }, function($ctx1) {$ctx1.fill(self,"testInsertTable",{d:d,tbl:tbl},$globals.SilkTest)});
  244. //>>excludeEnd("ctx");
  245. },
  246. //>>excludeStart("ide", pragmas.excludeIdeData);
  247. args: [],
  248. source: "testInsertTable\x0a\x0a\x09| d tbl |\x0a\x0a\x09d := 'html body div#fixture' asSilk.\x0a\x0a\x09tbl := d TABLE.\x0a\x0a\x09tbl TR\x0a\x09\x09TD: 'A';\x0a\x09\x09TD: 'B';\x0a\x09\x09TD: 'C'.\x0a\x09\x0a\x09tbl TR\x0a\x09\x09TD: 'D';\x0a\x09\x09TD: 'E';\x0a\x09\x09TD: 'F'.\x0a\x09\x0a\x09self assertBodyEndsWith: '>sentinel<table><tr><td>A</td><td>B</td><td>C</td></tr><tr><td>D</td><td>E</td><td>F</td></tr></table></div>'",
  249. referencedClasses: [],
  250. //>>excludeEnd("ide");
  251. messageSends: ["asSilk", "TABLE", "TD:", "TR", "assertBodyEndsWith:"]
  252. }),
  253. $globals.SilkTest);
  254. $core.addMethod(
  255. $core.method({
  256. selector: "testInsertTable2",
  257. protocol: "testing",
  258. fn: function (){
  259. var self=this,$self=this;
  260. var d,tbl;
  261. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  262. return $core.withContext(function($ctx1) {
  263. //>>excludeEnd("ctx");
  264. var $1,$3,$4,$5,$2,$7,$8,$6;
  265. d="html body div#fixture"._asSilk();
  266. tbl=$recv(d)._TABLE();
  267. $1=tbl;
  268. $3=$recv($globals.Silk)._TD_("A");
  269. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  270. $ctx1.sendIdx["TD:"]=1;
  271. //>>excludeEnd("ctx");
  272. $4=$recv($globals.Silk)._TD_("B");
  273. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  274. $ctx1.sendIdx["TD:"]=2;
  275. //>>excludeEnd("ctx");
  276. $5=$recv($globals.Silk)._TD_("C");
  277. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  278. $ctx1.sendIdx["TD:"]=3;
  279. //>>excludeEnd("ctx");
  280. $2=[$3,$4,$5];
  281. $recv($1)._TR_($2);
  282. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  283. $ctx1.sendIdx["TR:"]=1;
  284. //>>excludeEnd("ctx");
  285. $7=$recv($globals.Silk)._TD_("D");
  286. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  287. $ctx1.sendIdx["TD:"]=4;
  288. //>>excludeEnd("ctx");
  289. $8=$recv($globals.Silk)._TD_("E");
  290. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  291. $ctx1.sendIdx["TD:"]=5;
  292. //>>excludeEnd("ctx");
  293. $6=[$7,$8,$recv($globals.Silk)._TD_("F")];
  294. $recv($1)._TR_($6);
  295. $self._assertBodyEndsWith_(">sentinel<table><tr><td>A</td><td>B</td><td>C</td></tr><tr><td>D</td><td>E</td><td>F</td></tr></table></div>");
  296. return self;
  297. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  298. }, function($ctx1) {$ctx1.fill(self,"testInsertTable2",{d:d,tbl:tbl},$globals.SilkTest)});
  299. //>>excludeEnd("ctx");
  300. },
  301. //>>excludeStart("ide", pragmas.excludeIdeData);
  302. args: [],
  303. source: "testInsertTable2\x0a\x0a\x09| d tbl |\x0a\x0a\x09d := 'html body div#fixture' asSilk.\x0a\x0a\x09tbl := d TABLE.\x0a\x0a\x09tbl TR: {\x0a\x09\x09Silk TD: 'A'.\x0a\x09\x09Silk TD: 'B'.\x0a\x09\x09Silk TD: 'C'};\x0a\x09\x09TR: {\x0a\x09\x09Silk TD: 'D'.\x0a\x09\x09Silk TD: 'E'.\x0a\x09\x09Silk TD: 'F'}.\x0a\x09\x0a\x09self assertBodyEndsWith: '>sentinel<table><tr><td>A</td><td>B</td><td>C</td></tr><tr><td>D</td><td>E</td><td>F</td></tr></table></div>'",
  304. referencedClasses: ["Silk"],
  305. //>>excludeEnd("ide");
  306. messageSends: ["asSilk", "TABLE", "TR:", "TD:", "assertBodyEndsWith:"]
  307. }),
  308. $globals.SilkTest);
  309. $core.addMethod(
  310. $core.method({
  311. selector: "testNestedDIVsWithAttributes",
  312. protocol: "testing",
  313. fn: function (){
  314. var self=this,$self=this;
  315. var s;
  316. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  317. return $core.withContext(function($ctx1) {
  318. //>>excludeEnd("ctx");
  319. var $2,$3,$1,$4,$6,$7,$5,$9,$10,$8;
  320. s="#fixture"._asSilk();
  321. $2=$recv(s)._DIV();
  322. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  323. $ctx1.sendIdx["DIV"]=1;
  324. //>>excludeEnd("ctx");
  325. $3="id".__minus_gt("container");
  326. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  327. $ctx1.sendIdx["->"]=1;
  328. //>>excludeEnd("ctx");
  329. $1=$recv($2).__lt_lt($3);
  330. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  331. $ctx1.sendIdx["<<"]=2;
  332. //>>excludeEnd("ctx");
  333. $4="class".__minus_gt("mySilkContainerClass");
  334. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  335. $ctx1.sendIdx["->"]=2;
  336. //>>excludeEnd("ctx");
  337. s=$recv($1).__lt_lt($4);
  338. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  339. $ctx1.sendIdx["<<"]=1;
  340. //>>excludeEnd("ctx");
  341. $6=$recv(s)._DIV();
  342. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  343. $ctx1.sendIdx["DIV"]=2;
  344. //>>excludeEnd("ctx");
  345. $7="id".__minus_gt("contentarea");
  346. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  347. $ctx1.sendIdx["->"]=3;
  348. //>>excludeEnd("ctx");
  349. $5=$recv($6).__lt_lt($7);
  350. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  351. $ctx1.sendIdx["<<"]=4;
  352. //>>excludeEnd("ctx");
  353. $recv($5).__lt_lt("here comes the content");
  354. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  355. $ctx1.sendIdx["<<"]=3;
  356. //>>excludeEnd("ctx");
  357. $9=$recv(s)._DIV();
  358. $10="id".__minus_gt("toolbar");
  359. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  360. $ctx1.sendIdx["->"]=4;
  361. //>>excludeEnd("ctx");
  362. $8=$recv($9).__lt_lt($10);
  363. s=$recv($8).__lt_lt("class".__minus_gt("myToolbarClass"));
  364. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  365. $ctx1.sendIdx["<<"]=5;
  366. //>>excludeEnd("ctx");
  367. $recv($recv(s)._BUTTON_("do something"))._on_bind_("click",(function(){
  368. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  369. return $core.withContext(function($ctx2) {
  370. //>>excludeEnd("ctx");
  371. return $recv($globals.Transcript)._show_("button pressed");
  372. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  373. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  374. //>>excludeEnd("ctx");
  375. }));
  376. $self._assertBodyEndsWithOneOf_([">sentinel<div class=\x22mySilkContainerClass\x22 id=\x22container\x22><div id=\x22contentarea\x22>here comes the content</div><div class=\x22myToolbarClass\x22 id=\x22toolbar\x22><button>do something</button></div></div></div>", ">sentinel<div id=\x22container\x22 class=\x22mySilkContainerClass\x22><div id=\x22contentarea\x22>here comes the content</div><div id=\x22toolbar\x22 class=\x22myToolbarClass\x22><button>do something</button></div></div></div>"]);
  377. return self;
  378. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  379. }, function($ctx1) {$ctx1.fill(self,"testNestedDIVsWithAttributes",{s:s},$globals.SilkTest)});
  380. //>>excludeEnd("ctx");
  381. },
  382. //>>excludeStart("ide", pragmas.excludeIdeData);
  383. args: [],
  384. source: "testNestedDIVsWithAttributes\x0a \x22demonstrates how DIVs are nested and given attributes\x22\x0a\x09| s |\x0a\x0a\x09s := '#fixture' asSilk.\x0a\x09\x0a\x09s := s DIV << ('id' -> 'container') << ('class' -> 'mySilkContainerClass').\x0a\x09s DIV << ('id' -> 'contentarea') << 'here comes the content'.\x0a\x09s := s DIV << ('id' -> 'toolbar') << ('class' -> 'myToolbarClass').\x0a\x09(s BUTTON: 'do something') on: 'click' bind: [Transcript show: 'button pressed'].\x0a\x09\x0a\x09self assertBodyEndsWithOneOf: #(\x0a\x09\x09'>sentinel<div class=\x22mySilkContainerClass\x22 id=\x22container\x22><div id=\x22contentarea\x22>here comes the content</div><div class=\x22myToolbarClass\x22 id=\x22toolbar\x22><button>do something</button></div></div></div>'\x0a\x09\x09'>sentinel<div id=\x22container\x22 class=\x22mySilkContainerClass\x22><div id=\x22contentarea\x22>here comes the content</div><div id=\x22toolbar\x22 class=\x22myToolbarClass\x22><button>do something</button></div></div></div>'\x0a\x09)",
  385. referencedClasses: ["Transcript"],
  386. //>>excludeEnd("ide");
  387. messageSends: ["asSilk", "<<", "DIV", "->", "on:bind:", "BUTTON:", "show:", "assertBodyEndsWithOneOf:"]
  388. }),
  389. $globals.SilkTest);
  390. $core.addMethod(
  391. $core.method({
  392. selector: "testOnClickEvent",
  393. protocol: "testing",
  394. fn: function (){
  395. var self=this,$self=this;
  396. var s,para;
  397. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  398. return $core.withContext(function($ctx1) {
  399. //>>excludeEnd("ctx");
  400. s="#fixture"._asSilk();
  401. para=$recv(s)._P_("DOM");
  402. $self._timeout_((100));
  403. $recv($self._async_((function(){
  404. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  405. return $core.withContext(function($ctx2) {
  406. //>>excludeEnd("ctx");
  407. $recv(para)._on_bind_("click",(function(){
  408. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  409. return $core.withContext(function($ctx3) {
  410. //>>excludeEnd("ctx");
  411. return $self._finished();
  412. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  413. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
  414. //>>excludeEnd("ctx");
  415. }));
  416. return $recv("#fixture p"._asJQuery())._trigger_("click");
  417. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  418. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  419. //>>excludeEnd("ctx");
  420. })))._fork();
  421. return self;
  422. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  423. }, function($ctx1) {$ctx1.fill(self,"testOnClickEvent",{s:s,para:para},$globals.SilkTest)});
  424. //>>excludeEnd("ctx");
  425. },
  426. //>>excludeStart("ide", pragmas.excludeIdeData);
  427. args: [],
  428. source: "testOnClickEvent\x0a\x09\x22#on:bind\x22\x0a\x09\x0a\x09| s para |\x0a\x0a\x09s := '#fixture' asSilk.\x0a\x09para := s P: 'DOM'. \x0a\x0a\x09self timeout: 100.\x0a\x0a\x09(self async: [para on: 'click' bind:\x0a\x09\x09\x09[\x22Test successful\x22 self finished].\x0a\x0a\x09\x09'#fixture p' asJQuery trigger: 'click'.\x0a\x09\x09]) fork",
  429. referencedClasses: [],
  430. //>>excludeEnd("ide");
  431. messageSends: ["asSilk", "P:", "timeout:", "fork", "async:", "on:bind:", "finished", "trigger:", "asJQuery"]
  432. }),
  433. $globals.SilkTest);
  434. });