Browse Source

Tests for direct insertion of DOM node.

Herbert Vojčík 9 years ago
parent
commit
667584fb56
2 changed files with 73 additions and 0 deletions
  1. 59 0
      src/DOMite-Tests.js
  2. 14 0
      src/DOMite-Tests.st

+ 59 - 0
src/DOMite-Tests.js

@@ -230,6 +230,65 @@ messageSends: ["at:", "assert:", "isInvalid", "deny:"]
 }),
 $globals.DOMiteTest);
 
+$core.addMethod(
+$core.method({
+selector: "testInsertDomNode",
+protocol: 'testing',
+fn: function (){
+var self=this;
+var d;
+function $Domite(){return $globals.Domite||(typeof Domite=="undefined"?nil:Domite)}
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+d=$recv($Domite())._fromElement_(self["@fixtureDiv"]);
+$recv(d).__lt_lt($recv(document)._createElement_("pre"));
+self._assert_($recv($recv($recv(document)._body())._innerHTML())._endsWith_(">sentinel<pre></pre></div>"));
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"testInsertDomNode",{d:d},$globals.DOMiteTest)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "testInsertDomNode\x0a\x09| d |\x0a\x09d := Domite fromElement: fixtureDiv.\x0a\x09d << (document createElement: 'pre').\x0a\x09self assert: (document body innerHTML endsWith: '>sentinel<pre></pre></div>')",
+referencedClasses: ["Domite"],
+//>>excludeEnd("ide");
+messageSends: ["fromElement:", "<<", "createElement:", "assert:", "endsWith:", "innerHTML", "body"]
+}),
+$globals.DOMiteTest);
+
+$core.addMethod(
+$core.method({
+selector: "testInsertDomNodeInFragment",
+protocol: 'testing',
+fn: function (){
+var self=this;
+var d;
+function $Domite(){return $globals.Domite||(typeof Domite=="undefined"?nil:Domite)}
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+d=$recv($Domite())._at_("#fixture");
+$recv(d).__lt_lt($recv($recv($Domite())._newStream()).__lt_lt($recv(document)._createElement_("script")));
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+$ctx1.sendIdx["<<"]=1;
+//>>excludeEnd("ctx");
+self._assert_($recv($recv($recv(document)._body())._innerHTML())._endsWith_(">sentinel<script></script></div>"));
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"testInsertDomNodeInFragment",{d:d},$globals.DOMiteTest)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "testInsertDomNodeInFragment\x0a\x09| d |\x0a\x09d := Domite at: '#fixture'.\x0a\x09d << (Domite newStream << (document createElement: 'script')).\x0a\x09self assert: (document body innerHTML endsWith: '>sentinel<script></script></div>')",
+referencedClasses: ["Domite"],
+//>>excludeEnd("ide");
+messageSends: ["at:", "<<", "newStream", "createElement:", "assert:", "endsWith:", "innerHTML", "body"]
+}),
+$globals.DOMiteTest);
+
 $core.addMethod(
 $core.method({
 selector: "testInsertElement",

+ 14 - 0
src/DOMite-Tests.st

@@ -49,6 +49,20 @@ testFromBadSelectorIsInvalid
 	self deny: d isInvalid
 !
 
+testInsertDomNode
+	| d |
+	d := Domite fromElement: fixtureDiv.
+	d << (document createElement: 'pre').
+	self assert: (document body innerHTML endsWith: '>sentinel<pre></pre></div>')
+!
+
+testInsertDomNodeInFragment
+	| d |
+	d := Domite at: '#fixture'.
+	d << (Domite newStream << (document createElement: 'script')).
+	self assert: (document body innerHTML endsWith: '>sentinel<script></script></div>')
+!
+
 testInsertElement
 	| d |
 	d := Domite at: 'html body div#fixture'.