--- /dev/null
+<!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