Silk-Tests.js 18 KB

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