Index: _source/tests/core/dom/element.html
===================================================================
--- _source/tests/core/dom/element.html (revision 3745)
+++ _source/tests/core/dom/element.html Thu Jun 25 18:31:38 CST 2009
@@ -172,7 +172,7 @@
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
element.setAttribute( 'style', 'position: absolute;' );
- assert.areEqual( 'position: absolute;', element.getAttribute( 'style' ) );
+ assert.areEqual( 'position: absolute;', CKEDITOR.test.getAttribute( element, 'style' ) );
},
test_setAttribute3 : function()
@@ -201,7 +201,7 @@
'rows' : 5 });
assert.areSame( 'Test', document.getElementById( 'test1' ).className, 'class is wrong' );
- assert.areEqual( 'position: absolute;', element.getAttribute( 'style'), 'style is wrong' );
+ assert.areEqual( 'position: absolute;', CKEDITOR.test.getAttribute( element, 'style'), 'style is wrong' );
assert.areEqual( 'TestName', document.getElementById( 'test1' ).name, 'name is wrong' );
assert.areEqual( 5, document.getElementById( 'test1' ).rows, 'rows is wrong' );
},
@@ -374,31 +374,31 @@
test_getAttribute_tabindex1 : function()
{
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndex10' ) );
- assert.areEqual( 10, element.getAttribute( 'tabindex' ) );
+ assert.areEqual( 10, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
},
test_getAttribute_tabindex2 : function()
{
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexDef' ) );
- assert.isNull( element.getAttribute( 'tabindex' ) );
+ assert.isNull( CKEDITOR.test.getAttribute( element, 'tabindex' ) );
},
test_getAttribute_tabindex3 : function()
{
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInputDef' ) );
- assert.isNull( element.getAttribute( 'tabindex' ) );
+ assert.isNull( CKEDITOR.test.getAttribute( element, 'tabindex' ) );
},
test_getAttribute_tabindex4 : function()
{
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInput20' ) );
- assert.areEqual( 20, element.getAttribute( 'tabindex' ) );
+ assert.areEqual( 20, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
},
test_getAttribute_tabindex5 : function()
{
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexScriptDef' ) );
- assert.areEqual( null, element.getAttribute( 'tabindex' ) );
+ assert.areEqual( null, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
},
/**
@@ -408,13 +408,13 @@
{
var element = new CKEDITOR.dom.element( document.getElementById( 'testExpandoAttributes' ) );
- assert.areEqual( 1, element.getAttribute( 'tabindex' ), 'tabindex is wrong' );
+ assert.areEqual( 1, CKEDITOR.test.getAttribute( element, 'tabindex' ), 'tabindex is wrong' );
element.removeAttribute( 'tabindex' );
- assert.areEqual( 'hasExpando', element.getAttribute( 'class' ), 'class is wrong' );
+ assert.areEqual( 'hasExpando', CKEDITOR.test.getAttribute( element, 'class' ), 'class is wrong' );
element.removeAttribute( 'class' );
- assert.areEqual( 'float: right;', element.getAttribute( 'style' ) );
+ assert.areEqual( 'float: right;', CKEDITOR.test.getAttribute( element, 'style' ) );
element.removeAttribute( 'style' );
element.removeAttribute( 'id' );
Index: _source/core/test.js
===================================================================
--- _source/core/test.js (revision 3477)
+++ _source/core/test.js Thu Jun 25 18:34:48 CST 2009
@@ -120,5 +120,31 @@
} );
return html;
+ },
+
+ /**
+ * Wrapper of CKEDITOR.dom.element::getAttribute for style text normalization.
+ * @param element
+ * @param attrName
+ */
+ getAttribute : function( element, attrName )
+ {
+ var retval = element.getAttribute( attrName );
+ if ( attrName == 'style' )
+ {
+ // 1. Lower case property name.
+ // 2. Add space after colon.
+ // 3. Strip whitepsaces around semicolon.
+ // 4. Always end with semicolon
+ return retval.replace( /(?:^|;)\s*([A-Z-_]+)(:\s*)/ig,
+ function( match, property, colon )
+ {
+ return property.toLowerCase() + ': ';
+ } )
+ .replace( /\s+(?:;\s*|$)/g, ';' )
+ .replace( /([^;])$/g, '$1;' );
- }
+ }
+
+ return retval;
+ }
};