JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
dcad6057ec5c64dd9d9a0009599724acf9758963
[ckeditor.git] / _tests / core / dom / node.html
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
3 <head>\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
9         //<![CDATA[\r
10 var tc;\r
11 CKEDITOR.test.addTestCase( tc = (function()\r
12 {\r
13         // Local reference to the "assert" object.\r
14         var assert = CKEDITOR.test.assert;\r
15 \r
16         return {\r
17                 test_getPosition1 : function()\r
18                 {\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
21 \r
22                         assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
23                 },\r
24 \r
25                 test_getPosition2 : function()\r
26                 {\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
29 \r
30                         assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );\r
31                 },\r
32 \r
33                 test_getPosition3 : function()\r
34                 {\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
37 \r
38                         assert.areSame( CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
39                 },\r
40 \r
41                 test_getPosition4 : function()\r
42                 {\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
45 \r
46                         assert.areSame( CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );\r
47                 },\r
48 \r
49                 test_getPosition5 : function()\r
50                 {\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
53 \r
54                         assert.areSame( CKEDITOR.POSITION_IDENTICAL, node1.getPosition( node2 ) );\r
55                 },\r
56 \r
57                 test_getPosition6 : function()\r
58                 {\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
61 \r
62                         assert.areSame( CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
63                 },\r
64 \r
65                 test_getPosition7 : function()\r
66                 {\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
70                 },\r
71 \r
72                 test_getPosition8 : function()\r
73                 {\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
76 \r
77                         assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
78                 },\r
79 \r
80                 test_getPosition9 : function()\r
81                 {\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
84 \r
85                         assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );\r
86                 },\r
87 \r
88                 test_getPosition10 : function()\r
89                 {\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
92 \r
93                         assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
94                 },\r
95 \r
96                 test_getPosition11 : function()\r
97                 {\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
100 \r
101                         assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );\r
102                 },\r
103 \r
104                 /**\r
105                  *  Test 'preceding' position.\r
106                  */\r
107                 test_getPosition_3240: function()\r
108                 {\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
111 \r
112                         assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
113                 },\r
114 \r
115                 // Test get previous non-spaces node.\r
116                 test_getPrevious : function()\r
117                 {\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
126                 },\r
127 \r
128                 // Test get next non-spaces node.\r
129                 test_getNext : function()\r
130                 {\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
139                 },\r
140 \r
141                 name : document.title\r
142         };\r
143 })() );\r
144 \r
145 //window.onload = function()\r
146 //{\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
149 //\r
150 //      alert( node1.getPosition( node2 ) );\r
151 //};\r
152 //window.onload =  tc.test_getPosition6;\r
153         //]]>\r
154         </script>\r
155 </head>\r
156 <body>\r
157         <div>\r
158                 <h1>Title</h1>\r
159                 <p><b>Sample</b> <i>Text</i></p>\r
160         </div>\r
161         <span>Another</span>\r
162         <p id="append"></p>\r
163 </body>\r
164 </html>\r