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.node</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 = CKEDITOR.test.assert;
\r
17 test_getPosition1 : function()
\r
19 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
\r
20 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
\r
22 assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
\r
25 test_getPosition2 : function()
\r
27 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
\r
28 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
\r
30 assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
\r
33 test_getPosition3 : function()
\r
35 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
\r
36 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
\r
38 assert.areSame( CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
\r
41 test_getPosition4 : function()
\r
43 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
\r
44 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
\r
46 assert.areSame( CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
\r
49 test_getPosition5 : function()
\r
51 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'div' )[0] );
\r
52 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'div' )[0] );
\r
54 assert.areSame( CKEDITOR.POSITION_IDENTICAL, node1.getPosition( node2 ) );
\r
57 test_getPosition6 : function()
\r
59 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
\r
60 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
\r
62 assert.areSame( CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
\r
65 test_getPosition7 : function()
\r
67 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
\r
68 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
\r
69 assert.areSame( CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
\r
72 test_getPosition8 : function()
\r
74 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
\r
75 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );
\r
77 assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
\r
80 test_getPosition9 : function()
\r
82 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
\r
83 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );
\r
85 assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
\r
88 test_getPosition10 : function()
\r
90 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
\r
91 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'i' )[0] );
\r
93 assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
\r
96 test_getPosition11 : function()
\r
98 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
\r
99 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'i' )[0] );
\r
101 assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
\r
105 * Test 'preceding' position.
\r
107 test_getPosition_3240: function()
\r
109 var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );
\r
110 var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'span' )[0].firstChild );
\r
112 assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
\r
115 // Test get previous non-spaces node.
\r
116 test_getPrevious : function()
\r
118 var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
\r
119 var span1 = new CKEDITOR.dom.element( 'span' );
\r
120 element.append( span1 );
\r
121 element.append( new CKEDITOR.dom.text( ' ' ) );
\r
122 var span2 = new CKEDITOR.dom.element( 'span' );
\r
123 element.append( span2 );
\r
124 var previous = span2.getPrevious( CKEDITOR.dom.walker.whitespaces( true ) );
\r
125 assert.areSame( span1.$, previous.$ );
\r
128 // Test get next non-spaces node.
\r
129 test_getNext : function()
\r
131 var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
\r
132 var span1 = new CKEDITOR.dom.element( 'span' );
\r
133 element.append( span1 );
\r
134 element.append( new CKEDITOR.dom.text( ' ' ) );
\r
135 var span2 = new CKEDITOR.dom.element( 'span' );
\r
136 element.append( span2 );
\r
137 var next = span1.getNext( CKEDITOR.dom.walker.whitespaces( true ) );
\r
138 assert.areSame( span2.$, next.$ );
\r
141 name : document.title
\r
145 //window.onload = function()
\r
147 // var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
\r
148 // var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
\r
150 // alert( node1.getPosition( node2 ) );
\r
152 //window.onload = tc.test_getPosition6;
\r
159 <p><b>Sample</b> <i>Text</i></p>
\r
161 <span>Another</span>
\r
162 <p id="append"></p>
\r