1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
\r
2 <html xmlns="http://www.w3.org/1999/xhtml">
\r
4 <title>CKEDITOR.dom.documentFragment</title>
\r
5 <link rel="stylesheet" type="text/css" href="../../test.css" />
\r
6 <script type="text/javascript" src="../../../ckeditor.js"></script>
\r
7 <script type="text/javascript" src="../../test.js"></script>
\r
8 <script type="text/javascript">
\r
11 CKEDITOR.test.addTestCase( tc = ( function()
\r
13 // Local reference to the "assert" object.
\r
14 var assert = YAHOO.util.Assert,
\r
15 doc = CKEDITOR.document;
\r
19 test_appendTo : function()
\r
22 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
24 new CKEDITOR.dom.element( 'b' );
\r
25 frag.append( inner );
\r
26 var container = CKEDITOR.document.getById( 'fragmentContainer1' );
\r
27 frag.appendTo( container );
\r
28 assert.isTrue( container.getLast().equals( inner ) );
\r
31 test_append : function()
\r
34 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
36 new CKEDITOR.dom.element( 'b' );
\r
37 frag.append( inner );
\r
38 var container = CKEDITOR.document.getById( 'fragmentContainer3' );
\r
39 container.append( frag );
\r
40 assert.isTrue( container.getLast().equals( inner ) );
\r
43 test_getFirst : function()
\r
46 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
48 new CKEDITOR.dom.element( 'b' );
\r
49 frag.append( inner );
\r
50 var first = frag.getFirst();
\r
51 assert.isTrue( first.equals( inner ) );
\r
54 test_getLast : function()
\r
57 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
59 new CKEDITOR.dom.element( 'b' ), lastInner = inner.clone();
\r
60 frag.append( inner );
\r
61 frag.append( lastInner );
\r
62 var last = frag.getLast();
\r
63 assert.isTrue( last.equals( lastInner ) );
\r
66 test_moveChildren : function()
\r
69 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
70 var inner1 = new CKEDITOR.dom.element( 'b' ),
\r
71 inner2 = new CKEDITOR.dom.element( 'i' );
\r
72 frag.append( inner1 );
\r
73 frag.append( inner2 );
\r
76 var element = new CKEDITOR.dom.element( 'span' );
\r
77 frag.moveChildren( element, true );
\r
78 assert.isTrue( element.getFirst().equals( inner1 ) );
\r
79 assert.isTrue( element.getLast().equals( inner2 ) );
\r
82 test_moveChildren2 : function()
\r
85 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
86 var inner1 = new CKEDITOR.dom.element( 'b' ),
\r
87 inner2 = new CKEDITOR.dom.element( 'i' );
\r
88 frag.append( inner1 );
\r
89 frag.append( inner2 );
\r
92 var anotherFrag = new CKEDITOR.dom.documentFragment(
\r
93 CKEDITOR.document );
\r
94 frag.moveChildren( anotherFrag, true );
\r
95 assert.isTrue( anotherFrag.getFirst().equals( inner1 ) );
\r
96 assert.isTrue( anotherFrag.getLast().equals( inner2 ) );
\r
99 test_appendText : function()
\r
101 var element = new CKEDITOR.dom.element( 'script' );
\r
102 element.appendText( 'Test appendText' );
\r
103 assert.areEqual( 'Test appendText', element.$.text );
\r
106 test_ltrim : function()
\r
108 // IE need special treatement to setup this tc, see
\r
109 // next tc for this.
\r
110 if ( CKEDITOR.env.ie )
\r
112 var element = CKEDITOR.dom.element.createFromHtml(
\r
113 '<div id="trimTarget">\t\ntext\t\n</div>'
\r
116 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
117 element.moveChildren( frag );
\r
119 var ct = new CKEDITOR.dom.element( 'div' );
\r
121 assert.areSame( 'text\t\n', ct.getText() );
\r
124 test_ltrim_ie : function()
\r
126 if ( !CKEDITOR.env.ie )
\r
128 // IE dom operation will trim preceding empty text,
\r
129 // here we use 'splitText' way to create leading spaces
\r
130 // instead for testing.
\r
131 var emptyTextNode = doc.createText( '@ \ttext\t ');
\r
133 new CKEDITOR.dom.documentFragment( doc );
\r
134 frag.append( emptyTextNode );
\r
135 frag.getFirst().$.splitText( 1 );
\r
136 frag.getFirst().remove();
\r
138 var ct = new CKEDITOR.dom.element( 'div' );
\r
140 assert.areSame( 'text\t ', ct.getText() );
\r
143 test_rtrim : function()
\r
145 if ( CKEDITOR.env.ie )
\r
147 var element = CKEDITOR.dom.element.createFromHtml(
\r
148 '<div id="trimTarget">\t\ntext\t\n</div>'
\r
151 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
152 element.moveChildren( frag );
\r
154 var ct = new CKEDITOR.dom.element( 'div' );
\r
157 assert.areSame( '\t\ntext', ct.getText() );
\r
161 *@see test_ltrim_ie
\r
163 test_rtrim_ie : function()
\r
165 if ( !CKEDITOR.env.ie )
\r
167 var emptyTextNode = doc.createText( '@ \ttext\t ');
\r
169 new CKEDITOR.dom.documentFragment( doc );
\r
170 frag.append( emptyTextNode );
\r
171 frag.getFirst().$.splitText( 1 );
\r
172 frag.getFirst().remove();
\r
174 var ct = new CKEDITOR.dom.element( 'div' );
\r
176 assert.areSame( ' \ttext', ct.getText() );
\r
180 test_trim : function()
\r
182 if ( !CKEDITOR.env.ie )
\r
184 var element = CKEDITOR.dom.element.createFromHtml(
\r
185 '<div id="trimTarget">\t\ntext\t\n</div>'
\r
188 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
189 element.moveChildren( frag );
\r
191 var ct = new CKEDITOR.dom.element( 'div' );
\r
193 assert.areSame( 'text', ct.getText() );
\r
198 *@see test_ltrim_ie
\r
200 test_trim_ie : function()
\r
202 if ( !CKEDITOR.env.ie )
\r
204 var emptyTextNode = doc.createText( '@ \t\ntext\t\n ');
\r
206 new CKEDITOR.dom.documentFragment( doc );
\r
207 frag.append( emptyTextNode );
\r
208 frag.getFirst().$.splitText( 1 );
\r
209 frag.getFirst().remove();
\r
211 var ct = new CKEDITOR.dom.element( 'div' );
\r
213 assert.areSame( 'text', ct.getText() );
\r
216 test_insertAfter : function()
\r
219 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
220 var inner = new CKEDITOR.dom.element( 'b' );
\r
221 frag.append( inner );
\r
222 var container = CKEDITOR.document.getById( 'fragmentContainer2' );
\r
223 var sibling = CKEDITOR.document.getById( 'fragmentSibling1' );
\r
224 frag.insertAfterNode( sibling );
\r
225 assert.isTrue( container.getLast().equals( inner ) );
\r
228 test_getChildCount : function()
\r
231 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
232 var inner1 = new CKEDITOR.dom.element( 'b' ),
\r
233 inner2 = new CKEDITOR.dom.element( 'i' );
\r
234 frag.append( inner1 );
\r
235 frag.append( inner2 );
\r
237 assert.areEqual( 2, frag.getChildCount() );
\r
240 test_getChild : function()
\r
243 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
244 var inner1 = new CKEDITOR.dom.element( 'b' ),
\r
245 inner2 = new CKEDITOR.dom.element( 'i' );
\r
246 frag.append( inner1 );
\r
247 frag.append( inner2 );
\r
249 assert.isTrue( inner2.equals( frag.getChild( 1 ) ) );
\r
252 test_getChildren : function()
\r
255 new CKEDITOR.dom.documentFragment( CKEDITOR.document );
\r
256 var inner1 = new CKEDITOR.dom.element( 'b' ),
\r
257 inner2 = new CKEDITOR.dom.element( 'i' );
\r
258 frag.append( inner1 );
\r
259 frag.append( inner2 );
\r
261 var childNodesList = frag.getChildren();
\r
262 assert.areEqual( 2, childNodesList.count() );
\r
263 assert.isTrue( inner2.equals( childNodesList.getItem( 1 ) ) );
\r
266 test_getDocument : function()
\r
268 var doc = CKEDITOR.document,
\r
269 innerDoc = new CKEDITOR.dom.document(
\r
270 doc.getById( 'innerFrame' ).$.contentWindow.document );
\r
271 var frag1 = new CKEDITOR.dom.documentFragment( doc ),
\r
272 frag2 = new CKEDITOR.dom.documentFragment( innerDoc );
\r
274 assert.isTrue( doc.equals( frag1.getDocument() ) );
\r
275 assert.isTrue( innerDoc.equals( frag2.getDocument() ) );
\r
278 name :document.title
\r
282 //window.onload = tc.test_rtrim_ie;
\r
287 <div id="fragmentContainer1"></div>
\r
288 <div id="fragmentContainer2"><div id="fragmentSibling1"></div></div>
\r
289 <div id="fragmentContainer3"></div>
\r
290 <iframe id="innerFrame" name="innerFrame" src="about:blank"></iframe>
\r