JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.0
[ckeditor.git] / _source / tests / core / dom / node.html
diff --git a/_source/tests/core/dom/node.html b/_source/tests/core/dom/node.html
new file mode 100644 (file)
index 0000000..dcad605
--- /dev/null
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>CKEDITOR.dom.node</title>\r
+       <link rel="stylesheet" type="text/css" href="../../test.css" />\r
+       <script type="text/javascript" src="../../../ckeditor.js"></script>\r
+       <script type="text/javascript" src="../../test.js"></script>\r
+       <script type="text/javascript">\r
+       //<![CDATA[\r
+var tc;\r
+CKEDITOR.test.addTestCase( tc = (function()\r
+{\r
+       // Local reference to the "assert" object.\r
+       var assert = CKEDITOR.test.assert;\r
+\r
+       return {\r
+               test_getPosition1 : function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );\r
+\r
+                       assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
+               },\r
+\r
+               test_getPosition2 : function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );\r
+\r
+                       assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );\r
+               },\r
+\r
+               test_getPosition3 : function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );\r
+\r
+                       assert.areSame( CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
+               },\r
+\r
+               test_getPosition4 : function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );\r
+\r
+                       assert.areSame( CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );\r
+               },\r
+\r
+               test_getPosition5 : function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'div' )[0] );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'div' )[0] );\r
+\r
+                       assert.areSame( CKEDITOR.POSITION_IDENTICAL, node1.getPosition( node2 ) );\r
+               },\r
+\r
+               test_getPosition6 : function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );\r
+\r
+                       assert.areSame( CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
+               },\r
+\r
+               test_getPosition7 : function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );\r
+                       assert.areSame( CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );\r
+               },\r
+\r
+               test_getPosition8 : function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );\r
+\r
+                       assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
+               },\r
+\r
+               test_getPosition9 : function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );\r
+\r
+                       assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );\r
+               },\r
+\r
+               test_getPosition10 : function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'i' )[0] );\r
+\r
+                       assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
+               },\r
+\r
+               test_getPosition11 : function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'i' )[0] );\r
+\r
+                       assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );\r
+               },\r
+\r
+               /**\r
+                *  Test 'preceding' position.\r
+                */\r
+               test_getPosition_3240: function()\r
+               {\r
+                       var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );\r
+                       var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'span' )[0].firstChild );\r
+\r
+                       assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );\r
+               },\r
+\r
+               // Test get previous non-spaces node.\r
+               test_getPrevious : function()\r
+               {\r
+                       var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );\r
+                       var span1 = new CKEDITOR.dom.element( 'span' );\r
+                       element.append( span1 );\r
+                       element.append( new CKEDITOR.dom.text( ' ' ) );\r
+                       var span2 = new CKEDITOR.dom.element( 'span' );\r
+                       element.append( span2 );\r
+                       var previous = span2.getPrevious( CKEDITOR.dom.walker.whitespaces( true ) );\r
+                       assert.areSame( span1.$, previous.$ );\r
+               },\r
+\r
+               // Test get next non-spaces node.\r
+               test_getNext : function()\r
+               {\r
+                       var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );\r
+                       var span1 = new CKEDITOR.dom.element( 'span' );\r
+                       element.append( span1 );\r
+                       element.append( new CKEDITOR.dom.text( ' ' ) );\r
+                       var span2 = new CKEDITOR.dom.element( 'span' );\r
+                       element.append( span2 );\r
+                       var next = span1.getNext( CKEDITOR.dom.walker.whitespaces( true ) );\r
+                       assert.areSame( span2.$, next.$ );\r
+               },\r
+\r
+               name : document.title\r
+       };\r
+})() );\r
+\r
+//window.onload = function()\r
+//{\r
+//     var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );\r
+//     var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );\r
+//\r
+//     alert( node1.getPosition( node2 ) );\r
+//};\r
+//window.onload =  tc.test_getPosition6;\r
+       //]]>\r
+       </script>\r
+</head>\r
+<body>\r
+       <div>\r
+               <h1>Title</h1>\r
+               <p><b>Sample</b> <i>Text</i></p>\r
+       </div>\r
+       <span>Another</span>\r
+       <p id="append"></p>\r
+</body>\r
+</html>\r