Ticket #3313: test-domwalker.patch

File test-domwalker.patch, 3.3 KB (added by Garry Yao, 14 years ago)

Unit Test Case

  • _source/tests/core/dom/domwalker.html

     
     1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2<html xmlns="http://www.w3.org/1999/xhtml">
     3<head>
     4        <title>CKEDITOR.dom.walker</title>
     5        <link rel="stylesheet" type="text/css" href="../../test.css" />
     6        <script type="text/javascript" src="../../../../ckeditor_source.js"></script> <!-- %REMOVE_LINE%
     7        <script type="text/javascript" src="../../../ckeditor.js"></script>
     8        %REMOVE_LINE% -->
     9        <script type="text/javascript" src="../../test.js"></script>
     10        <script type="text/javascript">
     11        //<![CDATA[
     12var tc;
     13CKEDITOR.test.addTestCase( tc = ( function()
     14{
     15        // Local reference to the "assert" object.
     16        var assert = CKEDITOR.test.assert,
     17                arrayAssert = YAHOO.util.ArrayAssert;
     18
     19        // Temporary 'getName' compensate for textnode.
     20        CKEDITOR.dom.text.prototype.getName = function()
     21        {
     22                return '#text';
     23        };
     24       
     25        function traverse( walker , isReverse){
     26                var resultSequence = [],
     27                        node;
     28                while( node = ( isReverse? walker.previous() : walker.next() ) )
     29                        resultSequence.push( node.getName() );
     30                return resultSequence;
     31        }
     32
     33        return  {
     34
     35                test_forward : function()
     36                {
     37                        var steps = [], resultSteps =
     38                                [ "div", "h1", "a", "#text", "ul", "li", "#text",
     39                                "li", "#text", "br", "table", "tbody", "tr", "td", "#text", "span",
     40                                "form", "fieldset", "legend", "#text", "label", "#text", "input" ];
     41
     42                        var walker = new CKEDITOR.dom.walker(
     43                                CKEDITOR.document.getById( 'walkerStartMark1' ),
     44                                CKEDITOR.document.getById( 'walkerEndMark' ) );
     45                        steps = traverse( walker );     
     46                        arrayAssert.itemsAreEqual( resultSteps, steps, 'Walking steps forward doesn\'t match.' );
     47                },
     48               
     49                /**
     50                 *  Test walking auto stopping when no more steps are available.
     51                 */
     52                test_lastForward : function()
     53                {
     54                        var walker = new CKEDITOR.dom.walker( CKEDITOR.document.getBody() );
     55                        var node = walker.lastForward();
     56                        assert.isNull( node );
     57                },
     58                       
     59                /**
     60                 *  Test reverse traversing from right to left with in-order sequence.
     61                 */
     62                test_reverse : function()
     63                {
     64                        var steps = [], resultSteps =
     65                                [ "div", "span", "form", "fieldset", "input", "label", "#text", "legend",
     66                                "#text", "table", "tbody", "tr", "td", "#text", "br", "ul", "li", "#text", "li",
     67                                "#text", "h1", "a", "#text" ];
     68
     69                        var walker = new CKEDITOR.dom.walker(
     70                                CKEDITOR.document.getById( 'walkerEndMark' ),           // Start node
     71                                CKEDITOR.document.getById( 'walkerStartMark1' ) );      // End node
     72                        steps = traverse( walker , true );     
     73                        arrayAssert.itemsAreEqual( resultSteps, steps, 'Walking steps forward doesn\'t match.' );
     74                },
     75
     76                name :document.title
     77        };
     78} )() );
     79
     80//window.onload = tc.test_stopBlockBoundary1;
     81        //]]>
     82        </script>
     83</head>
     84<body>
     85        <span id="walkerStartMark1"></span><div><h1><a>text</a></h1><ul><li>text</li><li>text</li></ul><br/><table><tbody><tr><td>text</td></tr></tbody></table><span><form><fieldset><legend>text</legend><label>text</label><input type="text"/></fieldset></form></span></div><span id="walkerEndMark"></span>
     86</body>
     87</html>
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy