Ticket #3020: test-selection.2.patch

File test-selection.2.patch, 3.4 KB (added by Garry Yao, 15 years ago)

Updated Functiona Test Case

  • _source/tests/plugins/selection/selection_getSelectedElement.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>Plugin: selection</title>
     5        <link rel="stylesheet" type="text/css" href="../../test.css" />
     6        <script type="text/javascript" src="../../../../ckeditor_source.js"></script>
     7        <script type="text/javascript" src="../../test.js"></script>
     8        <script type="text/javascript">
     9        //<![CDATA[
     10
     11CKEDITOR.plugins.load( 'selection' );
     12
     13/**
     14 * Helper to determine whether two {@link CKEDITOR.dom.range}'s equality.
     15 */
     16function rangesAreSame()
     17{
     18        var range1 = arguments[ 0 ], range2 = arguments[ 1 ];
     19       
     20        if ( ! ( range1 && range2 ) )
     21                return false;
     22       
     23        if ( range1.collapsed && range2.collapsed )
     24                return ( range1.startContainer.$ == range2.startContainer.$
     25                        && range1.startOffset.$ == range2.startOffset.$ )
     26                        || ( range1.endContainer.$ == range2.endContainer.$
     27                                && range1.endOffset.$ == range2.endOffset.$ );
     28
     29        return range1.startContainer.$ == range2.startContainer.$
     30                && range1.startOffset == range2.startOffset
     31                && range1.endContainer.$ == range2.endContainer.$
     32                && range1.endOffset == range2.endOffset;
     33       
     34}
     35
     36var testCase;
     37
     38CKEDITOR.test
     39        .addTestCase( ( function()
     40        {
     41                // Local references.
     42                var assert = YAHOO.util.Assert,
     43                doc = new CKEDITOR.dom.document( document );
     44
     45                return {
     46
     47                        /**
     48                         *  Test selecting various type of element, get the selected element and firstElement.
     49                         */
     50                        test_getSelectedElement2 : function()
     51                        {
     52                                var i, l = 10;
     53                                for ( i = 1 ; i <= l ; i++ )
     54                                {
     55                                        var element = doc.getById( 'selectedElement' + i );
     56                                        if ( element )
     57                                        {
     58                                                var range = new CKEDITOR.dom.range( doc );
     59                                                range.setStartBefore( element );
     60                                                range.setEndAfter( element );
     61                                                var sel = new CKEDITOR.dom.selection( doc );
     62                                                sel.selectRanges( [ range ] );
     63                                                var selectedElement = sel.getSelectedElement(),
     64                                                        firstElement = sel.getStartElement();
     65
     66                                                assert.areSame( element.$, selectedElement
     67                                                        && selectedElement.$,
     68                                                        'Selected element ' +
     69                                                        element.getName().toUpperCase() + ' doesn\'t match.' );
     70                                                assert.areSame( element.$, firstElement
     71                                                        && firstElement.$, 'Start element ' +
     72                                                        element.getName() + 'doesn\'t match.' );
     73                                        }
     74                                }
     75                        },
     76
     77                        name :document.title
     78                };
     79        } )() );
     80
     81        //]]>
     82        </script>
     83</head>
     84<body>
     85        <span id="selectedNode">text1</span>
     86        <p>
     87                <a id="selectedElement1"></a>
     88                <input id="selectedElement2" />
     89                <img id="selectedElement3" />
     90                <hr id="selectedElement4">
     91                </hr>
     92                <ul>
     93                        <li id="selectedElement5">
     94                        </li>
     95                </ul>
     96                <table>
     97                        <tr>
     98                                <td id="selectedElement6">
     99                                </td>
     100                        </tr>
     101                </table>
     102                <embed id="selectedElement7">
     103                </embed>
     104                <object id="selectedElement8">
     105                </object>
     106                <ol>
     107                        <li id="selectedElement9">
     108                        </li>
     109                </ol>
     110                <form id="selectedElement10">
     111                </form>
     112        </p>
     113</body>
     114</html>
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy