Silk-Tests.js 18 KB

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