Silk-Tests.js 18 KB

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