DOMite-Tests.js 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069
  1. define(["amber/boot", "amber_core/SUnit"], function($boot){"use strict";
  2. if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
  3. var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
  4. if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
  5. $core.addPackage('DOMite-Tests');
  6. $core.packages["DOMite-Tests"].innerEval = function (expr) { return eval(expr); };
  7. $core.packages["DOMite-Tests"].transport = {"type":"amd","amdNamespace":"domite"};
  8. $core.addClass('DOMiteTest', $globals.TestCase, ['fixtureDiv'], 'DOMite-Tests');
  9. $core.addMethod(
  10. $core.method({
  11. selector: "assertBodyEndsWith:",
  12. protocol: 'testing',
  13. fn: function (aString){
  14. var self=this;
  15. var sanitizedBody,sanitizedAssertion;
  16. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  17. return $core.withContext(function($ctx1) {
  18. //>>excludeEnd("ctx");
  19. var $2,$3,$1;
  20. sanitizedBody=$recv($recv($recv(document)._body())._innerHTML())._replace_with_("\x5cs*","");
  21. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  22. $ctx1.sendIdx["replace:with:"]=1;
  23. //>>excludeEnd("ctx");
  24. sanitizedAssertion=$recv(aString)._replace_with_("\x5cs*","");
  25. $2=$recv(sanitizedBody)._size();
  26. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  27. $ctx1.sendIdx["size"]=1;
  28. //>>excludeEnd("ctx");
  29. $3=$recv(sanitizedAssertion)._size();
  30. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  31. $ctx1.sendIdx["size"]=2;
  32. //>>excludeEnd("ctx");
  33. $1=$recv($2).__gt_eq($3);
  34. self._assert_($1);
  35. self._assert_equals_($recv(sanitizedBody)._last_($recv(sanitizedAssertion)._size()),sanitizedAssertion);
  36. return self;
  37. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  38. }, function($ctx1) {$ctx1.fill(self,"assertBodyEndsWith:",{aString:aString,sanitizedBody:sanitizedBody,sanitizedAssertion:sanitizedAssertion},$globals.DOMiteTest)});
  39. //>>excludeEnd("ctx");
  40. },
  41. //>>excludeStart("ide", pragmas.excludeIdeData);
  42. args: ["aString"],
  43. 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",
  44. referencedClasses: [],
  45. //>>excludeEnd("ide");
  46. messageSends: ["replace:with:", "innerHTML", "body", "assert:", ">=", "size", "assert:equals:", "last:"]
  47. }),
  48. $globals.DOMiteTest);
  49. $core.addMethod(
  50. $core.method({
  51. selector: "setUp",
  52. protocol: 'fixture',
  53. fn: function (){
  54. var self=this;
  55. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  56. return $core.withContext(function($ctx1) {
  57. //>>excludeEnd("ctx");
  58. self["@fixtureDiv"]=$recv(document)._createElement_("div");
  59. $recv($recv(document)._body())._appendChild_(self["@fixtureDiv"]);
  60. $recv(self["@fixtureDiv"])._setAttribute_to_("id","fixture");
  61. $recv(self["@fixtureDiv"])._innerHTML_("sentinel");
  62. return self;
  63. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  64. }, function($ctx1) {$ctx1.fill(self,"setUp",{},$globals.DOMiteTest)});
  65. //>>excludeEnd("ctx");
  66. },
  67. //>>excludeStart("ide", pragmas.excludeIdeData);
  68. args: [],
  69. source: "setUp\x0a\x09fixtureDiv := document createElement: 'div'.\x0a\x09document body appendChild: fixtureDiv.\x0a\x09fixtureDiv setAttribute: 'id' to: 'fixture'.\x0a\x09fixtureDiv innerHTML: 'sentinel'",
  70. referencedClasses: [],
  71. //>>excludeEnd("ide");
  72. messageSends: ["createElement:", "appendChild:", "body", "setAttribute:to:", "innerHTML:"]
  73. }),
  74. $globals.DOMiteTest);
  75. $core.addMethod(
  76. $core.method({
  77. selector: "tearDown",
  78. protocol: 'fixture',
  79. fn: function (){
  80. var self=this;
  81. var lastChild;
  82. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  83. return $core.withContext(function($ctx1) {
  84. //>>excludeEnd("ctx");
  85. var $1;
  86. $1=$recv(document)._body();
  87. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  88. $ctx1.sendIdx["body"]=1;
  89. //>>excludeEnd("ctx");
  90. lastChild=$recv($1)._lastChild();
  91. self._assert_equals_(lastChild,self["@fixtureDiv"]);
  92. $recv($recv(document)._body())._removeChild_(lastChild);
  93. return self;
  94. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  95. }, function($ctx1) {$ctx1.fill(self,"tearDown",{lastChild:lastChild},$globals.DOMiteTest)});
  96. //>>excludeEnd("ctx");
  97. },
  98. //>>excludeStart("ide", pragmas.excludeIdeData);
  99. args: [],
  100. source: "tearDown\x0a\x09| lastChild |\x0a\x09lastChild := document body lastChild.\x0a\x09self assert: lastChild equals: fixtureDiv.\x0a\x09document body removeChild: lastChild",
  101. referencedClasses: [],
  102. //>>excludeEnd("ide");
  103. messageSends: ["lastChild", "body", "assert:equals:", "removeChild:"]
  104. }),
  105. $globals.DOMiteTest);
  106. $core.addMethod(
  107. $core.method({
  108. selector: "testDefaultInsertElement",
  109. protocol: 'testing',
  110. fn: function (){
  111. var self=this;
  112. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  113. return $core.withContext(function($ctx1) {
  114. //>>excludeEnd("ctx");
  115. var $2,$1,$3;
  116. $2=self._testedClass();
  117. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  118. $ctx1.sendIdx["testedClass"]=1;
  119. //>>excludeEnd("ctx");
  120. $1=$recv($2)._new();
  121. $recv($1).__lt_lt($recv(self._testedClass())._newElement_("p"));
  122. self._assertBodyEndsWith_("<p></p>");
  123. $3=$recv(document)._body();
  124. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  125. $ctx1.sendIdx["body"]=1;
  126. //>>excludeEnd("ctx");
  127. $recv($3)._removeChild_($recv($recv(document)._body())._lastChild());
  128. return self;
  129. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  130. }, function($ctx1) {$ctx1.fill(self,"testDefaultInsertElement",{},$globals.DOMiteTest)});
  131. //>>excludeEnd("ctx");
  132. },
  133. //>>excludeStart("ide", pragmas.excludeIdeData);
  134. args: [],
  135. source: "testDefaultInsertElement\x0a\x0a\x09self testedClass new << (self testedClass newElement: 'p').\x0a\x09self assertBodyEndsWith: '<p></p>'.\x0a\x09document body removeChild: document body lastChild",
  136. referencedClasses: [],
  137. //>>excludeEnd("ide");
  138. messageSends: ["<<", "new", "testedClass", "newElement:", "assertBodyEndsWith:", "removeChild:", "body", "lastChild"]
  139. }),
  140. $globals.DOMiteTest);
  141. $core.addMethod(
  142. $core.method({
  143. selector: "testDefaultInsertString",
  144. protocol: 'testing',
  145. fn: function (){
  146. var self=this;
  147. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  148. return $core.withContext(function($ctx1) {
  149. //>>excludeEnd("ctx");
  150. var $1;
  151. $recv($recv(self._testedClass())._new()).__lt_lt("a-foo--in-a-bar");
  152. self._assertBodyEndsWith_("a-foo--in-a-bar");
  153. $1=$recv(document)._body();
  154. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  155. $ctx1.sendIdx["body"]=1;
  156. //>>excludeEnd("ctx");
  157. $recv($1)._removeChild_($recv($recv(document)._body())._lastChild());
  158. return self;
  159. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  160. }, function($ctx1) {$ctx1.fill(self,"testDefaultInsertString",{},$globals.DOMiteTest)});
  161. //>>excludeEnd("ctx");
  162. },
  163. //>>excludeStart("ide", pragmas.excludeIdeData);
  164. args: [],
  165. source: "testDefaultInsertString\x0a\x09self testedClass new << 'a-foo--in-a-bar'.\x0a\x09self assertBodyEndsWith: 'a-foo--in-a-bar'.\x0a\x09document body removeChild: document body lastChild",
  166. referencedClasses: [],
  167. //>>excludeEnd("ide");
  168. messageSends: ["<<", "new", "testedClass", "assertBodyEndsWith:", "removeChild:", "body", "lastChild"]
  169. }),
  170. $globals.DOMiteTest);
  171. $core.addMethod(
  172. $core.method({
  173. selector: "testDefaultInsertStringInFragment",
  174. protocol: 'testing',
  175. fn: function (){
  176. var self=this;
  177. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  178. return $core.withContext(function($ctx1) {
  179. //>>excludeEnd("ctx");
  180. var $2,$1,$3;
  181. $2=self._testedClass();
  182. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  183. $ctx1.sendIdx["testedClass"]=1;
  184. //>>excludeEnd("ctx");
  185. $1=$recv($2)._new();
  186. $recv($1).__lt_lt($recv($recv(self._testedClass())._newStream()).__lt_lt("a-foo--in-a-bar"));
  187. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  188. $ctx1.sendIdx["<<"]=1;
  189. //>>excludeEnd("ctx");
  190. self._assertBodyEndsWith_("a-foo--in-a-bar");
  191. $3=$recv(document)._body();
  192. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  193. $ctx1.sendIdx["body"]=1;
  194. //>>excludeEnd("ctx");
  195. $recv($3)._removeChild_($recv($recv(document)._body())._lastChild());
  196. return self;
  197. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  198. }, function($ctx1) {$ctx1.fill(self,"testDefaultInsertStringInFragment",{},$globals.DOMiteTest)});
  199. //>>excludeEnd("ctx");
  200. },
  201. //>>excludeStart("ide", pragmas.excludeIdeData);
  202. args: [],
  203. source: "testDefaultInsertStringInFragment\x0a\x09self testedClass new << (self testedClass newStream << 'a-foo--in-a-bar').\x0a\x09self assertBodyEndsWith: 'a-foo--in-a-bar'.\x0a\x09document body removeChild: document body lastChild",
  204. referencedClasses: [],
  205. //>>excludeEnd("ide");
  206. messageSends: ["<<", "new", "testedClass", "newStream", "assertBodyEndsWith:", "removeChild:", "body", "lastChild"]
  207. }),
  208. $globals.DOMiteTest);
  209. $core.addMethod(
  210. $core.method({
  211. selector: "testEntityConversion",
  212. protocol: 'testing',
  213. fn: function (){
  214. var self=this;
  215. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  216. return $core.withContext(function($ctx1) {
  217. //>>excludeEnd("ctx");
  218. self._assert_equals_("&copy;"._htmlTextContent(),"©");
  219. return self;
  220. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  221. }, function($ctx1) {$ctx1.fill(self,"testEntityConversion",{},$globals.DOMiteTest)});
  222. //>>excludeEnd("ctx");
  223. },
  224. //>>excludeStart("ide", pragmas.excludeIdeData);
  225. args: [],
  226. source: "testEntityConversion\x0a\x09self assert: '&copy;' htmlTextContent equals: '©'",
  227. referencedClasses: [],
  228. //>>excludeEnd("ide");
  229. messageSends: ["assert:equals:", "htmlTextContent"]
  230. }),
  231. $globals.DOMiteTest);
  232. $core.addMethod(
  233. $core.method({
  234. selector: "testFromBadSelectorIsInvalid",
  235. protocol: 'testing',
  236. fn: function (){
  237. var self=this;
  238. var d;
  239. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  240. return $core.withContext(function($ctx1) {
  241. //>>excludeEnd("ctx");
  242. var $1,$2,$3,$4;
  243. $1=self._testedClass();
  244. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  245. $ctx1.sendIdx["testedClass"]=1;
  246. //>>excludeEnd("ctx");
  247. d=$recv($1)._at_("#goo");
  248. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  249. $ctx1.sendIdx["at:"]=1;
  250. //>>excludeEnd("ctx");
  251. $2=$recv(d)._isInvalid();
  252. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  253. $ctx1.sendIdx["isInvalid"]=1;
  254. //>>excludeEnd("ctx");
  255. self._assert_($2);
  256. $3=self._testedClass();
  257. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  258. $ctx1.sendIdx["testedClass"]=2;
  259. //>>excludeEnd("ctx");
  260. d=$recv($3)._at_("body");
  261. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  262. $ctx1.sendIdx["at:"]=2;
  263. //>>excludeEnd("ctx");
  264. $4=$recv(d)._isInvalid();
  265. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  266. $ctx1.sendIdx["isInvalid"]=2;
  267. //>>excludeEnd("ctx");
  268. self._deny_($4);
  269. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  270. $ctx1.sendIdx["deny:"]=1;
  271. //>>excludeEnd("ctx");
  272. d=$recv(self._testedClass())._at_("html body div#fixture");
  273. self._deny_($recv(d)._isInvalid());
  274. return self;
  275. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  276. }, function($ctx1) {$ctx1.fill(self,"testFromBadSelectorIsInvalid",{d:d},$globals.DOMiteTest)});
  277. //>>excludeEnd("ctx");
  278. },
  279. //>>excludeStart("ide", pragmas.excludeIdeData);
  280. args: [],
  281. source: "testFromBadSelectorIsInvalid\x0a\x09| d |\x0a\x09d := self testedClass at: '#goo'.\x0a\x09self assert: d isInvalid.\x0a\x09d := self testedClass at: 'body'.\x0a\x09self deny: d isInvalid.\x0a\x09d := self testedClass at: 'html body div#fixture'.\x0a\x09self deny: d isInvalid",
  282. referencedClasses: [],
  283. //>>excludeEnd("ide");
  284. messageSends: ["at:", "testedClass", "assert:", "isInvalid", "deny:"]
  285. }),
  286. $globals.DOMiteTest);
  287. $core.addMethod(
  288. $core.method({
  289. selector: "testInsertDomNode",
  290. protocol: 'testing',
  291. fn: function (){
  292. var self=this;
  293. var d;
  294. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  295. return $core.withContext(function($ctx1) {
  296. //>>excludeEnd("ctx");
  297. d=$recv(self._testedClass())._fromElement_(self["@fixtureDiv"]);
  298. $recv(d).__lt_lt($recv(document)._createElement_("pre"));
  299. self._assertBodyEndsWith_(">sentinel<pre></pre></div>");
  300. return self;
  301. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  302. }, function($ctx1) {$ctx1.fill(self,"testInsertDomNode",{d:d},$globals.DOMiteTest)});
  303. //>>excludeEnd("ctx");
  304. },
  305. //>>excludeStart("ide", pragmas.excludeIdeData);
  306. args: [],
  307. source: "testInsertDomNode\x0a\x09| d |\x0a\x09d := self testedClass fromElement: fixtureDiv.\x0a\x09d << (document createElement: 'pre').\x0a\x09self assertBodyEndsWith: '>sentinel<pre></pre></div>'",
  308. referencedClasses: [],
  309. //>>excludeEnd("ide");
  310. messageSends: ["fromElement:", "testedClass", "<<", "createElement:", "assertBodyEndsWith:"]
  311. }),
  312. $globals.DOMiteTest);
  313. $core.addMethod(
  314. $core.method({
  315. selector: "testInsertDomNodeInFragment",
  316. protocol: 'testing',
  317. fn: function (){
  318. var self=this;
  319. var d;
  320. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  321. return $core.withContext(function($ctx1) {
  322. //>>excludeEnd("ctx");
  323. var $1;
  324. $1=self._testedClass();
  325. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  326. $ctx1.sendIdx["testedClass"]=1;
  327. //>>excludeEnd("ctx");
  328. d=$recv($1)._at_("#fixture");
  329. $recv(d).__lt_lt($recv($recv(self._testedClass())._newStream()).__lt_lt($recv(document)._createElement_("script")));
  330. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  331. $ctx1.sendIdx["<<"]=1;
  332. //>>excludeEnd("ctx");
  333. self._assertBodyEndsWith_(">sentinel<script></script></div>");
  334. return self;
  335. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  336. }, function($ctx1) {$ctx1.fill(self,"testInsertDomNodeInFragment",{d:d},$globals.DOMiteTest)});
  337. //>>excludeEnd("ctx");
  338. },
  339. //>>excludeStart("ide", pragmas.excludeIdeData);
  340. args: [],
  341. source: "testInsertDomNodeInFragment\x0a\x09| d |\x0a\x09d := self testedClass at: '#fixture'.\x0a\x09d << (self testedClass newStream << (document createElement: 'script')).\x0a\x09self assertBodyEndsWith: '>sentinel<script></script></div>'",
  342. referencedClasses: [],
  343. //>>excludeEnd("ide");
  344. messageSends: ["at:", "testedClass", "<<", "newStream", "createElement:", "assertBodyEndsWith:"]
  345. }),
  346. $globals.DOMiteTest);
  347. $core.addMethod(
  348. $core.method({
  349. selector: "testInsertElement",
  350. protocol: 'testing',
  351. fn: function (){
  352. var self=this;
  353. var d;
  354. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  355. return $core.withContext(function($ctx1) {
  356. //>>excludeEnd("ctx");
  357. var $1;
  358. $1=self._testedClass();
  359. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  360. $ctx1.sendIdx["testedClass"]=1;
  361. //>>excludeEnd("ctx");
  362. d=$recv($1)._at_("html body div#fixture");
  363. $recv(d).__lt_lt($recv(self._testedClass())._newElement_("p"));
  364. self._assertBodyEndsWith_(">sentinel<p></p></div>");
  365. return self;
  366. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  367. }, function($ctx1) {$ctx1.fill(self,"testInsertElement",{d:d},$globals.DOMiteTest)});
  368. //>>excludeEnd("ctx");
  369. },
  370. //>>excludeStart("ide", pragmas.excludeIdeData);
  371. args: [],
  372. source: "testInsertElement\x0a\x09| d |\x0a\x09d := self testedClass at: 'html body div#fixture'.\x0a\x09d << (self testedClass newElement: 'p').\x0a\x09self assertBodyEndsWith: '>sentinel<p></p></div>'",
  373. referencedClasses: [],
  374. //>>excludeEnd("ide");
  375. messageSends: ["at:", "testedClass", "<<", "newElement:", "assertBodyEndsWith:"]
  376. }),
  377. $globals.DOMiteTest);
  378. $core.addMethod(
  379. $core.method({
  380. selector: "testInsertElementTwoLevel",
  381. protocol: 'testing',
  382. fn: function (){
  383. var self=this;
  384. var d,p,s;
  385. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  386. return $core.withContext(function($ctx1) {
  387. //>>excludeEnd("ctx");
  388. var $1,$2;
  389. $1=self._testedClass();
  390. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  391. $ctx1.sendIdx["testedClass"]=1;
  392. //>>excludeEnd("ctx");
  393. d=$recv($1)._fromElement_(self["@fixtureDiv"]);
  394. $2=self._testedClass();
  395. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  396. $ctx1.sendIdx["testedClass"]=2;
  397. //>>excludeEnd("ctx");
  398. p=$recv($2)._newElement_("p");
  399. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  400. $ctx1.sendIdx["newElement:"]=1;
  401. //>>excludeEnd("ctx");
  402. $recv(d).__lt_lt(p);
  403. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  404. $ctx1.sendIdx["<<"]=1;
  405. //>>excludeEnd("ctx");
  406. s=$recv(self._testedClass())._newElement_("span");
  407. $recv(p).__lt_lt(s);
  408. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  409. $ctx1.sendIdx["<<"]=2;
  410. //>>excludeEnd("ctx");
  411. $recv(s).__lt_lt("dom-mite");
  412. self._assertBodyEndsWith_(">sentinel<p><span>dom-mite</span></p></div>");
  413. return self;
  414. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  415. }, function($ctx1) {$ctx1.fill(self,"testInsertElementTwoLevel",{d:d,p:p,s:s},$globals.DOMiteTest)});
  416. //>>excludeEnd("ctx");
  417. },
  418. //>>excludeStart("ide", pragmas.excludeIdeData);
  419. args: [],
  420. source: "testInsertElementTwoLevel\x0a\x09| d p s |\x0a\x09d := self testedClass fromElement: fixtureDiv.\x0a\x09p := self testedClass newElement: 'p'.\x0a\x09d << p.\x0a\x09s := self testedClass newElement: 'span'.\x0a\x09p << s.\x0a\x09s << 'dom-mite'.\x0a\x09self assertBodyEndsWith: '>sentinel<p><span>dom-mite</span></p></div>'",
  421. referencedClasses: [],
  422. //>>excludeEnd("ide");
  423. messageSends: ["fromElement:", "testedClass", "newElement:", "<<", "assertBodyEndsWith:"]
  424. }),
  425. $globals.DOMiteTest);
  426. $core.addMethod(
  427. $core.method({
  428. selector: "testInsertElementTwoLevelViaFragments",
  429. protocol: 'testing',
  430. fn: function (){
  431. var self=this;
  432. var d,p,s;
  433. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  434. return $core.withContext(function($ctx1) {
  435. //>>excludeEnd("ctx");
  436. var $1,$2,$3,$6,$5,$4,$7,$8,$11,$10,$9;
  437. $1=self._testedClass();
  438. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  439. $ctx1.sendIdx["testedClass"]=1;
  440. //>>excludeEnd("ctx");
  441. d=$recv($1)._at_("#fixture");
  442. $2=self._testedClass();
  443. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  444. $ctx1.sendIdx["testedClass"]=2;
  445. //>>excludeEnd("ctx");
  446. p=$recv($2)._newElement_("p");
  447. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  448. $ctx1.sendIdx["newElement:"]=1;
  449. //>>excludeEnd("ctx");
  450. $3=d;
  451. $6=self._testedClass();
  452. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  453. $ctx1.sendIdx["testedClass"]=3;
  454. //>>excludeEnd("ctx");
  455. $5=$recv($6)._newStream();
  456. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  457. $ctx1.sendIdx["newStream"]=1;
  458. //>>excludeEnd("ctx");
  459. $4=$recv($5).__lt_lt(p);
  460. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  461. $ctx1.sendIdx["<<"]=2;
  462. //>>excludeEnd("ctx");
  463. $recv($3).__lt_lt($4);
  464. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  465. $ctx1.sendIdx["<<"]=1;
  466. //>>excludeEnd("ctx");
  467. $7=self._testedClass();
  468. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  469. $ctx1.sendIdx["testedClass"]=4;
  470. //>>excludeEnd("ctx");
  471. s=$recv($7)._newElement_("span");
  472. $8=p;
  473. $11=self._testedClass();
  474. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  475. $ctx1.sendIdx["testedClass"]=5;
  476. //>>excludeEnd("ctx");
  477. $10=$recv($11)._newStream();
  478. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  479. $ctx1.sendIdx["newStream"]=2;
  480. //>>excludeEnd("ctx");
  481. $9=$recv($10).__lt_lt(s);
  482. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  483. $ctx1.sendIdx["<<"]=4;
  484. //>>excludeEnd("ctx");
  485. $recv($8).__lt_lt($9);
  486. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  487. $ctx1.sendIdx["<<"]=3;
  488. //>>excludeEnd("ctx");
  489. $recv(s).__lt_lt($recv($recv(self._testedClass())._newStream()).__lt_lt("dom-mite"));
  490. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  491. $ctx1.sendIdx["<<"]=5;
  492. //>>excludeEnd("ctx");
  493. self._assertBodyEndsWith_(">sentinel<p><span>dom-mite</span></p></div>");
  494. return self;
  495. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  496. }, function($ctx1) {$ctx1.fill(self,"testInsertElementTwoLevelViaFragments",{d:d,p:p,s:s},$globals.DOMiteTest)});
  497. //>>excludeEnd("ctx");
  498. },
  499. //>>excludeStart("ide", pragmas.excludeIdeData);
  500. args: [],
  501. source: "testInsertElementTwoLevelViaFragments\x0a\x09| d p s |\x0a\x09d := self testedClass at: '#fixture'.\x0a\x09p := self testedClass newElement: 'p'.\x0a\x09d << (self testedClass newStream << p).\x0a\x09s := self testedClass newElement: 'span'.\x0a\x09p << (self testedClass newStream << s).\x0a\x09s << (self testedClass newStream << 'dom-mite').\x0a\x09self assertBodyEndsWith: '>sentinel<p><span>dom-mite</span></p></div>'",
  502. referencedClasses: [],
  503. //>>excludeEnd("ide");
  504. messageSends: ["at:", "testedClass", "newElement:", "<<", "newStream", "assertBodyEndsWith:"]
  505. }),
  506. $globals.DOMiteTest);
  507. $core.addMethod(
  508. $core.method({
  509. selector: "testInsertElementTwoLevelViaTwoLevelFragments",
  510. protocol: 'testing',
  511. fn: function (){
  512. var self=this;
  513. var d,p,s;
  514. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  515. return $core.withContext(function($ctx1) {
  516. //>>excludeEnd("ctx");
  517. var $1,$2,$3,$6,$5,$9,$8,$7,$4,$10,$11,$14,$13,$17,$16,$15,$12,$18,$21,$20,$19;
  518. $1=self._testedClass();
  519. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  520. $ctx1.sendIdx["testedClass"]=1;
  521. //>>excludeEnd("ctx");
  522. d=$recv($1)._fromElement_(self["@fixtureDiv"]);
  523. $2=self._testedClass();
  524. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  525. $ctx1.sendIdx["testedClass"]=2;
  526. //>>excludeEnd("ctx");
  527. p=$recv($2)._newElement_("p");
  528. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  529. $ctx1.sendIdx["newElement:"]=1;
  530. //>>excludeEnd("ctx");
  531. $3=d;
  532. $6=self._testedClass();
  533. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  534. $ctx1.sendIdx["testedClass"]=3;
  535. //>>excludeEnd("ctx");
  536. $5=$recv($6)._newStream();
  537. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  538. $ctx1.sendIdx["newStream"]=1;
  539. //>>excludeEnd("ctx");
  540. $9=self._testedClass();
  541. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  542. $ctx1.sendIdx["testedClass"]=4;
  543. //>>excludeEnd("ctx");
  544. $8=$recv($9)._newStream();
  545. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  546. $ctx1.sendIdx["newStream"]=2;
  547. //>>excludeEnd("ctx");
  548. $7=$recv($8).__lt_lt(p);
  549. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  550. $ctx1.sendIdx["<<"]=3;
  551. //>>excludeEnd("ctx");
  552. $4=$recv($5).__lt_lt($7);
  553. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  554. $ctx1.sendIdx["<<"]=2;
  555. //>>excludeEnd("ctx");
  556. $recv($3).__lt_lt($4);
  557. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  558. $ctx1.sendIdx["<<"]=1;
  559. //>>excludeEnd("ctx");
  560. $10=self._testedClass();
  561. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  562. $ctx1.sendIdx["testedClass"]=5;
  563. //>>excludeEnd("ctx");
  564. s=$recv($10)._newElement_("span");
  565. $11=p;
  566. $14=self._testedClass();
  567. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  568. $ctx1.sendIdx["testedClass"]=6;
  569. //>>excludeEnd("ctx");
  570. $13=$recv($14)._newStream();
  571. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  572. $ctx1.sendIdx["newStream"]=3;
  573. //>>excludeEnd("ctx");
  574. $17=self._testedClass();
  575. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  576. $ctx1.sendIdx["testedClass"]=7;
  577. //>>excludeEnd("ctx");
  578. $16=$recv($17)._newStream();
  579. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  580. $ctx1.sendIdx["newStream"]=4;
  581. //>>excludeEnd("ctx");
  582. $15=$recv($16).__lt_lt(s);
  583. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  584. $ctx1.sendIdx["<<"]=6;
  585. //>>excludeEnd("ctx");
  586. $12=$recv($13).__lt_lt($15);
  587. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  588. $ctx1.sendIdx["<<"]=5;
  589. //>>excludeEnd("ctx");
  590. $recv($11).__lt_lt($12);
  591. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  592. $ctx1.sendIdx["<<"]=4;
  593. //>>excludeEnd("ctx");
  594. $18=s;
  595. $21=self._testedClass();
  596. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  597. $ctx1.sendIdx["testedClass"]=8;
  598. //>>excludeEnd("ctx");
  599. $20=$recv($21)._newStream();
  600. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  601. $ctx1.sendIdx["newStream"]=5;
  602. //>>excludeEnd("ctx");
  603. $19=$recv($20).__lt_lt($recv($recv(self._testedClass())._newStream()).__lt_lt("dom-mite"));
  604. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  605. $ctx1.sendIdx["<<"]=8;
  606. //>>excludeEnd("ctx");
  607. $recv($18).__lt_lt($19);
  608. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  609. $ctx1.sendIdx["<<"]=7;
  610. //>>excludeEnd("ctx");
  611. self._assertBodyEndsWith_(">sentinel<p><span>dom-mite</span></p></div>");
  612. return self;
  613. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  614. }, function($ctx1) {$ctx1.fill(self,"testInsertElementTwoLevelViaTwoLevelFragments",{d:d,p:p,s:s},$globals.DOMiteTest)});
  615. //>>excludeEnd("ctx");
  616. },
  617. //>>excludeStart("ide", pragmas.excludeIdeData);
  618. args: [],
  619. source: "testInsertElementTwoLevelViaTwoLevelFragments\x0a\x09| d p s |\x0a\x09d := self testedClass fromElement: fixtureDiv.\x0a\x09p := self testedClass newElement: 'p'.\x0a\x09d << (self testedClass newStream << (self testedClass newStream << p)).\x0a\x09s := self testedClass newElement: 'span'.\x0a\x09p << (self testedClass newStream << (self testedClass newStream << s)).\x0a\x09s << (self testedClass newStream << (self testedClass newStream << 'dom-mite')).\x0a\x09self assertBodyEndsWith: '>sentinel<p><span>dom-mite</span></p></div>'",
  620. referencedClasses: [],
  621. //>>excludeEnd("ide");
  622. messageSends: ["fromElement:", "testedClass", "newElement:", "<<", "newStream", "assertBodyEndsWith:"]
  623. }),
  624. $globals.DOMiteTest);
  625. $core.addMethod(
  626. $core.method({
  627. selector: "testInsertString",
  628. protocol: 'testing',
  629. fn: function (){
  630. var self=this;
  631. var d;
  632. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  633. return $core.withContext(function($ctx1) {
  634. //>>excludeEnd("ctx");
  635. d=$recv(self._testedClass())._fromElement_(self["@fixtureDiv"]);
  636. $recv(d).__lt_lt("a-foo--in-a-bar");
  637. self._assertBodyEndsWith_(">sentinela-foo--in-a-bar</div>");
  638. return self;
  639. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  640. }, function($ctx1) {$ctx1.fill(self,"testInsertString",{d:d},$globals.DOMiteTest)});
  641. //>>excludeEnd("ctx");
  642. },
  643. //>>excludeStart("ide", pragmas.excludeIdeData);
  644. args: [],
  645. source: "testInsertString\x0a\x09| d |\x0a\x09d := self testedClass fromElement: fixtureDiv.\x0a\x09d << 'a-foo--in-a-bar'.\x0a\x09self assertBodyEndsWith: '>sentinela-foo--in-a-bar</div>'",
  646. referencedClasses: [],
  647. //>>excludeEnd("ide");
  648. messageSends: ["fromElement:", "testedClass", "<<", "assertBodyEndsWith:"]
  649. }),
  650. $globals.DOMiteTest);
  651. $core.addMethod(
  652. $core.method({
  653. selector: "testInsertStringInFragment",
  654. protocol: 'testing',
  655. fn: function (){
  656. var self=this;
  657. var d;
  658. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  659. return $core.withContext(function($ctx1) {
  660. //>>excludeEnd("ctx");
  661. var $1;
  662. $1=self._testedClass();
  663. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  664. $ctx1.sendIdx["testedClass"]=1;
  665. //>>excludeEnd("ctx");
  666. d=$recv($1)._at_("#fixture");
  667. $recv(d).__lt_lt($recv($recv(self._testedClass())._newStream()).__lt_lt("a-foo--in-a-bar"));
  668. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  669. $ctx1.sendIdx["<<"]=1;
  670. //>>excludeEnd("ctx");
  671. self._assertBodyEndsWith_(">sentinela-foo--in-a-bar</div>");
  672. return self;
  673. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  674. }, function($ctx1) {$ctx1.fill(self,"testInsertStringInFragment",{d:d},$globals.DOMiteTest)});
  675. //>>excludeEnd("ctx");
  676. },
  677. //>>excludeStart("ide", pragmas.excludeIdeData);
  678. args: [],
  679. source: "testInsertStringInFragment\x0a\x09| d |\x0a\x09d := self testedClass at: '#fixture'.\x0a\x09d << (self testedClass newStream << 'a-foo--in-a-bar').\x0a\x09self assertBodyEndsWith: '>sentinela-foo--in-a-bar</div>'",
  680. referencedClasses: [],
  681. //>>excludeEnd("ide");
  682. messageSends: ["at:", "testedClass", "<<", "newStream", "assertBodyEndsWith:"]
  683. }),
  684. $globals.DOMiteTest);
  685. $core.addMethod(
  686. $core.method({
  687. selector: "testInsertTable",
  688. protocol: 'testing',
  689. fn: function (){
  690. var self=this;
  691. var d,tbl,tr;
  692. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  693. return $core.withContext(function($ctx1) {
  694. //>>excludeEnd("ctx");
  695. var $1,$2,$3,$4,$7,$6,$5,$8,$11,$10,$9,$12,$15,$14,$13,$16,$17,$20,$19,$18,$21,$24,$23,$22,$25,$26;
  696. $1=self._testedClass();
  697. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  698. $ctx1.sendIdx["testedClass"]=1;
  699. //>>excludeEnd("ctx");
  700. d=$recv($1)._at_("html body div#fixture");
  701. $2=self._testedClass();
  702. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  703. $ctx1.sendIdx["testedClass"]=2;
  704. //>>excludeEnd("ctx");
  705. tbl=$recv($2)._newElement_("table");
  706. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  707. $ctx1.sendIdx["newElement:"]=1;
  708. //>>excludeEnd("ctx");
  709. $3=self._testedClass();
  710. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  711. $ctx1.sendIdx["testedClass"]=3;
  712. //>>excludeEnd("ctx");
  713. tr=$recv($3)._newElement_("tr");
  714. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  715. $ctx1.sendIdx["newElement:"]=2;
  716. //>>excludeEnd("ctx");
  717. $4=tr;
  718. $7=self._testedClass();
  719. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  720. $ctx1.sendIdx["testedClass"]=4;
  721. //>>excludeEnd("ctx");
  722. $6=$recv($7)._newElement_("td");
  723. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  724. $ctx1.sendIdx["newElement:"]=3;
  725. //>>excludeEnd("ctx");
  726. $5=$recv($6).__lt_lt("A");
  727. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  728. $ctx1.sendIdx["<<"]=2;
  729. //>>excludeEnd("ctx");
  730. $recv($4).__lt_lt($5);
  731. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  732. $ctx1.sendIdx["<<"]=1;
  733. //>>excludeEnd("ctx");
  734. $8=tr;
  735. $11=self._testedClass();
  736. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  737. $ctx1.sendIdx["testedClass"]=5;
  738. //>>excludeEnd("ctx");
  739. $10=$recv($11)._newElement_("td");
  740. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  741. $ctx1.sendIdx["newElement:"]=4;
  742. //>>excludeEnd("ctx");
  743. $9=$recv($10).__lt_lt("B");
  744. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  745. $ctx1.sendIdx["<<"]=4;
  746. //>>excludeEnd("ctx");
  747. $recv($8).__lt_lt($9);
  748. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  749. $ctx1.sendIdx["<<"]=3;
  750. //>>excludeEnd("ctx");
  751. $12=tr;
  752. $15=self._testedClass();
  753. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  754. $ctx1.sendIdx["testedClass"]=6;
  755. //>>excludeEnd("ctx");
  756. $14=$recv($15)._newElement_("td");
  757. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  758. $ctx1.sendIdx["newElement:"]=5;
  759. //>>excludeEnd("ctx");
  760. $13=$recv($14).__lt_lt("C");
  761. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  762. $ctx1.sendIdx["<<"]=6;
  763. //>>excludeEnd("ctx");
  764. $recv($12).__lt_lt($13);
  765. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  766. $ctx1.sendIdx["<<"]=5;
  767. //>>excludeEnd("ctx");
  768. $recv(tbl).__lt_lt(tr);
  769. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  770. $ctx1.sendIdx["<<"]=7;
  771. //>>excludeEnd("ctx");
  772. $16=self._testedClass();
  773. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  774. $ctx1.sendIdx["testedClass"]=7;
  775. //>>excludeEnd("ctx");
  776. tr=$recv($16)._newElement_("tr");
  777. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  778. $ctx1.sendIdx["newElement:"]=6;
  779. //>>excludeEnd("ctx");
  780. $17=tr;
  781. $20=self._testedClass();
  782. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  783. $ctx1.sendIdx["testedClass"]=8;
  784. //>>excludeEnd("ctx");
  785. $19=$recv($20)._newElement_("td");
  786. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  787. $ctx1.sendIdx["newElement:"]=7;
  788. //>>excludeEnd("ctx");
  789. $18=$recv($19).__lt_lt("D");
  790. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  791. $ctx1.sendIdx["<<"]=9;
  792. //>>excludeEnd("ctx");
  793. $recv($17).__lt_lt($18);
  794. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  795. $ctx1.sendIdx["<<"]=8;
  796. //>>excludeEnd("ctx");
  797. $21=tr;
  798. $24=self._testedClass();
  799. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  800. $ctx1.sendIdx["testedClass"]=9;
  801. //>>excludeEnd("ctx");
  802. $23=$recv($24)._newElement_("td");
  803. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  804. $ctx1.sendIdx["newElement:"]=8;
  805. //>>excludeEnd("ctx");
  806. $22=$recv($23).__lt_lt("E");
  807. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  808. $ctx1.sendIdx["<<"]=11;
  809. //>>excludeEnd("ctx");
  810. $recv($21).__lt_lt($22);
  811. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  812. $ctx1.sendIdx["<<"]=10;
  813. //>>excludeEnd("ctx");
  814. $25=tr;
  815. $26=$recv($recv(self._testedClass())._newElement_("td")).__lt_lt("F");
  816. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  817. $ctx1.sendIdx["<<"]=13;
  818. //>>excludeEnd("ctx");
  819. $recv($25).__lt_lt($26);
  820. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  821. $ctx1.sendIdx["<<"]=12;
  822. //>>excludeEnd("ctx");
  823. $recv(tbl).__lt_lt(tr);
  824. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  825. $ctx1.sendIdx["<<"]=14;
  826. //>>excludeEnd("ctx");
  827. $recv(d).__lt_lt(tbl);
  828. 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>");
  829. return self;
  830. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  831. }, function($ctx1) {$ctx1.fill(self,"testInsertTable",{d:d,tbl:tbl,tr:tr},$globals.DOMiteTest)});
  832. //>>excludeEnd("ctx");
  833. },
  834. //>>excludeStart("ide", pragmas.excludeIdeData);
  835. args: [],
  836. source: "testInsertTable\x0a\x09| d tbl tr |\x0a\x09d := self testedClass at: 'html body div#fixture'.\x0a\x09tbl := self testedClass newElement: 'table'.\x0a\x09\x0a\x09tr := self testedClass newElement: 'tr'.\x0a\x09tr << ((self testedClass newElement: 'td') << 'A').\x0a\x09tr << ((self testedClass newElement: 'td') << 'B').\x0a\x09tr << ((self testedClass newElement: 'td') << 'C').\x0a\x09\x0a\x09tbl << tr.\x0a\x09\x0a\x09tr := self testedClass newElement: 'tr'.\x0a\x09tr << ((self testedClass newElement: 'td') << 'D').\x0a\x09tr << ((self testedClass newElement: 'td') << 'E').\x0a\x09tr << ((self testedClass newElement: 'td') << 'F').\x0a\x09\x0a\x09tbl << tr.\x0a\x09d << tbl.\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>'",
  837. referencedClasses: [],
  838. //>>excludeEnd("ide");
  839. messageSends: ["at:", "testedClass", "newElement:", "<<", "assertBodyEndsWith:"]
  840. }),
  841. $globals.DOMiteTest);
  842. $core.addMethod(
  843. $core.method({
  844. selector: "testMultipleInserts",
  845. protocol: 'testing',
  846. fn: function (){
  847. var self=this;
  848. var d,p,s;
  849. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  850. return $core.withContext(function($ctx1) {
  851. //>>excludeEnd("ctx");
  852. var $1,$2;
  853. $1=self._testedClass();
  854. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  855. $ctx1.sendIdx["testedClass"]=1;
  856. //>>excludeEnd("ctx");
  857. d=$recv($1)._fromElement_(self["@fixtureDiv"]);
  858. $2=self._testedClass();
  859. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  860. $ctx1.sendIdx["testedClass"]=2;
  861. //>>excludeEnd("ctx");
  862. p=$recv($2)._newElement_("p");
  863. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  864. $ctx1.sendIdx["newElement:"]=1;
  865. //>>excludeEnd("ctx");
  866. $recv(d).__lt_lt(p);
  867. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  868. $ctx1.sendIdx["<<"]=1;
  869. //>>excludeEnd("ctx");
  870. s=$recv(self._testedClass())._newElement_("span");
  871. $recv(d).__lt_lt(s);
  872. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  873. $ctx1.sendIdx["<<"]=2;
  874. //>>excludeEnd("ctx");
  875. $recv(d).__lt_lt("dom-mite");
  876. self._assertBodyEndsWith_(">sentinel<p></p><span></span>dom-mite</div>");
  877. return self;
  878. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  879. }, function($ctx1) {$ctx1.fill(self,"testMultipleInserts",{d:d,p:p,s:s},$globals.DOMiteTest)});
  880. //>>excludeEnd("ctx");
  881. },
  882. //>>excludeStart("ide", pragmas.excludeIdeData);
  883. args: [],
  884. source: "testMultipleInserts\x0a\x09| d p s |\x0a\x09d := self testedClass fromElement: fixtureDiv.\x0a\x09p := self testedClass newElement: 'p'.\x0a\x09d << p.\x0a\x09s := self testedClass newElement: 'span'.\x0a\x09d << s.\x0a\x09d << 'dom-mite'.\x0a\x09self assertBodyEndsWith: '>sentinel<p></p><span></span>dom-mite</div>'",
  885. referencedClasses: [],
  886. //>>excludeEnd("ide");
  887. messageSends: ["fromElement:", "testedClass", "newElement:", "<<", "assertBodyEndsWith:"]
  888. }),
  889. $globals.DOMiteTest);
  890. $core.addMethod(
  891. $core.method({
  892. selector: "testMultipleInsertsWithClear",
  893. protocol: 'testing',
  894. fn: function (){
  895. var self=this;
  896. var d,p,s;
  897. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  898. return $core.withContext(function($ctx1) {
  899. //>>excludeEnd("ctx");
  900. var $1,$2;
  901. $1=self._testedClass();
  902. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  903. $ctx1.sendIdx["testedClass"]=1;
  904. //>>excludeEnd("ctx");
  905. d=$recv($1)._at_("#fixture");
  906. $2=self._testedClass();
  907. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  908. $ctx1.sendIdx["testedClass"]=2;
  909. //>>excludeEnd("ctx");
  910. p=$recv($2)._newElement_("p");
  911. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  912. $ctx1.sendIdx["newElement:"]=1;
  913. //>>excludeEnd("ctx");
  914. $recv(d).__lt_lt(p);
  915. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  916. $ctx1.sendIdx["<<"]=1;
  917. //>>excludeEnd("ctx");
  918. s=$recv(self._testedClass())._newElement_("span");
  919. $recv(d).__lt_lt(s);
  920. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  921. $ctx1.sendIdx["<<"]=2;
  922. //>>excludeEnd("ctx");
  923. $recv(d)._resetContents();
  924. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  925. $ctx1.sendIdx["resetContents"]=1;
  926. //>>excludeEnd("ctx");
  927. $recv(d).__lt_lt("dom-mite");
  928. $recv(d)._resetContents();
  929. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  930. $ctx1.sendIdx["resetContents"]=2;
  931. //>>excludeEnd("ctx");
  932. $recv(d)._resetContents();
  933. self._assertBodyEndsWith_("></div>");
  934. return self;
  935. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  936. }, function($ctx1) {$ctx1.fill(self,"testMultipleInsertsWithClear",{d:d,p:p,s:s},$globals.DOMiteTest)});
  937. //>>excludeEnd("ctx");
  938. },
  939. //>>excludeStart("ide", pragmas.excludeIdeData);
  940. args: [],
  941. source: "testMultipleInsertsWithClear\x0a\x09| d p s |\x0a\x09d := self testedClass at: '#fixture'.\x0a\x09p := self testedClass newElement: 'p'.\x0a\x09d << p.\x0a\x09s := self testedClass newElement: 'span'.\x0a\x09d << s.\x0a\x09d resetContents.\x0a\x09d << 'dom-mite'.\x0a\x09d resetContents.\x0a\x09d resetContents.\x0a\x09self assertBodyEndsWith: '></div>'",
  942. referencedClasses: [],
  943. //>>excludeEnd("ide");
  944. messageSends: ["at:", "testedClass", "newElement:", "<<", "resetContents", "assertBodyEndsWith:"]
  945. }),
  946. $globals.DOMiteTest);
  947. $core.addMethod(
  948. $core.method({
  949. selector: "testMultipleInsertsWithClearInBetween",
  950. protocol: 'testing',
  951. fn: function (){
  952. var self=this;
  953. var d,p,s;
  954. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  955. return $core.withContext(function($ctx1) {
  956. //>>excludeEnd("ctx");
  957. var $1,$2;
  958. $1=self._testedClass();
  959. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  960. $ctx1.sendIdx["testedClass"]=1;
  961. //>>excludeEnd("ctx");
  962. d=$recv($1)._fromElement_(self["@fixtureDiv"]);
  963. $2=self._testedClass();
  964. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  965. $ctx1.sendIdx["testedClass"]=2;
  966. //>>excludeEnd("ctx");
  967. p=$recv($2)._newElement_("p");
  968. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  969. $ctx1.sendIdx["newElement:"]=1;
  970. //>>excludeEnd("ctx");
  971. $recv(d).__lt_lt(p);
  972. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  973. $ctx1.sendIdx["<<"]=1;
  974. //>>excludeEnd("ctx");
  975. s=$recv(self._testedClass())._newElement_("span");
  976. $recv(d).__lt_lt(s);
  977. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  978. $ctx1.sendIdx["<<"]=2;
  979. //>>excludeEnd("ctx");
  980. $recv(d)._resetContents();
  981. $recv(d).__lt_lt("dom-mite");
  982. self._assertBodyEndsWith_(">dom-mite</div>");
  983. return self;
  984. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  985. }, function($ctx1) {$ctx1.fill(self,"testMultipleInsertsWithClearInBetween",{d:d,p:p,s:s},$globals.DOMiteTest)});
  986. //>>excludeEnd("ctx");
  987. },
  988. //>>excludeStart("ide", pragmas.excludeIdeData);
  989. args: [],
  990. source: "testMultipleInsertsWithClearInBetween\x0a\x09| d p s |\x0a\x09d := self testedClass fromElement: fixtureDiv.\x0a\x09p := self testedClass newElement: 'p'.\x0a\x09d << p.\x0a\x09s := self testedClass newElement: 'span'.\x0a\x09d << s.\x0a\x09d resetContents.\x0a\x09d << 'dom-mite'.\x0a\x09self assertBodyEndsWith: '>dom-mite</div>'",
  991. referencedClasses: [],
  992. //>>excludeEnd("ide");
  993. messageSends: ["fromElement:", "testedClass", "newElement:", "<<", "resetContents", "assertBodyEndsWith:"]
  994. }),
  995. $globals.DOMiteTest);
  996. $core.addMethod(
  997. $core.method({
  998. selector: "testTextContentDoesNotRunScript",
  999. protocol: 'testing',
  1000. fn: function (){
  1001. var self=this;
  1002. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1003. return $core.withContext(function($ctx1) {
  1004. //>>excludeEnd("ctx");
  1005. self._shouldnt_raise_((function(){
  1006. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1007. return $core.withContext(function($ctx2) {
  1008. //>>excludeEnd("ctx");
  1009. return "<script>throw new Error(\x22Intentional\x22)</script>"._htmlTextContent();
  1010. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1011. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  1012. //>>excludeEnd("ctx");
  1013. }),$globals.Error);
  1014. return self;
  1015. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1016. }, function($ctx1) {$ctx1.fill(self,"testTextContentDoesNotRunScript",{},$globals.DOMiteTest)});
  1017. //>>excludeEnd("ctx");
  1018. },
  1019. //>>excludeStart("ide", pragmas.excludeIdeData);
  1020. args: [],
  1021. source: "testTextContentDoesNotRunScript\x0a\x09self shouldnt: [ '<script>throw new Error(\x22Intentional\x22)</script>' htmlTextContent ] raise: Error",
  1022. referencedClasses: ["Error"],
  1023. //>>excludeEnd("ide");
  1024. messageSends: ["shouldnt:raise:", "htmlTextContent"]
  1025. }),
  1026. $globals.DOMiteTest);
  1027. $core.addMethod(
  1028. $core.method({
  1029. selector: "testedClass",
  1030. protocol: 'fixture',
  1031. fn: function (){
  1032. var self=this;
  1033. function $Domite(){return $globals.Domite||(typeof Domite=="undefined"?nil:Domite)}
  1034. return $Domite();
  1035. },
  1036. //>>excludeStart("ide", pragmas.excludeIdeData);
  1037. args: [],
  1038. source: "testedClass\x0a\x0a\x09^ Domite",
  1039. referencedClasses: ["Domite"],
  1040. //>>excludeEnd("ide");
  1041. messageSends: []
  1042. }),
  1043. $globals.DOMiteTest);
  1044. });