Ticket #3833: 3833.patch

File 3833.patch, 4.6 KB (added by Garry Yao, 12 years ago)
  • _source/tests/core/dom/element.html

     
    172172                        var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
    173173                        element.setAttribute( 'style', 'position: absolute;' );
    174174
    175                         assert.areEqual( 'position: absolute;', element.getAttribute( 'style' ) );
     175                        assert.areEqual( 'position: absolute;', CKEDITOR.test.getAttribute( element, 'style' ) );
    176176                },
    177177
    178178                test_setAttribute3 : function()
     
    201201                                'rows'  : 5 });
    202202
    203203                        assert.areSame( 'Test', document.getElementById( 'test1' ).className, 'class is wrong' );
    204                         assert.areEqual( 'position: absolute;', element.getAttribute( 'style'), 'style is wrong' );
     204                        assert.areEqual( 'position: absolute;', CKEDITOR.test.getAttribute( element, 'style'), 'style is wrong' );
    205205                        assert.areEqual( 'TestName', document.getElementById( 'test1' ).name, 'name is wrong' );
    206206                        assert.areEqual( 5, document.getElementById( 'test1' ).rows, 'rows is wrong' );
    207207                },
     
    374374                test_getAttribute_tabindex1 : function()
    375375                {
    376376                        var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndex10' ) );
    377                         assert.areEqual( 10, element.getAttribute( 'tabindex' ) );
     377                        assert.areEqual( 10, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
    378378                },
    379379
    380380                test_getAttribute_tabindex2 : function()
    381381                {
    382382                        var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexDef' ) );
    383                         assert.isNull( element.getAttribute( 'tabindex' ) );
     383                        assert.isNull( CKEDITOR.test.getAttribute( element, 'tabindex' ) );
    384384                },
    385385
    386386                test_getAttribute_tabindex3 : function()
    387387                {
    388388                        var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInputDef' ) );
    389                         assert.isNull( element.getAttribute( 'tabindex' ) );
     389                        assert.isNull( CKEDITOR.test.getAttribute( element, 'tabindex' ) );
    390390                },
    391391
    392392                test_getAttribute_tabindex4 : function()
    393393                {
    394394                        var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInput20' ) );
    395                         assert.areEqual( 20, element.getAttribute( 'tabindex' ) );
     395                        assert.areEqual( 20, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
    396396                },
    397397
    398398                test_getAttribute_tabindex5 : function()
    399399                {
    400400                        var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexScriptDef' ) );
    401                         assert.areEqual( null, element.getAttribute( 'tabindex' ) );
     401                        assert.areEqual( null, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
    402402                },
    403403
    404404                /**
     
    408408                {
    409409                        var element = new CKEDITOR.dom.element( document.getElementById( 'testExpandoAttributes' ) );
    410410
    411                         assert.areEqual( 1, element.getAttribute( 'tabindex' ), 'tabindex is wrong' );
     411                        assert.areEqual( 1, CKEDITOR.test.getAttribute( element, 'tabindex' ), 'tabindex is wrong' );
    412412                        element.removeAttribute( 'tabindex' );
    413413
    414                         assert.areEqual( 'hasExpando', element.getAttribute( 'class' ), 'class is wrong' );
     414                        assert.areEqual( 'hasExpando', CKEDITOR.test.getAttribute( element, 'class' ), 'class is wrong' );
    415415                        element.removeAttribute( 'class' );
    416416
    417                         assert.areEqual( 'float: right;', element.getAttribute( 'style' ) );
     417                        assert.areEqual( 'float: right;', CKEDITOR.test.getAttribute( element, 'style' ) );
    418418
    419419                        element.removeAttribute( 'style' );
    420420                        element.removeAttribute( 'id' );
  • _source/core/test.js

     
    1 ?/*
     1/*
    22Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
    33For licensing, see LICENSE.html or http://ckeditor.com/license
    44*/
     
    120120                        } );
    121121
    122122                return html;
     123        },
     124
     125        /**
     126         * Wrapper of CKEDITOR.dom.element::getAttribute for style text normalization.
     127         * @param element
     128         * @param attrName
     129         */
     130        getAttribute : function( element, attrName )
     131        {
     132                var filterStyles = function( styles )
     133                {
     134                        return styles
     135                                // 1. Lower case property name.
     136                                // 2. Add space after colon.
     137                                .replace( /(?:^|;)\s*([A-Z-_]+)(:\s*)/ig, function( match, property, colon )
     138                                {
     139                                        return property.toLowerCase() + ': ';
     140                                } )
     141                                // 3. Strip whitepsaces around semicolon.
     142                                .replace( /\s+(?:;\s*|$)/g, ';' )
     143                                // 4. Always end with semicolon
     144                                .replace( /([^;])$/g, '$1;'
     145                        );
     146                };
     147
     148                var retval = element.getAttribute( attrName );
     149                return attrName == 'style' ? filterStyles( retval ) : retval;
    123150        }
    124151};
© 2003 – 2021 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy