mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-02-28 20:56:24 +00:00
Removed CKEDITOR test files
Monotone-Parent: b2cf7eda0ef8f15fb6e78f8c38a7406a47bcdd2f Monotone-Revision: 253445df7ee9966d67a53263e1ffd5389ab09588 Monotone-Author: crobert@inverse.ca Monotone-Date: 2009-08-26T14:10:37 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -1,4 +0,0 @@
|
||||
.sample
|
||||
{
|
||||
position: absolute;
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
var testVar = 'Test!';
|
||||
@@ -1 +0,0 @@
|
||||
Sample Text
|
||||
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<list>
|
||||
<item id="test1" />
|
||||
<item id="test2" />
|
||||
</list>
|
||||
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<list>
|
||||
<item id="test1" />
|
||||
<item id="test2" />
|
||||
</list>
|
||||
@@ -1,10 +0,0 @@
|
||||
/*
|
||||
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
CKEDITOR.editorConfig = function( config )
|
||||
{
|
||||
config.customConfig = '_editor/custom_config_2.js';
|
||||
config.test_custom1 = 'Ok';
|
||||
};
|
||||
@@ -1,9 +0,0 @@
|
||||
/*
|
||||
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
CKEDITOR.editorConfig = function( config )
|
||||
{
|
||||
config.test_custom2 = 'Ok';
|
||||
};
|
||||
@@ -1,163 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.ajax</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../_source/core/loader.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.loader.load( 'core/ajax' );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_load_sync : function()
|
||||
{
|
||||
var data = CKEDITOR.ajax.load( '../_assets/sample.txt' );
|
||||
assert.areSame( 'Sample Text\r\n', data, 'The loaded data doesn\'t match' );
|
||||
},
|
||||
|
||||
test_load_sync_404 : function()
|
||||
{
|
||||
var data = CKEDITOR.ajax.load( '../_assets/404.txt' );
|
||||
assert.isNull( data );
|
||||
},
|
||||
|
||||
test_load_async : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
assert.areSame( 'Sample Text\r\n', data, 'The loaded data doesn\'t match' );
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.ajax.load( '../_assets/sample.txt', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_load_async_404 : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
assert.isNull( data );
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.ajax.load( '../_assets/404.txt', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_loadXml_sync : function()
|
||||
{
|
||||
var data = CKEDITOR.ajax.loadXml( '../_assets/sample.xml' );
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
},
|
||||
|
||||
test_loadXml_sync_404 : function()
|
||||
{
|
||||
var data = CKEDITOR.ajax.loadXml( '../_assets/404.xml' );
|
||||
assert.isNull( data );
|
||||
},
|
||||
|
||||
test_loadXml_async : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.ajax.loadXml( '../_assets/sample.xml', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_loadXml_async_404 : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
assert.isNull( data );
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.ajax.loadXml( '../_assets/404.xml', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_loadXml_sync_txt : function()
|
||||
{
|
||||
var data = CKEDITOR.ajax.loadXml( '../_assets/sample_xml.txt' );
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
},
|
||||
|
||||
test_loadXml_async_txt : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.ajax.loadXml( '../_assets/sample_xml.txt', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_parseXml : function()
|
||||
{
|
||||
var data = new CKEDITOR.xml( '<?xml version="1.0" encoding="utf-8" ?><list><item id="test1" /><item id="test2" /></list>' );
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
},
|
||||
|
||||
test_parseXml_nbsp : function()
|
||||
{
|
||||
var data = new CKEDITOR.xml( '<?xml version="1.0" encoding="utf-8" ?><list><item id="test1"> </item><item id="test2" /></list>' );
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,160 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
// Clean up all instances been created on the page.
|
||||
function removeAllInstances()
|
||||
{
|
||||
var allInstances = CKEDITOR.instances;
|
||||
for( var i in allInstances )
|
||||
{
|
||||
CKEDITOR.remove( allInstances[ i ] );
|
||||
}
|
||||
}
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_replaceClass : function()
|
||||
{
|
||||
// Asserts the default value.
|
||||
assert.areSame( 'ckeditor', CKEDITOR.replaceClass );
|
||||
},
|
||||
|
||||
test_replaceByClassEnabled : function()
|
||||
{
|
||||
// Asserts the default value.
|
||||
assert.isTrue( CKEDITOR.replaceByClassEnabled );
|
||||
},
|
||||
|
||||
test_replaceId : function()
|
||||
{
|
||||
CKEDITOR.replace( 'editor1' );
|
||||
assert.isObject( CKEDITOR.instances.editor1, 'editor instance not found' );
|
||||
assert.areSame( 'editor1', CKEDITOR.instances.editor1.name, 'instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor1' ), CKEDITOR.instances.editor1.element.$, 'instance element doesn\'t match' );
|
||||
},
|
||||
|
||||
test_replaceName : function()
|
||||
{
|
||||
CKEDITOR.replace( 'editor2' );
|
||||
assert.isObject( CKEDITOR.instances.editor2, 'editor instance not found' );
|
||||
assert.areSame( 'editor2', CKEDITOR.instances.editor2.name, 'instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementsByName( 'editor2' )[0], CKEDITOR.instances.editor2.element.$, 'instance element doesn\'t match' );
|
||||
},
|
||||
|
||||
test_replaceElement : function()
|
||||
{
|
||||
CKEDITOR.replace( document.getElementById( 'editor5' ) );
|
||||
assert.isObject( CKEDITOR.instances.editor5, 'editor instance not found' );
|
||||
assert.areSame( 'editor5', CKEDITOR.instances.editor5.name, 'instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor5' ), CKEDITOR.instances.editor5.element.$, 'instance element doesn\'t match' );
|
||||
},
|
||||
|
||||
|
||||
test_replaceError : function()
|
||||
{
|
||||
try
|
||||
{
|
||||
CKEDITOR.replace( 'error' );
|
||||
}
|
||||
catch ( e )
|
||||
{
|
||||
assert.areSame( '[CKEDITOR.editor.replace] The element with id or name "error" was not found.', e );
|
||||
}
|
||||
},
|
||||
|
||||
test_replaceAll_Class : function()
|
||||
{
|
||||
CKEDITOR.replaceAll( 'myclass' );
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor3, 'editor3 instance not found' );
|
||||
assert.areSame( 'editor3', CKEDITOR.instances.editor3.name, 'editor3 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor3' ), CKEDITOR.instances.editor3.element.$, 'editor3 instance element doesn\'t match' );
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor4, 'editor4 instance not found' );
|
||||
assert.areSame( 'editor4', CKEDITOR.instances.editor4.name, 'editor4 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementsByName( 'editor4' )[0], CKEDITOR.instances.editor4.element.$, 'editor4 instance element doesn\'t match' );
|
||||
|
||||
assert.isUndefined( CKEDITOR.instances.editor6, 'editor6 should be undefined' );
|
||||
assert.isUndefined( CKEDITOR.instances.editor7, 'editor7 should be undefined' );
|
||||
assert.isUndefined( CKEDITOR.instances.editor8, 'editor8 should be undefined' );
|
||||
assert.isUndefined( CKEDITOR.instances.editor8, 'editor9 should be undefined' );
|
||||
},
|
||||
|
||||
test_replaceAll_Function : function()
|
||||
{
|
||||
CKEDITOR.replaceAll( function( textarea )
|
||||
{
|
||||
return ( textarea.id != 'editor6' && textarea.id != 'editor8' );
|
||||
} );
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor7, 'editor7 instance not found' );
|
||||
assert.areSame( 'editor7', CKEDITOR.instances.editor7.name, 'editor7 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor7' ), CKEDITOR.instances.editor7.element.$, 'editor7 instance element doesn\'t match' );
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor9, 'editor9 instance not found' );
|
||||
assert.areSame( 'editor9', CKEDITOR.instances.editor9.name, 'editor9 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor9' ), CKEDITOR.instances.editor9.element.$, 'editor9 instance element doesn\'t match' );
|
||||
|
||||
assert.isUndefined( CKEDITOR.instances.editor6, 'editor6 should be undefined' );
|
||||
assert.isUndefined( CKEDITOR.instances.editor8, 'editor8 should be undefined' );
|
||||
},
|
||||
|
||||
test_replaceAll : function()
|
||||
{
|
||||
CKEDITOR.replaceAll();
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor6, 'editor6 instance not found' );
|
||||
assert.areSame( 'editor6', CKEDITOR.instances.editor6.name, 'editor6 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor6' ), CKEDITOR.instances.editor6.element.$, 'editor6 instance element doesn\'t match' );
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor8, 'editor8 editor instance not found' );
|
||||
assert.areSame( 'editor8', CKEDITOR.instances.editor8.name, 'editor8 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor8' ), CKEDITOR.instances.editor8.element.$, 'editor8 instance element doesn\'t match' );
|
||||
},
|
||||
|
||||
test_add : function()
|
||||
{
|
||||
var textarea = CKEDITOR.dom.element.createFromHtml( '<textarea id="test_add"><p>test_add</p><\/textarea>' );
|
||||
textarea.appendTo( new CKEDITOR.dom.element( document.body ) );
|
||||
|
||||
var editor = new CKEDITOR.editor( {}, textarea, CKEDITOR.ELEMENT_MODE_REPLACE );
|
||||
|
||||
CKEDITOR.add( editor );
|
||||
|
||||
assert.areSame( editor, CKEDITOR.instances.test_add );
|
||||
},
|
||||
|
||||
setUp : function()
|
||||
{
|
||||
removeAllInstances();
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="editor1" cols="80" rows="10"></textarea>
|
||||
<textarea name="editor2" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor3" name="editor3" class="myclass" cols="80" rows="10"></textarea>
|
||||
<textarea name="editor4" class="myclass" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor5" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor6" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor7" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor8" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor9" cols="80" rows="10"></textarea>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,126 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.document</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert,
|
||||
arrayAssert = YAHOO.util.ArrayAssert;
|
||||
|
||||
return {
|
||||
test_$ : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
assert.areSame( document, doc.$ );
|
||||
},
|
||||
|
||||
test_appendStyleSheet : function()
|
||||
{
|
||||
var cssUrl = CKEDITOR.basePath + '_tests/';
|
||||
cssUrl += '_assets/sample.css';
|
||||
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
doc.appendStyleSheet( cssUrl );
|
||||
|
||||
var links = document.getElementsByTagName( 'link' );
|
||||
|
||||
for ( var i = 0 ; i < links.length ; i++ )
|
||||
{
|
||||
if ( links[i].href == cssUrl )
|
||||
return ;
|
||||
}
|
||||
|
||||
assert.fail( 'The link element was not found' );
|
||||
},
|
||||
|
||||
test_equals1 : function()
|
||||
{
|
||||
// Actually checks the real need for equals().
|
||||
var doc1 = new CKEDITOR.dom.document( document );
|
||||
assert.isFalse( doc1 == document );
|
||||
},
|
||||
|
||||
test_equals2 : function()
|
||||
{
|
||||
// Actually checks the real need for equals().
|
||||
var doc1 = new CKEDITOR.dom.document( document );
|
||||
var doc2 = new CKEDITOR.dom.document( document );
|
||||
assert.isFalse( doc1 == doc2, 'doc1 == doc2' );
|
||||
},
|
||||
|
||||
test_equals3 : function()
|
||||
{
|
||||
var doc1 = new CKEDITOR.dom.document( document );
|
||||
var doc2 = new CKEDITOR.dom.document( document );
|
||||
assert.isTrue( doc1.equals( doc2 ), 'doc1.equals( doc2 )' );
|
||||
assert.isTrue( doc2.equals( doc1 ), 'doc2.equals( doc1 )' );
|
||||
},
|
||||
|
||||
test_getById1 : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
var element = doc.getById( 'test1' );
|
||||
assert.areSame( document.getElementById( 'test1' ), element.$ );
|
||||
},
|
||||
|
||||
test_getById2 : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
var element = doc.getById( 'test_invalid' );
|
||||
assert.isNull( element );
|
||||
},
|
||||
|
||||
test_getHead : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
assert.areSame( document.getElementsByTagName( 'head' )[0], doc.getHead().$ );
|
||||
},
|
||||
|
||||
test_getBody : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
assert.areSame( document.body, doc.getBody().$, '1st call failed' );
|
||||
assert.areSame( document.body, doc.getBody().$, '2nd call failed' );
|
||||
},
|
||||
test_createText : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document ), contentText = 'text content';
|
||||
var textNode = doc.createText( contentText );
|
||||
assert.areSame( contentText, textNode.getText(),
|
||||
'Create text node content doesn\'t match.' );
|
||||
},
|
||||
|
||||
test_getByAddress1 : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
var node = doc.getByAddress( [ 1, 1, 0, 1, 0, 0 ] );
|
||||
assert.areSame( 'target', node.getText(),
|
||||
'Addressing target doesn\'t match.' );
|
||||
},
|
||||
|
||||
test_getElementsByTag : function()
|
||||
{
|
||||
var nodeList = new CKEDITOR.dom.document( document ).getElementsByTag( 'span' ),
|
||||
results = [];
|
||||
for( var i = 0; i < nodeList.count(); i++ ){
|
||||
results.push( nodeList.getItem( i ).$ );
|
||||
}
|
||||
arrayAssert.itemsAreEqual( results, document.getElementsByTagName( 'span' ) );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body><div id="test1"></div><div><p>text<span><b id="addressTarget1">target</b>text</span>text</p></div><span ><b id="addressTarget2">target</b></span></body>
|
||||
</html>
|
||||
@@ -1,292 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.documentFragment</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var tc;
|
||||
CKEDITOR.test.addTestCase( tc = ( function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = YAHOO.util.Assert,
|
||||
doc = CKEDITOR.document;
|
||||
|
||||
return {
|
||||
|
||||
test_appendTo : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner =
|
||||
new CKEDITOR.dom.element( 'b' );
|
||||
frag.append( inner );
|
||||
var container = CKEDITOR.document.getById( 'fragmentContainer1' );
|
||||
frag.appendTo( container );
|
||||
assert.isTrue( container.getLast().equals( inner ) );
|
||||
},
|
||||
|
||||
test_append : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner =
|
||||
new CKEDITOR.dom.element( 'b' );
|
||||
frag.append( inner );
|
||||
var container = CKEDITOR.document.getById( 'fragmentContainer3' );
|
||||
container.append( frag );
|
||||
assert.isTrue( container.getLast().equals( inner ) );
|
||||
},
|
||||
|
||||
test_getFirst : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner =
|
||||
new CKEDITOR.dom.element( 'b' );
|
||||
frag.append( inner );
|
||||
var first = frag.getFirst();
|
||||
assert.isTrue( first.equals( inner ) );
|
||||
},
|
||||
|
||||
test_getLast : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner =
|
||||
new CKEDITOR.dom.element( 'b' ), lastInner = inner.clone();
|
||||
frag.append( inner );
|
||||
frag.append( lastInner );
|
||||
var last = frag.getLast();
|
||||
assert.isTrue( last.equals( lastInner ) );
|
||||
},
|
||||
|
||||
test_moveChildren : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner1 = new CKEDITOR.dom.element( 'b' ),
|
||||
inner2 = new CKEDITOR.dom.element( 'i' );
|
||||
frag.append( inner1 );
|
||||
frag.append( inner2 );
|
||||
|
||||
// Move to element
|
||||
var element = new CKEDITOR.dom.element( 'span' );
|
||||
frag.moveChildren( element, true );
|
||||
assert.isTrue( element.getFirst().equals( inner1 ) );
|
||||
assert.isTrue( element.getLast().equals( inner2 ) );
|
||||
},
|
||||
|
||||
test_moveChildren2 : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner1 = new CKEDITOR.dom.element( 'b' ),
|
||||
inner2 = new CKEDITOR.dom.element( 'i' );
|
||||
frag.append( inner1 );
|
||||
frag.append( inner2 );
|
||||
|
||||
// Move to fragment
|
||||
var anotherFrag = new CKEDITOR.dom.documentFragment(
|
||||
CKEDITOR.document );
|
||||
frag.moveChildren( anotherFrag, true );
|
||||
assert.isTrue( anotherFrag.getFirst().equals( inner1 ) );
|
||||
assert.isTrue( anotherFrag.getLast().equals( inner2 ) );
|
||||
},
|
||||
|
||||
test_appendText : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'script' );
|
||||
element.appendText( 'Test appendText' );
|
||||
assert.areEqual( 'Test appendText', element.$.text );
|
||||
},
|
||||
|
||||
test_ltrim : function()
|
||||
{
|
||||
// IE need special treatement to setup this tc, see
|
||||
// next tc for this.
|
||||
if ( CKEDITOR.env.ie )
|
||||
return;
|
||||
var element = CKEDITOR.dom.element.createFromHtml(
|
||||
'<div id="trimTarget">\t\ntext\t\n</div>'
|
||||
);
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
element.moveChildren( frag );
|
||||
frag.ltrim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
assert.areSame( 'text\t\n', ct.getText() );
|
||||
},
|
||||
|
||||
test_ltrim_ie : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie )
|
||||
return;
|
||||
// IE dom operation will trim preceding empty text,
|
||||
// here we use 'splitText' way to create leading spaces
|
||||
// instead for testing.
|
||||
var emptyTextNode = doc.createText( '@ \ttext\t ');
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( doc );
|
||||
frag.append( emptyTextNode );
|
||||
frag.getFirst().$.splitText( 1 );
|
||||
frag.getFirst().remove();
|
||||
frag.ltrim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
assert.areSame( 'text\t ', ct.getText() );
|
||||
},
|
||||
|
||||
test_rtrim : function()
|
||||
{
|
||||
if ( CKEDITOR.env.ie )
|
||||
return;
|
||||
var element = CKEDITOR.dom.element.createFromHtml(
|
||||
'<div id="trimTarget">\t\ntext\t\n</div>'
|
||||
);
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
element.moveChildren( frag );
|
||||
frag.rtrim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
|
||||
assert.areSame( '\t\ntext', ct.getText() );
|
||||
},
|
||||
|
||||
/**
|
||||
*@see test_ltrim_ie
|
||||
*/
|
||||
test_rtrim_ie : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie )
|
||||
return;
|
||||
var emptyTextNode = doc.createText( '@ \ttext\t ');
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( doc );
|
||||
frag.append( emptyTextNode );
|
||||
frag.getFirst().$.splitText( 1 );
|
||||
frag.getFirst().remove();
|
||||
frag.rtrim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
assert.areSame( ' \ttext', ct.getText() );
|
||||
},
|
||||
|
||||
|
||||
test_trim : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie )
|
||||
return;
|
||||
var element = CKEDITOR.dom.element.createFromHtml(
|
||||
'<div id="trimTarget">\t\ntext\t\n</div>'
|
||||
);
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
element.moveChildren( frag );
|
||||
frag.trim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
assert.areSame( 'text', ct.getText() );
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
*@see test_ltrim_ie
|
||||
*/
|
||||
test_trim_ie : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie )
|
||||
return;
|
||||
var emptyTextNode = doc.createText( '@ \t\ntext\t\n ');
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( doc );
|
||||
frag.append( emptyTextNode );
|
||||
frag.getFirst().$.splitText( 1 );
|
||||
frag.getFirst().remove();
|
||||
frag.trim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
assert.areSame( 'text', ct.getText() );
|
||||
},
|
||||
|
||||
test_insertAfter : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner = new CKEDITOR.dom.element( 'b' );
|
||||
frag.append( inner );
|
||||
var container = CKEDITOR.document.getById( 'fragmentContainer2' );
|
||||
var sibling = CKEDITOR.document.getById( 'fragmentSibling1' );
|
||||
frag.insertAfterNode( sibling );
|
||||
assert.isTrue( container.getLast().equals( inner ) );
|
||||
},
|
||||
|
||||
test_getChildCount : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner1 = new CKEDITOR.dom.element( 'b' ),
|
||||
inner2 = new CKEDITOR.dom.element( 'i' );
|
||||
frag.append( inner1 );
|
||||
frag.append( inner2 );
|
||||
|
||||
assert.areEqual( 2, frag.getChildCount() );
|
||||
},
|
||||
|
||||
test_getChild : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner1 = new CKEDITOR.dom.element( 'b' ),
|
||||
inner2 = new CKEDITOR.dom.element( 'i' );
|
||||
frag.append( inner1 );
|
||||
frag.append( inner2 );
|
||||
|
||||
assert.isTrue( inner2.equals( frag.getChild( 1 ) ) );
|
||||
},
|
||||
|
||||
test_getChildren : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner1 = new CKEDITOR.dom.element( 'b' ),
|
||||
inner2 = new CKEDITOR.dom.element( 'i' );
|
||||
frag.append( inner1 );
|
||||
frag.append( inner2 );
|
||||
|
||||
var childNodesList = frag.getChildren();
|
||||
assert.areEqual( 2, childNodesList.count() );
|
||||
assert.isTrue( inner2.equals( childNodesList.getItem( 1 ) ) );
|
||||
},
|
||||
|
||||
test_getDocument : function()
|
||||
{
|
||||
var doc = CKEDITOR.document,
|
||||
innerDoc = new CKEDITOR.dom.document(
|
||||
doc.getById( 'innerFrame' ).$.contentWindow.document );
|
||||
var frag1 = new CKEDITOR.dom.documentFragment( doc ),
|
||||
frag2 = new CKEDITOR.dom.documentFragment( innerDoc );
|
||||
|
||||
assert.isTrue( doc.equals( frag1.getDocument() ) );
|
||||
assert.isTrue( innerDoc.equals( frag2.getDocument() ) );
|
||||
},
|
||||
|
||||
name :document.title
|
||||
};
|
||||
} )() );
|
||||
|
||||
//window.onload = tc.test_rtrim_ie;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="fragmentContainer1"></div>
|
||||
<div id="fragmentContainer2"><div id="fragmentSibling1"></div></div>
|
||||
<div id="fragmentContainer3"></div>
|
||||
<iframe id="innerFrame" name="innerFrame" src="about:blank"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,637 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.element</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
var getInnerHtml = CKEDITOR.test.getInnerHtml;
|
||||
|
||||
return {
|
||||
test_$ : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
assert.areSame( document.getElementById( 'test1' ), element.$ );
|
||||
},
|
||||
|
||||
test_getId1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
assert.areEqual( 'test1', element.getId() );
|
||||
},
|
||||
|
||||
test_getId2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementsByTagName( 'div' )[0] );
|
||||
assert.isNull( element.getId() );
|
||||
},
|
||||
|
||||
test_getNameAtt1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementsByName( 'named1' )[0] );
|
||||
assert.areEqual( 'named1', element.getNameAtt() );
|
||||
},
|
||||
|
||||
test_getNameAtt2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
assert.isNull( element.getNameAtt() );
|
||||
},
|
||||
|
||||
test_getName : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
assert.areEqual( 'textarea', element.getName(), 'First call' );
|
||||
assert.areEqual( 'textarea', element.getName(), 'Second call' );
|
||||
},
|
||||
|
||||
test_hide : function()
|
||||
{
|
||||
var nativeElement = document.getElementById( 'test1' );
|
||||
nativeElement.style.display = '';
|
||||
|
||||
var element = new CKEDITOR.dom.element( nativeElement );
|
||||
element.hide();
|
||||
|
||||
assert.areEqual( 'none', nativeElement.style.display );
|
||||
},
|
||||
|
||||
test_show : function()
|
||||
{
|
||||
var nativeElement = document.getElementById( 'test1' );
|
||||
nativeElement.style.display = '';
|
||||
|
||||
var element = new CKEDITOR.dom.element( nativeElement );
|
||||
element.show();
|
||||
|
||||
assert.areEqual( '', nativeElement.style.display );
|
||||
},
|
||||
|
||||
test_createFromHtml : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<p>My test</p>' );
|
||||
assert.areEqual( 'p', element.getName(), 'element name doesn\'t match' );
|
||||
assert.areEqual( 'My test', element.$.innerHTML, 'the innerHTML doesn\'t match' );
|
||||
},
|
||||
|
||||
test_createFromHtml2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><x:x><p>Test</p></div>' );
|
||||
assert.areNotEqual( 'Test', element.getChild( 0, 0 ).innerHTML );
|
||||
},
|
||||
|
||||
test_append1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.append( new CKEDITOR.dom.element( 'b' ) );
|
||||
assert.areEqual( 'b', document.getElementById( 'append' ).firstChild.nodeName.toLowerCase() );
|
||||
},
|
||||
|
||||
test_append2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.append( 'i' );
|
||||
assert.areEqual( 'i', document.getElementById( 'append' ).lastChild.nodeName.toLowerCase() );
|
||||
},
|
||||
|
||||
test_appendText1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.setHtml( '' );
|
||||
element.appendText( 'Test appendText' );
|
||||
assert.areEqual( 'Test appendText', document.getElementById( 'append' ).innerHTML );
|
||||
},
|
||||
|
||||
test_appendText2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'script' );
|
||||
element.appendText( 'Test appendText' );
|
||||
assert.areEqual( 'Test appendText', element.$.text );
|
||||
},
|
||||
|
||||
test_setHtml : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.setHtml( '<b>Test</b>' );
|
||||
assert.areEqual( '<b>test</b>', document.getElementById( 'append' ).innerHTML.toLowerCase(), 'First call doesn\'t match' );
|
||||
element.setHtml( 'Another test' );
|
||||
assert.areEqual( 'Another test', document.getElementById( 'append' ).innerHTML, 'Second call doesn\'t match' );
|
||||
},
|
||||
|
||||
test_getDocument1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'div' );
|
||||
assert.areSame( document, element.getDocument().$, 'First call' );
|
||||
assert.areSame( document, element.getDocument().$, 'Second call' );
|
||||
},
|
||||
|
||||
test_getDocument2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.body );
|
||||
assert.areSame( document, element.getDocument().$, 'First call' );
|
||||
assert.areSame( document, element.getDocument().$, 'Second call' );
|
||||
},
|
||||
|
||||
test_getFirst1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.setHtml( '<b>Test</b>' );
|
||||
var first = element.getFirst();
|
||||
assert.areSame( 'b', first.getName() );
|
||||
},
|
||||
|
||||
test_getFirst2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.setHtml( 'Test' );
|
||||
var first = element.getFirst();
|
||||
assert.areSame( 'Test', first.$.nodeValue );
|
||||
},
|
||||
|
||||
test_getFirst3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.setHtml( '' );
|
||||
var first = element.getFirst();
|
||||
assert.isNull( first );
|
||||
},
|
||||
|
||||
test_setAttribute1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
element.setAttribute( 'class', 'Test' );
|
||||
|
||||
assert.areSame( 'Test', document.getElementById( 'test1' ).className );
|
||||
},
|
||||
|
||||
test_setAttribute2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
element.setAttribute( 'style', 'position: absolute;' );
|
||||
|
||||
assert.areEqual( 'position: absolute;', CKEDITOR.test.getAttribute( element, 'style' ) );
|
||||
},
|
||||
|
||||
test_setAttribute3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
element.setAttribute( 'name', 'TestName' );
|
||||
|
||||
assert.areEqual( 'TestName', document.getElementById( 'test1' ).name );
|
||||
},
|
||||
|
||||
test_setAttribute4 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
element.setAttribute( 'rows', 5 );
|
||||
|
||||
assert.areEqual( 5, document.getElementById( 'test1' ).rows );
|
||||
},
|
||||
|
||||
test_setAttributes : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test2' ) );
|
||||
element.setAttributes({
|
||||
'class' : 'Test',
|
||||
'style' : 'position: absolute;',
|
||||
'name' : 'TestName',
|
||||
'rows' : 5 });
|
||||
|
||||
assert.areSame( 'Test', document.getElementById( 'test1' ).className, 'class 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' );
|
||||
},
|
||||
|
||||
test_setStyle1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'setStyle' ) );
|
||||
element.setStyle( 'position', 'absolute' );
|
||||
|
||||
assert.areEqual( 'absolute', document.getElementById( 'setStyle' ).style.position );
|
||||
},
|
||||
|
||||
test_setStyle2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'setStyle' ) );
|
||||
element.setStyle( 'float', 'right' );
|
||||
|
||||
assert.areEqual( 'right', document.getElementById( 'setStyle' ).style.cssFloat );
|
||||
},
|
||||
|
||||
test_setStyles : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'setStyle' ) );
|
||||
element.setStyles({
|
||||
'position' : 'absolute',
|
||||
'float' : 'right'
|
||||
});
|
||||
|
||||
assert.areEqual( 'absolute', document.getElementById( 'setStyle' ).style.position );
|
||||
assert.areEqual( 'right', document.getElementById( 'setStyle' ).style.cssFloat );
|
||||
},
|
||||
|
||||
test_setText1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'setText' ) );
|
||||
element.setText( 'A & B' );
|
||||
assert.areSame( 'A & B', document.getElementById( 'setText' ).innerHTML );
|
||||
},
|
||||
|
||||
test_setText2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'setText' ) );
|
||||
element.setText( 'C & D' );
|
||||
assert.areSame( 'C & D', document.getElementById( 'setText' ).innerHTML );
|
||||
},
|
||||
|
||||
test_addClass1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'div' );
|
||||
element.addClass( 'classA' );
|
||||
assert.areSame( 'classA', element.$.className );
|
||||
},
|
||||
|
||||
test_addClass2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'div' );
|
||||
element.addClass( 'classA' );
|
||||
element.addClass( 'classA' );
|
||||
assert.areSame( 'classA', element.$.className );
|
||||
},
|
||||
|
||||
test_addClass3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'div' );
|
||||
element.addClass( 'classA' );
|
||||
element.addClass( 'classB' );
|
||||
element.addClass( 'classC' );
|
||||
assert.areSame( 'classA classB classC', element.$.className );
|
||||
},
|
||||
|
||||
test_addClass4 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'div' );
|
||||
element.addClass( 'classA' );
|
||||
element.addClass( 'classB' );
|
||||
element.addClass( 'classC' );
|
||||
element.addClass( 'classA' );
|
||||
element.addClass( 'classB' );
|
||||
element.addClass( 'classC' );
|
||||
assert.areSame( 'classA classB classC', element.$.className );
|
||||
},
|
||||
|
||||
test_removeClass1 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div class="classA"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
assert.areSame( '<div class="classa"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classA' );
|
||||
assert.areSame( '<div></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_removeClass2 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div class="classA classB classC classD"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
assert.areSame( '<div class="classa classb classc classd"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classA' );
|
||||
assert.areSame( '<div class="classb classc classd"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classC' );
|
||||
assert.areSame( '<div class="classb classd"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classD' );
|
||||
assert.areSame( '<div class="classb"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classB' );
|
||||
assert.areSame( '<div></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_removeClass3 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div class="classA classB"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
assert.areSame( '<div class="classa classb"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classXXX' );
|
||||
assert.areSame( '<div class="classa classb"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classB' );
|
||||
assert.areSame( '<div class="classa"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classYYY' );
|
||||
assert.areSame( '<div class="classa"></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_removeAttribute1 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div class="classA"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
element.removeAttribute( 'class' );
|
||||
assert.areSame( '<div></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_removeAttribute2 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div style="position:absolute"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
element.removeAttribute( 'style' );
|
||||
assert.areSame( '<div></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_removeAttribute3 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div title="Test"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
element.removeAttribute( 'title' );
|
||||
assert.areSame( '<div></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_remove : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'removeInner' ) );
|
||||
element.remove();
|
||||
|
||||
assert.areSame( '', getInnerHtml( 'removeOuter' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndex10' ) );
|
||||
assert.areEqual( 10, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexDef' ) );
|
||||
assert.isNull( CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInputDef' ) );
|
||||
assert.isNull( CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex4 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInput20' ) );
|
||||
assert.areEqual( 20, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex5 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexScriptDef' ) );
|
||||
assert.areEqual( null, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test getAttribute and getAttribute will ingore '_cke_expando' attribute.
|
||||
*/
|
||||
test_getAttribute_ignoreExpandoAttributes : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'testExpandoAttributes' ) );
|
||||
|
||||
assert.areEqual( 1, CKEDITOR.test.getAttribute( element, 'tabindex' ), 'tabindex is wrong' );
|
||||
element.removeAttribute( 'tabindex' );
|
||||
|
||||
assert.areEqual( 'hasExpando', CKEDITOR.test.getAttribute( element, 'class' ), 'class is wrong' );
|
||||
element.removeAttribute( 'class' );
|
||||
|
||||
assert.areEqual( 'float: right;', CKEDITOR.test.getAttribute( element, 'style' ) );
|
||||
|
||||
element.removeAttribute( 'style' );
|
||||
element.removeAttribute( 'id' );
|
||||
assert.isFalse( element.hasAttributes(), 'hasAttributes should be false' );
|
||||
},
|
||||
|
||||
test_getTabIndex1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndex10' ) );
|
||||
assert.areSame( 10, element.getTabIndex() );
|
||||
},
|
||||
|
||||
test_getTabIndex2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexDef' ) );
|
||||
assert.areSame( -1, element.getTabIndex() );
|
||||
},
|
||||
|
||||
test_getTabIndex3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInputDef' ) );
|
||||
assert.areSame( 0, element.getTabIndex() );
|
||||
},
|
||||
|
||||
test_getTabIndex4 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInput20' ) );
|
||||
assert.areSame( 20, element.getTabIndex() );
|
||||
},
|
||||
|
||||
test_getTabIndex5 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexScriptDef' ) );
|
||||
assert.areSame( -1, element.getTabIndex() );
|
||||
},
|
||||
|
||||
test_private1 : function()
|
||||
{
|
||||
var a = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
var b = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
|
||||
assert.areSame( a.getPrivate(), b.getPrivate() );
|
||||
},
|
||||
|
||||
test_private2 : function()
|
||||
{
|
||||
var a = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
var b = new CKEDITOR.dom.element( document.getElementById( 'test2' ) );
|
||||
|
||||
assert.areNotSame( a.getPrivate(), b.getPrivate() );
|
||||
},
|
||||
|
||||
test_getText1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'getText' ) );
|
||||
|
||||
// IE gives us a different result, which is ok for us (see code comments).
|
||||
if ( CKEDITOR.env.ie )
|
||||
assert.areSame( 'Some \nsample text for testing', element.getText().replace( /\r\n|\r/g, '\n' ) );
|
||||
else
|
||||
assert.areSame( 'Some sample text for testing', element.getText() );
|
||||
},
|
||||
|
||||
test_getText2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'getText2' ).getElementsByTagName( 'b' )[0] );
|
||||
assert.areSame( ' ', element.getText() );
|
||||
},
|
||||
|
||||
test_getText3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'getText3' ) );
|
||||
|
||||
// IE gives us a different result, which is ok for us (see code comments).
|
||||
if ( CKEDITOR.env.ie )
|
||||
assert.areSame( 'A B', element.getText() );
|
||||
else
|
||||
assert.areSame( 'A\nB', element.getText().replace( /\r\n|\r/g, '\n' ) );
|
||||
},
|
||||
|
||||
test_hasAttributes1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementsByTagName( 'big' )[0] );
|
||||
assert.isFalse( element.hasAttributes() );
|
||||
},
|
||||
|
||||
test_hasAttributes2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementsByTagName( 'small' )[0] );
|
||||
assert.isTrue( element.hasAttributes() );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test detecting of 'class' attribute in IE6/7.
|
||||
*/
|
||||
test_hasAttributes_4075 : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) )
|
||||
return;
|
||||
var element = new CKEDITOR.dom.element( 'span' );
|
||||
element.setAttribute( 'class', 'value' );
|
||||
assert.isTrue( element.hasAttributes(), 'Failed to detect "class" attribute existence.' );
|
||||
},
|
||||
|
||||
test_getDocumentPosition : function()
|
||||
{
|
||||
// Assign the page location of the element.
|
||||
YAHOO.util.Dom.setXY('DocPositionTarget', [ 350, 450 ] );
|
||||
var pos = CKEDITOR.document.getById( 'DocPositionTarget' ).getDocumentPosition();
|
||||
if ( !CKEDITOR.env.ie || CKEDITOR.env.ie8 )
|
||||
{
|
||||
assert.areEqual( 350, pos.x, 'Position coordinates:x relative to document doesn\'t match.' );
|
||||
assert.areEqual( 450, pos.y, 'Position coordinates:y relative to document doesn\'t match.' );
|
||||
}
|
||||
else
|
||||
{
|
||||
assert.isTrue( pos.x == 348 || pos.x == 349, 'Position coordinates:x relative to document doesn\'t match.' );
|
||||
assert.areEqual( 448, pos.y, 'Position coordinates:y relative to document doesn\'t match.' );
|
||||
}
|
||||
},
|
||||
|
||||
// Test get last non-spaces child node.
|
||||
test_getLast : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
var span1 = new CKEDITOR.dom.element( 'span' );
|
||||
element.append( span1 );
|
||||
element.append( new CKEDITOR.dom.text( ' ' ) );
|
||||
element.append( new CKEDITOR.dom.text( ' ' ) );
|
||||
var last = element.getLast( CKEDITOR.dom.walker.whitespaces( true ) );
|
||||
assert.areSame( span1.$, last.$ );
|
||||
},
|
||||
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
<style type="text/css" media="screen">
|
||||
#test-computed {
|
||||
width:50%;
|
||||
margin:auto;
|
||||
padding:10px;
|
||||
z-index: 2;
|
||||
}
|
||||
.scroll
|
||||
{
|
||||
overflow: visible;
|
||||
}
|
||||
.block1
|
||||
{
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
background-color: blue;
|
||||
text-align: center;
|
||||
}
|
||||
.block2
|
||||
{
|
||||
margin: auto;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
background-color: green;
|
||||
position : relative;
|
||||
}
|
||||
.block3
|
||||
{
|
||||
position: absolute;
|
||||
float:right;
|
||||
width: 300px;
|
||||
height: 300px;
|
||||
background-color: black;
|
||||
}
|
||||
.block4
|
||||
{
|
||||
position: absolute;
|
||||
left: 50px;
|
||||
right: 50px;
|
||||
width: 400px;
|
||||
height: 400px;
|
||||
background-color: pink;
|
||||
}
|
||||
#DocPositionTarget
|
||||
{
|
||||
background-color: red;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="test1" rows="10" cols="80"></textarea>
|
||||
<textarea id="test2" rows="10" cols="80"></textarea>
|
||||
<textarea name="named1" rows="10" cols="80"></textarea>
|
||||
<div>Test</div>
|
||||
<div id="append"></div>
|
||||
<div id="setStyle"></div>
|
||||
<div id="setText"></div>
|
||||
<div id="removeClass"></div>
|
||||
<div id="removeOuter"><b id="removeInner"></b></div>
|
||||
<div id="tabIndex10" tabindex="10"></div>
|
||||
<div id="testExpandoAttributes" _cke_expando ="1" class="hasExpando" tabindex="1" style="float:right"></div>
|
||||
<div id="tabIndexDef"></div>
|
||||
<input id="tabIndexInputDef" />
|
||||
<input id="tabIndexInput20" tabindex="20" />
|
||||
<script id="tabIndexScriptDef" type="text/javascript"></script>
|
||||
<div id="getText">Some <br /><b> sample text</b> for <i> testing</i></div>
|
||||
<div id="getText2">A<b> </b>B</div>
|
||||
<div id="getText3">A
|
||||
B</div>
|
||||
<big>Test</big>
|
||||
<small title="Testing">Test</small>
|
||||
|
||||
<div class="block1 scroll" id="block1"><div class="block2 scroll" id="block2"><div class="block3 scroll" id="block3"><div class="block4 scroll" id="block4"><div id="DocPositionTarget">target</div></div></div></div></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,164 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.node</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var tc;
|
||||
CKEDITOR.test.addTestCase( tc = (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_getPosition1 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition2 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
|
||||
},
|
||||
|
||||
test_getPosition3 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition4 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
|
||||
},
|
||||
|
||||
test_getPosition5 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'div' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'div' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_IDENTICAL, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition6 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition7 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
|
||||
assert.areSame( CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
|
||||
},
|
||||
|
||||
test_getPosition8 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition9 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
|
||||
},
|
||||
|
||||
test_getPosition10 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'i' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition11 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'i' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test 'preceding' position.
|
||||
*/
|
||||
test_getPosition_3240: function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'span' )[0].firstChild );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
// Test get previous non-spaces node.
|
||||
test_getPrevious : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
var span1 = new CKEDITOR.dom.element( 'span' );
|
||||
element.append( span1 );
|
||||
element.append( new CKEDITOR.dom.text( ' ' ) );
|
||||
var span2 = new CKEDITOR.dom.element( 'span' );
|
||||
element.append( span2 );
|
||||
var previous = span2.getPrevious( CKEDITOR.dom.walker.whitespaces( true ) );
|
||||
assert.areSame( span1.$, previous.$ );
|
||||
},
|
||||
|
||||
// Test get next non-spaces node.
|
||||
test_getNext : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
var span1 = new CKEDITOR.dom.element( 'span' );
|
||||
element.append( span1 );
|
||||
element.append( new CKEDITOR.dom.text( ' ' ) );
|
||||
var span2 = new CKEDITOR.dom.element( 'span' );
|
||||
element.append( span2 );
|
||||
var next = span1.getNext( CKEDITOR.dom.walker.whitespaces( true ) );
|
||||
assert.areSame( span2.$, next.$ );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//window.onload = function()
|
||||
//{
|
||||
// var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
|
||||
// var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
|
||||
//
|
||||
// alert( node1.getPosition( node2 ) );
|
||||
//};
|
||||
//window.onload = tc.test_getPosition6;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
<h1>Title</h1>
|
||||
<p><b>Sample</b> <i>Text</i></p>
|
||||
</div>
|
||||
<span>Another</span>
|
||||
<p id="append"></p>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,128 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.text</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var tc;
|
||||
CKEDITOR.test.addTestCase( tc = (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
|
||||
test_substring1 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '123', text.substring( 1, 4 ) );
|
||||
},
|
||||
|
||||
test_substring2 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '56789', text.substring( 5 ) );
|
||||
},
|
||||
|
||||
test_substring3 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '', text.substring( 1,1 ) );
|
||||
},
|
||||
|
||||
test_substring4 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '012', text.substring( -10,3 ) );
|
||||
},
|
||||
|
||||
test_substring5 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '89', text.substring( 8,100 ) );
|
||||
},
|
||||
|
||||
test_substring6 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '234', text.substring( 5,2 ) );
|
||||
},
|
||||
|
||||
test_split1 : function()
|
||||
{
|
||||
var div = CKEDITOR.document.getById( 'playground' );
|
||||
div.setHtml( '01234' );
|
||||
|
||||
var text = div.getFirst(),
|
||||
next = text.split( 3 );
|
||||
|
||||
assert.areSame( '012', text.getText(), 'text.getText() is wrong' );
|
||||
assert.areSame( '34', next.getText(), 'next.getText() is wrong' );
|
||||
|
||||
assert.areSame( div.$, next.$.parentNode, 'parentNode is wrong' );
|
||||
assert.areSame( text.$, next.$.previousSibling, 'sibling is wrong' );
|
||||
},
|
||||
|
||||
test_split2 : function()
|
||||
{
|
||||
var div = CKEDITOR.document.getById( 'playground' );
|
||||
div.setHtml( '01234' );
|
||||
|
||||
var text = div.getFirst(),
|
||||
next = text.split( 5 );
|
||||
|
||||
assert.areSame( '01234', text.getText(), 'text.getText() is wrong' );
|
||||
assert.areSame( '', next.getText(), 'next.getText() is wrong' );
|
||||
|
||||
assert.areSame( div.$, next.$.parentNode, 'parentNode is wrong' );
|
||||
assert.areSame( text.$, next.$.previousSibling, 'sibling is wrong' );
|
||||
},
|
||||
|
||||
test_split3 : function()
|
||||
{
|
||||
var div = CKEDITOR.document.getById( 'playground' );
|
||||
div.setHtml( '01234' );
|
||||
|
||||
var text = div.getFirst(),
|
||||
next = text.split( 0 );
|
||||
|
||||
assert.areSame( '', text.getText(), 'text.getText() is wrong' );
|
||||
assert.areSame( '01234', next.getText(), 'next.getText() is wrong' );
|
||||
|
||||
assert.areSame( div.$, next.$.parentNode, 'parentNode is wrong' );
|
||||
assert.areSame( text.$, next.$.previousSibling, 'sibling is wrong' );
|
||||
},
|
||||
|
||||
test_split_3436 : function()
|
||||
{
|
||||
var parent = CKEDITOR.document.getById( 'playground2' );
|
||||
parent.setHtml( 'A B <b>C </b>D E' );
|
||||
parent.getFirst().split( 2 ); // Right before "B"
|
||||
parent.getChildren().getItem( 3 ).split( 2 ); // Right before "E"
|
||||
assert.areSame( 5, parent.getChildren().count(), 'Child nodes num doesn\'t match after split' );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//window.onload = tc.test_split_3436;
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p id="playground"></p>
|
||||
<p id="playground2"></p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,340 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.walker</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var tc;
|
||||
|
||||
CKEDITOR.test.addTestCase( tc = (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
|
||||
function assertNodesList( wanted, nodes )
|
||||
{
|
||||
var simplifiedNodes = [];
|
||||
|
||||
for ( var i = 0 ; i < nodes.length ; i++ )
|
||||
simplifiedNodes.push( nodes[i].type == CKEDITOR.NODE_TEXT ? nodes[i].getText() : ( '<' + nodes[i].getName() + '>' ) );
|
||||
|
||||
assert.areSame( wanted.toString(), simplifiedNodes.toString() );
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
test_collapsed : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
|
||||
range.setStartAt( node.getFirst(), CKEDITOR.POSITION_AFTER_START );
|
||||
range.collapse( true );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
assert.isNull( walker.next() );
|
||||
},
|
||||
|
||||
test_next_1 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.next() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<p>', 'This is ', '<b>', 'a ', '<i>', 'simple', ' test' ], nodes );
|
||||
},
|
||||
|
||||
test_next_2 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getFirst(), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEnd( node.getChild( [0,1,1,0] ), 2 );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.next() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ 'This is ', '<b>', 'a ', '<i>', 'si' ], nodes );
|
||||
},
|
||||
|
||||
test_next_3 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 1 ), CKEDITOR.POSITION_BEFORE_START );
|
||||
range.setEndAt( node.getChild( 1 ), CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.next() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<h1>' ], nodes );
|
||||
},
|
||||
|
||||
test_next_4 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 0 ), CKEDITOR.POSITION_BEFORE_END );
|
||||
range.setEndAt( node.getChild( 0 ), CKEDITOR.POSITION_AFTER_END );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.next() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [], nodes );
|
||||
},
|
||||
|
||||
test_next_5 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 0 ), CKEDITOR.POSITION_BEFORE_END );
|
||||
range.setEndAt( node.getChild( 1 ), CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.next() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<h1>' ], nodes );
|
||||
},
|
||||
|
||||
test_previous_1 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.previous() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<p>', ' test', '<b>', '<i>', 'simple', 'a ', 'This is ' ], nodes );
|
||||
},
|
||||
|
||||
test_previous_2 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setEnd( node.getChild( [0,0] ), 2 );
|
||||
range.setEnd( node.getChild( [0,1,1,0] ), 2 );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.previous() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ 'si', 'a ', 'is is ' ], nodes );
|
||||
},
|
||||
|
||||
test_previous_3 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 1 ), CKEDITOR.POSITION_BEFORE_START );
|
||||
range.setEndAt( node.getChild( 1 ), CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.previous() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '' ], nodes );
|
||||
},
|
||||
|
||||
test_previous_4 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 0 ), CKEDITOR.POSITION_BEFORE_END );
|
||||
range.setEndAt( node.getChild( 0 ), CKEDITOR.POSITION_AFTER_END );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.previous() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<p>' ], nodes );
|
||||
},
|
||||
|
||||
test_previous_5 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 0 ), CKEDITOR.POSITION_BEFORE_END );
|
||||
range.setEndAt( node.getChild( 1 ), CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.previous() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<p>' ], nodes );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test guard function is invoked on every move when iterating forward.
|
||||
*/
|
||||
test_guard_1 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
var nodes = [];
|
||||
|
||||
walker.guard = function( node )
|
||||
{
|
||||
nodes.push( node );
|
||||
return true;
|
||||
};
|
||||
|
||||
while ( ( node = walker.next() ) )
|
||||
{ /*jsl:pass*/ }
|
||||
|
||||
assertNodesList( [ '<p>', 'This is ', '<b>', 'a ', '<i>', 'simple', '<i>', '<b>',' test' , '<p>' ], nodes );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test guard function is invoked on every move when iterating backward.
|
||||
*/
|
||||
test_guard_2 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
var nodes = [];
|
||||
|
||||
walker.guard = function( node )
|
||||
{
|
||||
nodes.push( node );
|
||||
return true;
|
||||
};
|
||||
|
||||
while ( ( node = walker.previous() ) )
|
||||
{ /*jsl:pass*/ }
|
||||
|
||||
assertNodesList( [ '<p>', ' test', '<b>', '<i>', 'simple', '<i>', 'a ', '<b>', 'This is ', '<p>' ], nodes );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test evaluator function is invoked on every step when iterating backward.
|
||||
*/
|
||||
test_evaluator_1 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
var nodes = [];
|
||||
|
||||
walker.evaluator = function( node )
|
||||
{
|
||||
nodes.push( node );
|
||||
return true;
|
||||
};
|
||||
|
||||
while ( ( node = walker.previous() ) )
|
||||
{ /*jsl:pass*/ }
|
||||
|
||||
assertNodesList( [ '<p>', ' test', '<b>', '<i>', 'simple', 'a ', 'This is ' ], nodes );
|
||||
},
|
||||
/**
|
||||
* Test walker stop at empty endContainer.
|
||||
*/
|
||||
test_stopGuard : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<span></span>afterEnd' );
|
||||
var endContainer = node.getFirst();
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
range.setEndAt( endContainer, CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
var nodes = [];
|
||||
|
||||
walker.evaluator = function( node )
|
||||
{
|
||||
nodes.push( node );
|
||||
return true;
|
||||
};
|
||||
|
||||
while ( ( node = walker.next() ) )
|
||||
{ /*jsl:pass*/ }
|
||||
|
||||
assertNodesList( [ '<span>' ], nodes );
|
||||
|
||||
},
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//window.onload = tc.test_stopGuard;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="playground"></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,53 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.window</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var loadCalled;
|
||||
|
||||
var testWindow = new CKEDITOR.dom.window( window );
|
||||
|
||||
var t;
|
||||
|
||||
testWindow.on( 'load', function()
|
||||
{
|
||||
t = document.createElement( 'textarea' );
|
||||
t.id = 'fred';
|
||||
|
||||
document.body.appendChild( t );
|
||||
|
||||
loadCalled = true;
|
||||
});
|
||||
|
||||
testWindow.on( 'beforeunload', function()
|
||||
{
|
||||
t.value = new Date();
|
||||
});
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_loadEvent : function()
|
||||
{
|
||||
assert.isTrue( loadCalled );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="test1"></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,123 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.editor</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
// Disable 'scayt' plugin due to it may alter editor config after initialized.
|
||||
CKEDITOR.config.removePlugins = 'scayt';
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_name : function()
|
||||
{
|
||||
assert.areSame( 'editor1', CKEDITOR.instances.editor1.name );
|
||||
},
|
||||
|
||||
test_element : function()
|
||||
{
|
||||
assert.areSame( document.getElementById( 'editor1' ), CKEDITOR.instances.editor1.element.$ );
|
||||
},
|
||||
|
||||
test_config : function()
|
||||
{
|
||||
// The instance default config must match the CKEDITOR.config.
|
||||
|
||||
var config = CKEDITOR.instances.editor1.config;
|
||||
|
||||
for ( var prop in CKEDITOR.config )
|
||||
assert.areSame( CKEDITOR.config[ prop ], config[ prop ], '"' + prop + '" doesn\'t match' );
|
||||
},
|
||||
|
||||
test_config_inpage : function()
|
||||
{
|
||||
var self = this;
|
||||
|
||||
CKEDITOR.replace( 'editor2',
|
||||
{
|
||||
// The custom setting to be checked.
|
||||
test1 : 'ball',
|
||||
baseHref : 'test',
|
||||
|
||||
on :
|
||||
{
|
||||
instanceReady : function()
|
||||
{
|
||||
self.resume( function()
|
||||
{
|
||||
var config = CKEDITOR.instances.editor2.config;
|
||||
|
||||
assert.areSame( 'ball', config.test1, '"test1" doesn\'t match' );
|
||||
assert.areSame( 'test', config.baseHref, '"baseHref" doesn\'t match' );
|
||||
|
||||
// All other settings must match CKEDITOR.config.
|
||||
for ( var prop in CKEDITOR.config )
|
||||
{
|
||||
if ( prop != 'test1' && prop != 'baseHref' )
|
||||
assert.areSame( CKEDITOR.config[ prop ], config[ prop ], '"' + prop + '" doesn\'t match' );
|
||||
}
|
||||
} );
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_config_customConfig : function()
|
||||
{
|
||||
var testCase = this;
|
||||
|
||||
CKEDITOR.on( 'instanceCreated', function( event )
|
||||
{
|
||||
if ( event.editor.name == 'editor3' )
|
||||
{
|
||||
event.editor.on( 'configLoaded', function()
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
var config = event.editor.config;
|
||||
|
||||
assert.areSame( 'Ok', config.test_custom1, '"test_custom1" doesn\'t match' );
|
||||
assert.areSame( 'Ok', config.test_custom2, '"test_custom1" doesn\'t match' );
|
||||
assert.areSame( 'ball', config.test1, '"test1" doesn\'t match' );
|
||||
assert.areSame( 'test', config.baseHref, '"baseHref" doesn\'t match' );
|
||||
|
||||
// All other settings must match CKEDITOR.config.
|
||||
for ( var prop in CKEDITOR.config )
|
||||
{
|
||||
if ( prop != 'customConfig' && prop != 'test_custom1' && prop != 'test_custom2' && prop != 'test1' && prop != 'baseHref' )
|
||||
assert.areSame( CKEDITOR.config[ prop ], config[ prop ], '"' + prop + '" doesn\'t match' );
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Pass in-page settings to the instance.
|
||||
CKEDITOR.replace( 'editor3', { customConfig : '_editor/custom_config_1.js', test1 : 'ball', baseHref : 'test' } );
|
||||
|
||||
this.wait();
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="editor1" class="ckeditor" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor2" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor3" cols="80" rows="10"></textarea>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,52 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.env</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_ie : function()
|
||||
{
|
||||
if ( window.ActiveXObject )
|
||||
{
|
||||
assert.isTrue( CKEDITOR.env.ie , 'ie should be true' );
|
||||
assert.isFalse( CKEDITOR.env.opera , 'opera should be false' );
|
||||
assert.isFalse( CKEDITOR.env.webkit , 'webkit should be false' );
|
||||
assert.isFalse( CKEDITOR.env.air , 'air should be false' );
|
||||
assert.isFalse( CKEDITOR.env.gecko , 'gecko should be false' );
|
||||
assert.isFalse( CKEDITOR.env.mac , 'ismac should be false' );
|
||||
}
|
||||
else
|
||||
assert.isFalse( CKEDITOR.env.ie );
|
||||
},
|
||||
|
||||
test_isCompatible : function()
|
||||
{
|
||||
assert.isTrue( CKEDITOR.env.isCompatible );
|
||||
},
|
||||
|
||||
|
||||
test_quirks : function()
|
||||
{
|
||||
assert.isFalse( CKEDITOR.env.quirks );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,487 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.event</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_inherit : function()
|
||||
{
|
||||
// Create a testClass that inherits from CKEDITOR.event.
|
||||
var testClass = function()
|
||||
{
|
||||
CKEDITOR.event.call( this );
|
||||
};
|
||||
testClass.prototype = CKEDITOR.event.prototype;
|
||||
|
||||
var calls = [];
|
||||
|
||||
var testInstance = new testClass();
|
||||
|
||||
testInstance.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testInstance, this, 'Scope 1 is not valid' );
|
||||
|
||||
assert.areSame( 'someEvent', ev.name, 'ev.name (1) is wrong' );
|
||||
assert.areSame( testInstance, ev.sender, 'ev.sender (1) is wrong' );
|
||||
assert.isUndefined( ev.editor, 'ev.editor (1) is wrong' );
|
||||
assert.isUndefined( ev.data, 'ev.data (1) is wrong' );
|
||||
assert.isUndefined( ev.listenerData, 'ev.listenerData (1) is wrong' );
|
||||
|
||||
calls.push( 'a' );
|
||||
} );
|
||||
|
||||
testInstance.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testInstance, this, 'Scope 2 is not valid' );
|
||||
|
||||
assert.areSame( 'someEvent', ev.name, 'ev.name (2) is wrong' );
|
||||
assert.areSame( testInstance, ev.sender, 'ev.sender (2) is wrong' );
|
||||
assert.isUndefined( ev.editor, 'ev.editor (2) is wrong' );
|
||||
assert.isUndefined( ev.data, 'ev.data (2) is wrong' );
|
||||
assert.isUndefined( ev.listenerData, 'ev.listenerData (2) is wrong' );
|
||||
|
||||
calls.push( 'b' );
|
||||
} );
|
||||
|
||||
assert.areSame( false, testInstance.fire( 'someEvent' ) );
|
||||
|
||||
assert.areSame( 2, calls.length, 'number of calls doesn\'t match' );
|
||||
assert.areSame( 'a,b', calls.toString() );
|
||||
},
|
||||
|
||||
test_implementOn : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = { someprop : 'Test' };
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
assert.areSame( 'Test', testObject.someprop );
|
||||
|
||||
var calls = [];
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testObject, this, 'Scope 1 is not valid' );
|
||||
|
||||
assert.areSame( 'someEvent', ev.name, 'ev.name (1) is wrong' );
|
||||
assert.areSame( testObject, ev.sender, 'ev.sender (1) is wrong' );
|
||||
assert.isUndefined( ev.editor, 'ev.editor (1) is wrong' );
|
||||
assert.isUndefined( ev.data, 'ev.data (1) is wrong' );
|
||||
assert.isUndefined( ev.listenerData, 'ev.listenerData (1) is wrong' );
|
||||
|
||||
calls.push( 'a' );
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testObject, this, 'Scope 2 is not valid' );
|
||||
|
||||
assert.areSame( 'someEvent', ev.name, 'ev.name (2) is wrong' );
|
||||
assert.areSame( testObject, ev.sender, 'ev.sender (2) is wrong' );
|
||||
assert.isUndefined( ev.editor, 'ev.editor (2) is wrong' );
|
||||
assert.isUndefined( ev.data, 'ev.data (2) is wrong' );
|
||||
assert.isUndefined( ev.listenerData, 'ev.listenerData (2) is wrong' );
|
||||
|
||||
calls.push( 'b' );
|
||||
} );
|
||||
|
||||
assert.areSame( false, testObject.fire( 'someEvent' ) );
|
||||
|
||||
assert.areSame( 2, calls.length, 'number of calls doesn\'t match' );
|
||||
assert.areSame( 'a,b', calls.toString() );
|
||||
},
|
||||
|
||||
test_eventNameCase : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
// Event Names are case sensitive.
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'someEvent', ev.name, 'ev.name (someEvent) is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'SomeEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'SomeEvent', ev.name, 'ev.name (SomeEvent) is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.fire( 'someEvent' );
|
||||
assert.areSame( 1, counter, '"someEvent" calls doesn\'t match' );
|
||||
|
||||
counter = 0;
|
||||
|
||||
testObject.fire( 'SomeEvent' );
|
||||
assert.areSame( 1, counter, '"SomeEvent" calls doesn\'t match' );
|
||||
},
|
||||
|
||||
test_scope : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
// Counter used just to check that the calls are effectively done.
|
||||
var counter = 0;
|
||||
|
||||
var testScope = {};
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testObject, this, 'scope (testObject) is wrong' );
|
||||
assert.areSame( testObject, ev.sender, 'sender (testObject) is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testScope, this, 'scope (testScope) is wrong' );
|
||||
assert.areSame( testObject, ev.sender, 'sender (testScope) is wrong' );
|
||||
counter++;
|
||||
}, testScope );
|
||||
|
||||
testObject.fire( 'someEvent' );
|
||||
|
||||
assert.areSame( 2, counter, 'wrong number of calls' );
|
||||
},
|
||||
|
||||
test_listenerData : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
// Counter used just to check that the calls are effectively done.
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test1', ev.listenerData, 'listenerData (1) is wrong' );
|
||||
counter++;
|
||||
}, null, 'Test1' );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test2', ev.listenerData, 'listenerData (2) is wrong' );
|
||||
counter++;
|
||||
}, null, 'Test2' );
|
||||
|
||||
testObject.fire( 'someEvent' );
|
||||
|
||||
assert.areSame( 2, counter, 'wrong number of calls' );
|
||||
},
|
||||
|
||||
test_data : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
// Counter used just to check that the calls are effectively done.
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test data', ev.data, 'data (1) is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test data', ev.data, 'data (2) is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.fire( 'someEvent', 'Test data' );
|
||||
|
||||
assert.areSame( 2, counter, 'wrong number of calls' );
|
||||
},
|
||||
|
||||
test_editor : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
// Counter used just to check that the calls are effectively done.
|
||||
var counter = 0;
|
||||
|
||||
var editor = {};
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( editor, ev.editor, 'editor is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.fire( 'someEvent', null, editor );
|
||||
|
||||
assert.areSame( 1, counter, 'wrong number of calls' );
|
||||
},
|
||||
|
||||
test_stop : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
ev.stop();
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
counter++;
|
||||
} );
|
||||
|
||||
assert.areSame( false, testObject.fire( 'someEvent' ), 'fire must return "false"' );
|
||||
assert.areSame( 1, counter, 'number of calls doesn\'t match' );
|
||||
},
|
||||
|
||||
test_cancel : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
ev.cancel();
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
counter++;
|
||||
} );
|
||||
|
||||
assert.areSame( true, testObject.fire( 'someEvent' ), 'fire must return "true"' );
|
||||
assert.areSame( 1, counter, 'number of calls doesn\'t match' );
|
||||
},
|
||||
|
||||
test_dataManipulation : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test1', ev.data );
|
||||
ev.data = 'Test2';
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test2', ev.data );
|
||||
ev.data = 'Test3';
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test3', ev.data );
|
||||
ev.data = 'Test4';
|
||||
counter++;
|
||||
} );
|
||||
|
||||
assert.areSame( 'Test4', testObject.fire( 'someEvent', 'Test1' ), 'fire must return "Test4"' );
|
||||
assert.areSame( 3, counter, 'number of calls doesn\'t match' );
|
||||
},
|
||||
|
||||
test_priority : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var calls = [];
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'e' );
|
||||
}, null, null, 11 );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'c' );
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'a' );
|
||||
}, null, null, 9 );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'f' );
|
||||
}, null, null, 11 );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'd' );
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'b' );
|
||||
}, null, null, 9 );
|
||||
|
||||
testObject.fire( 'someEvent', 'Test data' );
|
||||
assert.areSame( 'a,b,c,d,e,f', calls.toString() );
|
||||
},
|
||||
|
||||
test_removeListener : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var calls = [];
|
||||
|
||||
var listener = function( ev )
|
||||
{
|
||||
calls.push( 'a' );
|
||||
};
|
||||
|
||||
testObject.on( 'someEvent', listener );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'b' );
|
||||
} );
|
||||
|
||||
testObject.fire( 'someEvent', 'Test data' );
|
||||
assert.areSame( 'a,b', calls.toString() );
|
||||
|
||||
testObject.removeListener( 'someEvent', listener );
|
||||
|
||||
calls = [];
|
||||
|
||||
testObject.fire( 'someEvent', 'Test data' );
|
||||
assert.areSame( 'b', calls.toString() );
|
||||
},
|
||||
|
||||
test_fireOnce : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
counter++;
|
||||
} );
|
||||
|
||||
assert.areSame( false, testObject.fireOnce( 'someEvent' ), 'fireOnce must return "false"' );
|
||||
assert.areSame( 2, counter, 'number of calls doesn\'t match' );
|
||||
|
||||
counter = 0;
|
||||
|
||||
assert.areSame( false, testObject.fire( 'someEvent' ), 'fire must return "false"' );
|
||||
assert.areSame( 0, counter, 'number of calls doesn\'t match' );
|
||||
},
|
||||
|
||||
test_nestedCancel : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var isCanceledA,
|
||||
isCanceledB,
|
||||
isCanceledC;
|
||||
|
||||
testObject.on( 'A', function( ev )
|
||||
{
|
||||
isCanceledB = testObject.fire( 'B' );
|
||||
isCanceledC = testObject.fire( 'C' );
|
||||
});
|
||||
|
||||
testObject.on( 'B', function( ev )
|
||||
{
|
||||
ev.cancel();
|
||||
});
|
||||
|
||||
testObject.on( 'C', function( ev )
|
||||
{
|
||||
});
|
||||
|
||||
isCanceledA = testObject.fire( 'A' );
|
||||
|
||||
assert.areSame( false, isCanceledA, 'event A must not be canceled' );
|
||||
assert.areSame( true, isCanceledB, 'event B must be canceled' );
|
||||
assert.areSame( false, isCanceledC, 'event C must not be canceled' );
|
||||
},
|
||||
|
||||
test_event_removeListener : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
// Add two listeners for the same event "A".
|
||||
|
||||
testObject.on( 'A', function( ev )
|
||||
{
|
||||
counter++;
|
||||
ev.removeListener();
|
||||
});
|
||||
|
||||
testObject.on( 'A', function( ev )
|
||||
{
|
||||
counter++;
|
||||
});
|
||||
|
||||
// Fire the event twice.
|
||||
testObject.fire( 'A' );
|
||||
testObject.fire( 'A' );
|
||||
|
||||
assert.areSame( 3, counter );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,188 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.htmlParser.fragment</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var tc;
|
||||
|
||||
CKEDITOR.test.addTestCase( tc = (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
function testParser( input, expected )
|
||||
{
|
||||
var fragment = CKEDITOR.htmlParser.fragment.fromHtml( input, 'p' ),
|
||||
writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
|
||||
fragment.writeHtml( writer );
|
||||
|
||||
assert.areSame( expected, writer.getHtml( true ) );
|
||||
}
|
||||
|
||||
return {
|
||||
test_fromHtml_1 : function()
|
||||
{
|
||||
var fragment = CKEDITOR.htmlParser.fragment.fromHtml( '<p>Test</p>' );
|
||||
|
||||
assert.areSame( 1, fragment.children.length, 'Wrong size' );
|
||||
assert.areSame( CKEDITOR.NODE_ELEMENT, fragment.children[0].type, 'Wrong child type' );
|
||||
assert.areSame( 'p', fragment.children[0].name, 'Wrong child name' );
|
||||
},
|
||||
|
||||
test_parser_1 : function()
|
||||
{
|
||||
testParser( '<table><tr><td>1</td><p><b>2</b> Test</p><td>3</td></tr></table>',
|
||||
'<p><b>2</b> Test</p><table><tr><td>1</td><td>3</td></tr></table>' );
|
||||
},
|
||||
|
||||
test_parser_2 : function()
|
||||
{
|
||||
testParser( '<b><table><tr><td>1</td><td>2</td></tr></table></b>',
|
||||
'<table><tr><td><b>1</b></td><td><b>2</b></td></tr></table>' );
|
||||
},
|
||||
|
||||
test_parser_3_1 : function()
|
||||
{
|
||||
testParser( '<b><i>Table:<table><tr><td>1</td><td>2</td></tr></table></i></b>',
|
||||
'<p><b><i>Table:</i></b></p><table><tr><td><b><i>1</i></b></td><td><b><i>2</i></b></td></tr></table>' );
|
||||
},
|
||||
|
||||
test_parser_3_2 : function()
|
||||
{
|
||||
testParser( '<b><i><table><tr><td>1</td><td>2</td></tr></table>Table</i></b>',
|
||||
'<table><tr><td><b><i>1</i></b></td><td><b><i>2</i></b></td></tr></table><p><b><i>Table</i></b></p>' );
|
||||
},
|
||||
|
||||
test_parser_4 : function()
|
||||
{
|
||||
testParser( '<b><i>Test',
|
||||
'<p><b><i>Test</i></b></p>' );
|
||||
},
|
||||
|
||||
test_parser_5 : function()
|
||||
{
|
||||
testParser( '<p>Para 1<p>Para 2<p>Para 3',
|
||||
'<p>Para 1</p><p>Para 2</p><p>Para 3</p>' );
|
||||
},
|
||||
|
||||
test_parser_6 : function()
|
||||
{
|
||||
testParser( '<b>A</b><i>B</i>',
|
||||
'<p><b>A</b><i>B</i></p>' );
|
||||
},
|
||||
|
||||
test_parser_7 : function()
|
||||
{
|
||||
testParser( '<p>Para 1<hr>Para 2<h1>Para 3',
|
||||
'<p>Para 1</p><hr /><p>Para 2</p><h1>Para 3</h1>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test remove empty inline element.
|
||||
*/
|
||||
test_parser_8 : function()
|
||||
{
|
||||
testParser( '<p><b></b>text</p>',
|
||||
'<p>text</p>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test remove multiple empty inline elements.
|
||||
*/
|
||||
test_parser_8_2 : function()
|
||||
{
|
||||
testParser( '<p><b><i></b></i>text</p>',
|
||||
'<p>text</p>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test fixing malformed inline element closing.
|
||||
*/
|
||||
test_parser_9 : function()
|
||||
{
|
||||
testParser( '<p><b>bold<i>ita</b>lic</i></p>',
|
||||
'<p><b>bold<i>ita</i></b><i>lic</i></p>' );
|
||||
},
|
||||
|
||||
test_ticket_10 : function()
|
||||
{
|
||||
testParser( '<table><tbody><tr><td>A<b></b></td></tr></tbody></table>',
|
||||
'<table><tbody><tr><td>A</td></tr></tbody></table>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test fixing paragraph inside table row.
|
||||
*/
|
||||
test_ticket_3195 : function()
|
||||
{
|
||||
testParser( '<table><tr><td>1</td><p>2</p><td>3</td></tr></table>',
|
||||
'<p>2</p><table><tr><td>1</td><td>3</td></tr></table>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test fixing paragraph inside list.
|
||||
*/
|
||||
test_ticket_3195_2 : function()
|
||||
{
|
||||
testParser( '<ul><li>1</li><p>2</p><li>3</li></ul>',
|
||||
'<p>2</p><ul><li>1</li><li>3</li></ul>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test fixing 'div' inside paragraph.
|
||||
*/
|
||||
test_ticket_3195_3 : function()
|
||||
{
|
||||
testParser( '<p>1<div>2</div><span>3</span></p>',
|
||||
'<p>1</p><div>2</div><p><span>3</span></p>' );
|
||||
},
|
||||
|
||||
test_ticket_3441 : function()
|
||||
{
|
||||
testParser( '<p><b>Test</b></p><script type="test">var a = "<A Href=xxx>Testing</ A>";\nGo();<\/script>',
|
||||
'<p><b>Test</b></p><script type="test">var a = "<A Href=xxx>Testing</ A>";\nGo();<\/script>' );
|
||||
},
|
||||
|
||||
test_ticket_3585 : function()
|
||||
{
|
||||
testParser( '<p><br />\t\r\n</p>',
|
||||
'<p><br /></p>' );
|
||||
},
|
||||
|
||||
test_ticket_3585_1 : function()
|
||||
{
|
||||
testParser( '<p><br />text\t\r\n</p>',
|
||||
'<p><br />text</p>' );
|
||||
},
|
||||
|
||||
test_ticket_3585_2 : function()
|
||||
{
|
||||
testParser( '<b>inline </b>\n<p>paragraph\t\r\n</p>\t\r\n',
|
||||
'<p><b>inline </b></p><p>paragraph</p>' );
|
||||
},
|
||||
|
||||
test_ticket_3744 : function()
|
||||
{
|
||||
testParser( '<div><b><font><span>A</font></span></b></div><div>X</div>',
|
||||
'<div><b><font><span>A</span></font></b></div><div>X</div>' );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
// Uncomment the following to run a single test.
|
||||
// window.onload = tc.test_ticket_3585_2;
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,91 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.htmlParser</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.plugins.load( 'htmlwriter' );
|
||||
var tc;
|
||||
CKEDITOR.test.addTestCase( tc = ( function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = YAHOO.util.Assert;
|
||||
|
||||
/**
|
||||
* Wrapper of the combination of htmlParser with htmlWriter, for convenience of
|
||||
* testing, formatting of writer has been disabled.
|
||||
*/
|
||||
function htmlParse( htmlString , writerConfig)
|
||||
{
|
||||
var writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
writer.reset();
|
||||
var fragment = CKEDITOR.htmlParser.fragment.fromHtml( htmlString );
|
||||
fragment.writeHtml( writer );
|
||||
return writer.getHtml();
|
||||
}
|
||||
|
||||
/**
|
||||
* IE always returning CRLF for line-feed, so remove it when retrieving
|
||||
* pre-formated text from text area.
|
||||
*/
|
||||
function getTextAreaValue( id )
|
||||
{
|
||||
return CKEDITOR.document.getById( id ).getValue().replace( /\r/gi, '' );
|
||||
}
|
||||
|
||||
return {
|
||||
/**
|
||||
* Test <pre> tag formatting.
|
||||
*/
|
||||
test_fromHtml_3715 : function()
|
||||
{
|
||||
assert.areSame( getTextAreaValue( 'htmlResult1' ),
|
||||
htmlParse( getTextAreaValue( 'htmlOriginal1' ) ),
|
||||
'<pre> parsing result doesn\'t match.' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test compress empty spaces within text.
|
||||
*/
|
||||
test_fromHtml_3715_2 : function()
|
||||
{
|
||||
assert.areSame( getTextAreaValue( 'htmlResult2' ),
|
||||
htmlParse( getTextAreaValue( 'htmlOriginal2' ) ),
|
||||
'Spaces compressing result doesn\'t match.' );
|
||||
},
|
||||
name :document.title
|
||||
};
|
||||
} )() );
|
||||
|
||||
//window.onload = tc.test_fromHtml_3715;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<textarea id="htmlOriginal1"><pre>
|
||||
text<b>
|
||||
inside<br /><br /></b>
|
||||
|
||||
pre
|
||||
</pre></textarea>
|
||||
<textarea id="htmlResult1"><pre>
|
||||
text<b>
|
||||
inside
|
||||
|
||||
</b>
|
||||
|
||||
pre
|
||||
</pre></textarea>
|
||||
|
||||
<textarea id="htmlOriginal2"><p>
|
||||
para graph
|
||||
</p><b>compress spaces</b></textarea>
|
||||
|
||||
<textarea id="htmlResult2"><p>para graph</p><b>compress spaces</b></textarea>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,45 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.plugins</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
|
||||
/**
|
||||
* Test loading self defined external plugin file paths.
|
||||
*/
|
||||
test_addExternal : function()
|
||||
{
|
||||
var path = '_tests/';
|
||||
CKEDITOR.plugins.addExternal( 'myplugin',
|
||||
path + 'core/plugins/myplugins/sample/', 'my_plugin.js' );
|
||||
|
||||
CKEDITOR.plugins.load( 'myplugin', function(){
|
||||
this.resume( function(){
|
||||
|
||||
assert.isTrue( CKEDITOR.plugins.get( 'myplugin' ).definition );
|
||||
} );
|
||||
}, this );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,3 +0,0 @@
|
||||
CKEDITOR.plugins.add( 'myplugin' , {
|
||||
definition : true
|
||||
} );
|
||||
@@ -1,52 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.scriptLoader</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_loadCode : function()
|
||||
{
|
||||
CKEDITOR.scriptLoader.loadCode( 'var test="Testing!";' );
|
||||
|
||||
/*jsl:ignore*/
|
||||
assert.areEqual( 'Testing!', test );
|
||||
/*jsl:end*/
|
||||
},
|
||||
|
||||
test_load : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
/*jsl:ignore*/
|
||||
assert.areSame( 'Test!', testVar );
|
||||
/*jsl:end*/
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.scriptLoader.load( '../_assets/sample.js', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,170 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.tools</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var testcase;
|
||||
CKEDITOR.test.addTestCase( testcase = (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_extend : function()
|
||||
{
|
||||
var fakeFn = function() {};
|
||||
var fakeObj = { fake1 : 1, fake2 : 2 };
|
||||
var fakeArray = [ 'Test', 10, fakeFn, fakeObj ];
|
||||
|
||||
var target =
|
||||
{
|
||||
prop1 : 'Test',
|
||||
prop2 : 10,
|
||||
prop3 : fakeFn,
|
||||
prop4 : fakeObj,
|
||||
prop5 : fakeArray
|
||||
};
|
||||
|
||||
CKEDITOR.tools.extend( target,
|
||||
{
|
||||
prop3 : 'Wrong',
|
||||
prop6 : 'Good',
|
||||
prop7 : fakeArray
|
||||
} );
|
||||
|
||||
assert.areSame( 'Test' , target.prop1, 'prop1 doesn\'t match' );
|
||||
assert.areSame( 10 , target.prop2, 'prop2 doesn\'t match' );
|
||||
assert.areSame( fakeFn , target.prop3, 'prop3 doesn\'t match' );
|
||||
assert.areSame( fakeObj , target.prop4, 'prop4 doesn\'t match' );
|
||||
assert.areSame( fakeArray , target.prop5, 'prop5 doesn\'t match' );
|
||||
assert.areSame( 'Good' , target.prop6, 'prop6 doesn\'t match' );
|
||||
assert.areSame( fakeArray , target.prop7, 'prop7 doesn\'t match' );
|
||||
},
|
||||
|
||||
test_isArray1 : function()
|
||||
{
|
||||
assert.isTrue( CKEDITOR.tools.isArray( [] ) );
|
||||
},
|
||||
|
||||
test_isArray2 : function()
|
||||
{
|
||||
assert.isFalse( CKEDITOR.tools.isArray( { length:1 } ) );
|
||||
},
|
||||
|
||||
test_isArray3 : function()
|
||||
{
|
||||
assert.isFalse( CKEDITOR.tools.isArray( null ) );
|
||||
},
|
||||
|
||||
test_isArray4 : function()
|
||||
{
|
||||
assert.isFalse( CKEDITOR.tools.isArray( window.x ) );
|
||||
},
|
||||
|
||||
test_htmlEncode1 : function()
|
||||
{
|
||||
assert.areSame( '<b>Test</b>', CKEDITOR.tools.htmlEncode( '<b>Test</b>' ) );
|
||||
},
|
||||
|
||||
test_htmlEncode2 : function()
|
||||
{
|
||||
assert.areSame( 'Test\'s & "quote"', CKEDITOR.tools.htmlEncode( 'Test\'s & "quote"' ) );
|
||||
},
|
||||
|
||||
test_htmlEncode_3874 : function()
|
||||
{
|
||||
assert.areSame( 'line1\nline2', CKEDITOR.tools.htmlEncode( 'line1\nline2' ) );
|
||||
},
|
||||
|
||||
test_cssStyleToDomStyle1 : function()
|
||||
{
|
||||
assert.areSame( 'backgroundColor', CKEDITOR.tools.cssStyleToDomStyle( 'background-color' ) );
|
||||
},
|
||||
|
||||
test_cssStyleToDomStyle2 : function()
|
||||
{
|
||||
assert.areSame( 'cssFloat', CKEDITOR.tools.cssStyleToDomStyle( 'float' ) );
|
||||
},
|
||||
|
||||
test_getNextNumber : function()
|
||||
{
|
||||
var number = CKEDITOR.tools.getNextNumber();
|
||||
assert.areSame( number + 1, CKEDITOR.tools.getNextNumber() );
|
||||
assert.areSame( number + 2, CKEDITOR.tools.getNextNumber() );
|
||||
assert.areSame( number + 3, CKEDITOR.tools.getNextNumber() );
|
||||
},
|
||||
|
||||
test_trim1 : function()
|
||||
{
|
||||
assert.areSame( 'test', CKEDITOR.tools.trim( ' test ' ) );
|
||||
},
|
||||
|
||||
test_trim2 : function()
|
||||
{
|
||||
assert.areSame( 'test', CKEDITOR.tools.trim( ' \n \t test\n \t ' ) );
|
||||
},
|
||||
|
||||
test_ltrim1 : function()
|
||||
{
|
||||
assert.areSame( 'test ', CKEDITOR.tools.ltrim( ' test ' ) );
|
||||
},
|
||||
|
||||
test_ltrim2 : function()
|
||||
{
|
||||
assert.areSame( 'test\n \t ', CKEDITOR.tools.ltrim( ' \n \t test\n \t ' ) );
|
||||
},
|
||||
|
||||
test_rtrim1 : function()
|
||||
{
|
||||
assert.areSame( ' test', CKEDITOR.tools.rtrim( ' test ' ) );
|
||||
},
|
||||
|
||||
test_rtrim2 : function()
|
||||
{
|
||||
assert.areSame( ' \n \t test', CKEDITOR.tools.rtrim( ' \n \t test\n \t ' ) );
|
||||
},
|
||||
|
||||
test_clone : function()
|
||||
{
|
||||
var obj =
|
||||
{
|
||||
name : 'John',
|
||||
cars :
|
||||
{
|
||||
Mercedes : { color : 'blue' },
|
||||
Porsche : { color : 'red' }
|
||||
}
|
||||
};
|
||||
|
||||
var clone = CKEDITOR.tools.clone( obj );
|
||||
|
||||
clone.name = 'Paul';
|
||||
clone.cars.Porsche.color = 'silver';
|
||||
|
||||
assert.areSame( 'John', obj.name );
|
||||
assert.areSame( 'Paul', clone.name );
|
||||
|
||||
assert.areSame( 'red', obj.cars.Porsche.color );
|
||||
assert.areSame( 'silver', clone.cars.Porsche.color );
|
||||
},
|
||||
|
||||
test_repeat : function()
|
||||
{
|
||||
assert.areSame( ' ', CKEDITOR.tools.repeat( ' ', 3 ) );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
//window.onload = testcase.test_htmlEncode_3874;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<iframe></iframe>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,150 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.xml</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../_source/core/loader.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.loader.load( 'core/xml' );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_baseXml : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data />' );
|
||||
assert.isObject( xml.baseXml );
|
||||
},
|
||||
|
||||
test_selectSingleNode1a : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item /></data>' );
|
||||
var node = xml.selectSingleNode( 'data/item' );
|
||||
assert.areEqual( 'item', node.nodeName );
|
||||
},
|
||||
|
||||
test_selectSingleNode1b : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item /></data>' );
|
||||
var node = xml.selectSingleNode( 'item' );
|
||||
assert.isNull( node );
|
||||
},
|
||||
|
||||
test_selectSingleNode2a : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item><subitem/></item></data>' );
|
||||
var contextNode = xml.selectSingleNode( 'data' );
|
||||
var node = xml.selectSingleNode( 'item/subitem', contextNode );
|
||||
assert.areEqual( 'subitem', node.nodeName );
|
||||
},
|
||||
|
||||
test_selectSingleNode2b : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item><subitem/></item></data>' );
|
||||
var contextNode = xml.selectSingleNode( 'data' );
|
||||
var node = xml.selectSingleNode( 'subitem', contextNode );
|
||||
assert.isNull( node );
|
||||
},
|
||||
|
||||
test_selectSingleNode3 : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/></data>' );
|
||||
var node = xml.selectSingleNode( '//item[@id="x2"]' );
|
||||
assert.areEqual( 'item', node.nodeName );
|
||||
assert.areEqual( 'x2', node.getAttribute( 'id' ) );
|
||||
},
|
||||
|
||||
test_selectSingleNode4 : function()
|
||||
{
|
||||
// For may results, the first one must be returned.
|
||||
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/></data>' );
|
||||
var node = xml.selectSingleNode( '//item' );
|
||||
assert.areEqual( 'item', node.nodeName );
|
||||
assert.areEqual( 'x1', node.getAttribute( 'id' ) );
|
||||
},
|
||||
|
||||
test_selectNodes1 : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item /></data>' );
|
||||
var nodes = xml.selectNodes( 'data/item' );
|
||||
assert.areEqual( 1, nodes.length );
|
||||
assert.areEqual( 'item', nodes[0].nodeName );
|
||||
},
|
||||
|
||||
test_selectNodes2a : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/><item id="x3"/></data>' );
|
||||
var nodes = xml.selectNodes( '//item' );
|
||||
assert.areEqual( 3, nodes.length );
|
||||
assert.areEqual( 'x1', nodes[0].getAttribute( 'id' ) );
|
||||
assert.areEqual( 'x2', nodes[1].getAttribute( 'id' ) );
|
||||
assert.areEqual( 'x3', nodes[2].getAttribute( 'id' ) );
|
||||
},
|
||||
|
||||
test_selectNodes2b : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/><item id="x3"/></data>' );
|
||||
var nodes = xml.selectNodes( '//itemX' );
|
||||
assert.areEqual( 0, nodes.length );
|
||||
},
|
||||
|
||||
test_selectNodes3a : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/><item id="x3"/></data>' );
|
||||
var contextNode = xml.selectSingleNode( 'data' );
|
||||
var nodes = xml.selectNodes( 'item', contextNode );
|
||||
assert.areEqual( 3, nodes.length );
|
||||
assert.areEqual( 'x1', nodes[0].getAttribute( 'id' ) );
|
||||
assert.areEqual( 'x2', nodes[1].getAttribute( 'id' ) );
|
||||
assert.areEqual( 'x3', nodes[2].getAttribute( 'id' ) );
|
||||
},
|
||||
|
||||
test_selectNodes3b : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/><item id="x3"/></data>' );
|
||||
var contextNode = xml.selectSingleNode( 'data' );
|
||||
var nodes = xml.selectNodes( 'itemX', contextNode );
|
||||
assert.areEqual( 0, nodes.length );
|
||||
},
|
||||
|
||||
test_getInnerXml1 : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item/></data>' );
|
||||
assert.areEqual( '<item/>', xml.getInnerXml( 'data' ) );
|
||||
},
|
||||
|
||||
test_getInnerXml2 : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"><subitem name="sub1"/></item></data>' );
|
||||
assert.areEqual( '<subitem name="sub1"/>', xml.getInnerXml( '//item' ) );
|
||||
},
|
||||
|
||||
test_getInnerXml3 : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/></data>' );
|
||||
assert.isNull( xml.getInnerXml( '//itemX' ) );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,236 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Plugin: domiterator</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
CKEDITOR.plugins.load( [ 'htmldataprocessor', 'htmlwriter', 'domiterator'] );
|
||||
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
/**
|
||||
* IE always returning CRLF for linefeed, so remove it when retrieve pre-formated text from text area.
|
||||
* @param {Object} id
|
||||
*/
|
||||
function getTextAreaValue( id )
|
||||
{
|
||||
return CKEDITOR.document.getById( id ).getValue().replace(/\r/gi,'');
|
||||
}
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
|
||||
// Local references.
|
||||
var assert = CKEDITOR.test.assert,
|
||||
arrayAssert = YAHOO.util.ArrayAssert;
|
||||
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
|
||||
// In these tests, we may "reset" the writer rules to avoid it formatting
|
||||
// the output, making the assertion easier to the done. We don't need to
|
||||
// test formatting features here, so this is ok.
|
||||
var getDataProcessor = function()
|
||||
{
|
||||
var dataProcessor = new CKEDITOR.htmlDataProcessor();
|
||||
dataProcessor.writer._.rules = [];
|
||||
return dataProcessor;
|
||||
};
|
||||
|
||||
/**
|
||||
* IE always returning CRLF for line-feed, so remove it when retrieving
|
||||
* pre-formated text from text area.
|
||||
*/
|
||||
function getTextAreaValue( id )
|
||||
{
|
||||
return CKEDITOR.document.getById( id ).getValue().replace( /\r/gi, '' );
|
||||
}
|
||||
|
||||
function assumeElementContentAreSame( container, textareaId )
|
||||
{
|
||||
if( typeof container == 'string' )
|
||||
container = doc.getById( container );
|
||||
//Assume result document content
|
||||
var html = getDataProcessor().toDataFormat( container.getHtml() );
|
||||
assert.areSame( getTextAreaValue( textareaId ) , html );
|
||||
}
|
||||
|
||||
function assumeElementAreSame( element, textareaId )
|
||||
{
|
||||
if( typeof element == 'string' )
|
||||
element = doc.getById( element );
|
||||
//Assume result document content
|
||||
var html = getDataProcessor().toDataFormat( element.getOuterHtml() );
|
||||
assert.areSame( getTextAreaValue( textareaId ) , html );
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {String|CKEDITOR.dom.range} containerId|range Either the id of html container which contents are treated as range, or a exisiting range object.
|
||||
* @param {Object} iteratorOption
|
||||
* @param {Array} expectedTagList block elements tagName list in iteration orders.
|
||||
*/
|
||||
function assumeIterationSameAs( containerIdOrRange, iteratorOption, expectedTagList )
|
||||
{
|
||||
var range;
|
||||
if( typeof containerIdOrRange == 'string' )
|
||||
{
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( doc.getById( containerIdOrRange ) );
|
||||
}
|
||||
else
|
||||
range = containerIdOrRange;
|
||||
|
||||
var iter = range.createIterator();
|
||||
CKEDITOR.tools.extend( iter, iteratorOption, true );
|
||||
var blockList = [], block;
|
||||
while (( block = iter.getNextParagraph() ) )
|
||||
{
|
||||
blockList.push( block.getName() );
|
||||
}
|
||||
arrayAssert.itemsAreEqual( expectedTagList, blockList );
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
/**
|
||||
* Test iterating over table cells.
|
||||
*/
|
||||
test_iterator_table_cells : function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( 'iterTarget2a' ), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEndAt( doc.getById( 'iterTarget2b' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
assumeIterationSameAs( range, null, [ 'th', 'p', 'td' ]);
|
||||
assumeElementContentAreSame( 'iterContainer2', 'iterResult2' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test iterating over list items.
|
||||
*/
|
||||
test_iterator_listItems : function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( 'iterTarget3a' ), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEndAt( doc.getById( 'iterTarget3b' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
assumeIterationSameAs( range, null, [ 'li', 'p', 'li' ,'p', 'li' ]);
|
||||
assumeElementContentAreSame( 'iterContainer3', 'iterResult3' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test iterating over pseudo block.
|
||||
*/
|
||||
test_iterator_pseudoBlock : function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( 'iterTarget4a' ), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEndAt( doc.getById( 'iterTarget4b' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
assumeIterationSameAs( range, null, [ 'p', 'p' ] );
|
||||
assumeElementContentAreSame( 'iterContainer4', 'iterResult4' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test collapsed range before paraghraph end.
|
||||
*/
|
||||
test_iterator_collapsed_before_paragraph : function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( 'iterTarget7' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
assumeIterationSameAs( range, null, [ 'p' ]);
|
||||
assumeElementContentAreSame( 'iterContainer7', 'iterResult7' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test range collapsed inside paraghraph.
|
||||
*/
|
||||
test_iterator_collapsed_inside_paragraph : function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( 'para8' ).getFirst(), 3 );
|
||||
assumeIterationSameAs( range, null, [ 'p' ]);
|
||||
assumeElementContentAreSame( 'iterContainer8', 'iterResult8' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test fix paragraph-less content.
|
||||
*/
|
||||
test_iterator_establish_paragraph: function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range(doc);
|
||||
range.setStartAt(doc.getById('iterTarget9'), CKEDITOR.POSITION_AFTER_START);
|
||||
range.setEndAt(doc.getById('iterTarget9'), CKEDITOR.POSITION_BEFORE_END);
|
||||
assumeIterationSameAs(range, null, ['p']);
|
||||
assumeElementContentAreSame( 'iterContainer9', 'iterResult9');
|
||||
},
|
||||
|
||||
/**
|
||||
* Test iterating over more than one paragraphs. (#3352)
|
||||
*/
|
||||
test_iterator_multiple_paragraphs: function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt(doc.getById( 'iterTarget10a' ), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEndAt(doc.getById( 'iterTarget10b' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
assumeIterationSameAs( range, null, [ 'p', 'p' ] );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div id="iterContainer2"><table summary="summary">
|
||||
<caption>caption</caption>
|
||||
<tr>
|
||||
<th id="iterTarget2a">
|
||||
head1</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><p>cell1</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="iterTarget2b">cell2</td>
|
||||
</tr>
|
||||
</table></div>
|
||||
<textarea id="iterResult2"><table summary="summary"><caption>caption</caption><tbody><tr><th id="iterTarget2a">head1</th></tr><tr><td><p>cell1</p></td></tr><tr><td id="iterTarget2b">cell2</td></tr></tbody></table></textarea>
|
||||
|
||||
<div id="iterContainer3"><ul>
|
||||
<li id="iterTarget3a">item1</li>
|
||||
<li><p>item2</p></li>
|
||||
<li>
|
||||
<ul><li>item3</li></ul>
|
||||
<ul><li><p>item5</p></li></ul>
|
||||
</li>
|
||||
<li id="iterTarget3b">item5</li>
|
||||
</ul></div>
|
||||
<textarea id="iterResult3"><ul><li id="iterTarget3a">item1</li><li><p>item2</p></li><li><ul><li>item3</li></ul><ul><li><p>item5</p></li></ul></li><li id="iterTarget3b">item5</li></ul></textarea>
|
||||
|
||||
<div id="iterContainer4">
|
||||
<div id="iterTarget4b"><p id="iterTarget4a">paragraph</p>text</div>
|
||||
</div>
|
||||
<textarea id="iterResult4"><div id="iterTarget4b"><p id="iterTarget4a">paragraph</p><p>text</p></div></textarea>
|
||||
|
||||
<div id="iterContainer7"><p id="iterTarget7">paragraph</p></div>
|
||||
<textarea id="iterResult7"><p id="iterTarget7">paragraph</p></textarea>
|
||||
|
||||
<div id="iterContainer8"><p id="para8">paragraph</p></div>
|
||||
<textarea id="iterResult8"><p id="para8">paragraph</p></textarea>
|
||||
|
||||
<form id="iterContainer9"><span id="iterTarget9">non-paragraph</span></form>
|
||||
<textarea id="iterResult9"><p><span id="iterTarget9">non-paragraph</span></p></textarea>
|
||||
|
||||
<div id="iterContainer10"><p id="iterTarget10a">para1</p><p id="iterTarget10b">para2</p></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,386 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Plugin: htmldataprocessor</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
// Load the required plugins and launch the runner.
|
||||
CKEDITOR.test.deferRunner = true;
|
||||
CKEDITOR.plugins.load( 'htmldataprocessor' , function()
|
||||
{
|
||||
CKEDITOR.test.runner.run();
|
||||
} );
|
||||
|
||||
var testCase;
|
||||
|
||||
CKEDITOR.test.addTestCase( testCase = (function()
|
||||
{
|
||||
// Local references.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
|
||||
// In these tests, we may "reset" the writer rules to avoid it formatting
|
||||
// the output, making the assertion easier to the done. We don't need to
|
||||
// test formatting features here, so this is ok.
|
||||
var getDataProcessor = function()
|
||||
{
|
||||
var dataProcessor = new CKEDITOR.htmlDataProcessor();
|
||||
dataProcessor.writer._.rules = [];
|
||||
return dataProcessor;
|
||||
};
|
||||
|
||||
/**
|
||||
* IE always returning CRLF for linefeed, so remove it when retrieve pre-formated text from text area.
|
||||
* @param {Object} id
|
||||
*/
|
||||
function getTextAreaValue( id )
|
||||
{
|
||||
return CKEDITOR.document.getById( id ).getValue().replace(/\r/gi,'');
|
||||
}
|
||||
|
||||
// These tests go far beyond the strict htmlDataProcessor code testing. We
|
||||
// are actually testing the entire parsing system here. The combination of
|
||||
// htmlParser and htmlWriter inside htmlDataProcessor is useful in this
|
||||
// sense.
|
||||
|
||||
return {
|
||||
test_toDataFormat_1a : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><p>Test</p></div>' );
|
||||
|
||||
assert.areSame( '<p>Test</p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_1b : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><x:x>Test</x:x></div>' );
|
||||
|
||||
// IE adds the XML namespace tag.
|
||||
if ( CKEDITOR.env.ie )
|
||||
assert.areSame( '<?xml:namespace prefix="x" /><x:x>Test</x:x>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
else
|
||||
assert.areSame( '<x:x>Test</x:x>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_2a : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><br /><p>Test</p></div>' );
|
||||
|
||||
assert.areSame( '<br /><p>Test</p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_2b : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><x:x></x:x><p>Test</p></div>' );
|
||||
|
||||
// IE adds the XML namespace tag.
|
||||
if ( CKEDITOR.env.ie )
|
||||
assert.areSame( '<?xml:namespace prefix="x" /><x:x></x:x><p>Test</p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
else
|
||||
assert.areSame( '<x:x></x:x><p>Test</p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_3 : function()
|
||||
{
|
||||
assert.areSame( '<div><x:x><p>Test</p></x:x></div>', getDataProcessor().toDataFormat( '<div><x:x><p>Test</p></div>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2774 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><P class=MsoNormal><B><I><SPAN lang=EN-US><o:p>Test</o:p></SPAN></I></B></P></div>' );
|
||||
|
||||
// IE adds the XML namespace tag.
|
||||
if ( CKEDITOR.env.ie )
|
||||
assert.areSame( '<p class="MsoNormal"><b><i><span lang="EN-US"><?xml:namespace prefix="o" /><o:p>Test</o:p></span></i></b></p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
else
|
||||
assert.areSame( '<p class="MsoNormal"><b><i><span lang="EN-US"><o:p>Test</o:p></span></i></b></p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_3036_1 : function()
|
||||
{
|
||||
assert.areSame( '<input autocomplete="off" checked="checked" type="checkbox" />',
|
||||
getDataProcessor().toDataFormat( '<INPUT type="checkbox" CHECKED autocomplete=off>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_3036_2 : function()
|
||||
{
|
||||
assert.areSame( '<input autocomplete="off" type="checkbox" unknown="" />',
|
||||
getDataProcessor().toDataFormat( '<INPUT type="checkbox" UNKNOWN autocomplete=off>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_1 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1;
|
||||
var test = this;
|
||||
var isReady = !!editor.dataProcessor;
|
||||
|
||||
if ( !isReady )
|
||||
{
|
||||
editor.on( 'instanceReady', function()
|
||||
{
|
||||
isReady = true;
|
||||
} );
|
||||
}
|
||||
|
||||
this.wait( function()
|
||||
{
|
||||
if ( !isReady )
|
||||
{
|
||||
test.wait( arguments.callee, 100 );
|
||||
return;
|
||||
}
|
||||
|
||||
assert.areSame( '<p>\n\t </p>\n',
|
||||
editor.dataProcessor.toDataFormat( '<p></p>' ) );
|
||||
}, 100 );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_2 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var source = '<p>Some text<br><br><br></p>';
|
||||
if ( CKEDITOR.env.ie )
|
||||
source = '<p>Some text<br><br></p>';
|
||||
assert.areSame( '<p>\n\tSome text<br />\n\t<br />\n\t </p>\n',
|
||||
dataProcessor.toDataFormat( source ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_3 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
assert.areSame( '<p>\n\tSome text<br />\n\t<br />\n\t<br />\n\tSome more text</p>\n',
|
||||
dataProcessor.toDataFormat( '<p>Some text<br><br><br>Some more text</p>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_4 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
assert.areSame( '<p>\n\tSome text<br />\n\t<br />\n\t </p>\n',
|
||||
dataProcessor.toDataFormat( '<p>Some text<br><br> </p>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_5 : function()
|
||||
{
|
||||
if ( CKEDITOR.env.ie )
|
||||
return;
|
||||
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
assert.areSame( '<p>\n\t </p>\n',
|
||||
dataProcessor.toDataFormat( '<p><br></p>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_6 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var source = '<p><br><br></p>';
|
||||
if ( CKEDITOR.env.ie )
|
||||
source = '<p><br></p>';
|
||||
|
||||
assert.areSame( '<p>\n\t<br />\n\t </p>\n',
|
||||
dataProcessor.toDataFormat( source ) );
|
||||
},
|
||||
|
||||
test_toHtml_ticket_2886_1 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var expected = '<p><br /></p>';
|
||||
if ( CKEDITOR.env.ie )
|
||||
expected = '<p>\xa0</p>';
|
||||
assert.areSame( expected, dataProcessor.toHtml( '<p></p>' ) );
|
||||
},
|
||||
|
||||
test_toHtml_ticket_2886_2 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var expected = '<p>Some text<br />Some other text</p>';
|
||||
assert.areSame( expected, dataProcessor.toHtml( '<p>Some text<br>Some other text</p>' ) );
|
||||
},
|
||||
|
||||
test_toHtml_ticket_2886_3 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var expected = '<p>Some text<br /><br /></p>';
|
||||
if ( CKEDITOR.env.ie )
|
||||
expected = '<p>Some text<br />\xa0</p>';
|
||||
assert.areSame( expected, dataProcessor.toHtml( '<p>Some text<br> </p>' ) );
|
||||
},
|
||||
|
||||
test_toHtml_ticket_2886_4 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var expected = '<p>Some text</p>';
|
||||
assert.areSame( expected, dataProcessor.toHtml( '<p>Some text<br></p>' ));
|
||||
},
|
||||
|
||||
test_ticket_3407 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor,
|
||||
config = editor.config;
|
||||
|
||||
config.protectedSource.push( /<\?[\s\S]*?\?>/g ); // PHP Code
|
||||
config.protectedSource.push( /<%[\s\S]*?%>/g ); // ASP Code
|
||||
config.protectedSource.push( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ); // ASP.Net Code
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
var html = getTextAreaValue( '_TEXTAREA1' );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
assert.areSame( html , dataProcessor.toDataFormat( protectedHtml ) );
|
||||
},
|
||||
|
||||
test_ticket_3591 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor;
|
||||
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
var html = getTextAreaValue( '_TEXTAREA_3591' );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
|
||||
assert.areSame( getTextAreaValue( CKEDITOR.env.ie ? '_TEXTAREA_3591_protected_ie' : '_TEXTAREA_3591_protected' ),
|
||||
protectedHtml );
|
||||
assert.areSame( getTextAreaValue( '_TEXTAREA_3591' ),
|
||||
dataProcessor.toDataFormat( protectedHtml ) );
|
||||
},
|
||||
|
||||
test_ticket_3591_2 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor;
|
||||
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
dataProcessor.writer.sortAttributes = true;
|
||||
|
||||
var html = getTextAreaValue( '_TEXTAREA_3591_2' );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
|
||||
assert.areSame( getTextAreaValue( '_TEXTAREA_3591_2' ),
|
||||
dataProcessor.toDataFormat( protectedHtml ) );
|
||||
},
|
||||
|
||||
test_ticket_3869_1 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor;
|
||||
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
var html = getTextAreaValue( '_TEXTAREA_3869_1' );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
|
||||
assert.areSame( html , dataProcessor.toDataFormat( protectedHtml ) );
|
||||
},
|
||||
|
||||
test_ticket_3869_2 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor,
|
||||
config = editor.config;
|
||||
|
||||
config.protectedSource.push( /<\?[\s\S]*?\?>/g ); // PHP Code
|
||||
config.protectedSource.push( /<%[\s\S]*?%>/g ); // ASP Code
|
||||
config.protectedSource.push( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ); // ASP.Net Code
|
||||
config.protectedSource.push(/<gallery[\s\S]*?<\/gallery>/gi ); // custom protected source
|
||||
config.protectedSource.push(/<options[\s\S]*?<\/options>/gi );
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
var html = getTextAreaValue( '_TEXTAREA_3869_2' );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
|
||||
assert.areSame( html , dataProcessor.toDataFormat( protectedHtml ) );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test empty value attributes.
|
||||
*/
|
||||
test_ticket_3884 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor;
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
dataProcessor.writer.sortAttributes = true;
|
||||
|
||||
assert.areSame( '<p><a href="" name="">emptylink</a></p>',
|
||||
dataProcessor.toDataFormat( dataProcessor.toHtml( '<p><a href="" name="">emptylink</a></p>' ) ) );
|
||||
},
|
||||
|
||||
test_innerHtmlComments_ticket_3801 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor;
|
||||
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
|
||||
for ( var i = 1; i <= 7; i++ )
|
||||
{
|
||||
var html = getTextAreaValue( '_TEXTAREA_3801_' + i );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
|
||||
assert.areSame( getTextAreaValue( '_TEXTAREA_3801_' + i ),
|
||||
dataProcessor.toDataFormat( protectedHtml ) );
|
||||
}
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//window.onload = testCase.test_ticket_3884;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="editor1" class="ckeditor" cols="80" rows="10"></textarea>
|
||||
<textarea id="_TEXTAREA1"><script type="text/javascript">alert('>');</script><table><tbody><tr><!--- IE doesn't handle this comment ---><!--[if gte IE 6 ]>
|
||||
<![if lt IE 8 ]>
|
||||
gIE conditional comments
|
||||
<![endif]>
|
||||
<![endif]--><td><%Response.Write(now())%></td><td><asp:control_name id="some_id" runat="server"/></td><td><?php
|
||||
include ("head.html"); ?></td></tr></tbody></table><noscript>Your browser doesn't support JavaScript</noscript></textarea>
|
||||
<textarea id="_TEXTAREA_3591"><object><param /><param /><embed></embed></object></textarea>
|
||||
<textarea id="_TEXTAREA_3591_protected"><cke:object><cke:param></cke:param><cke:param></cke:param><cke:embed></cke:embed></cke:object></textarea>
|
||||
<textarea id="_TEXTAREA_3591_protected_ie"><?xml:namespace prefix="cke" /><cke:object><cke:param></cke:param><cke:param></cke:param><cke:embed></cke:embed></cke:object></textarea>
|
||||
<textarea id="_TEXTAREA_3801_1"><!-- foo --><p>bar</p></textarea>
|
||||
<textarea id="_TEXTAREA_3801_2"><p><!-- foo -->bar</p></textarea>
|
||||
<textarea id="_TEXTAREA_3801_3"><!-- foo --><p><!-- foo -->bar</p></textarea>
|
||||
<textarea id="_TEXTAREA_3801_4"><p>bar</p><!-- foo --></textarea>
|
||||
<textarea id="_TEXTAREA_3801_5">bar<!-- foo --></textarea>
|
||||
<textarea id="_TEXTAREA_3801_6"><!-- foo -->bar</textarea>
|
||||
<textarea id="_TEXTAREA_3801_7"><p><!-- foo -->bar</p><p><!-- foo -->bar</p></textarea>
|
||||
<textarea id="_TEXTAREA_3869_1">#3869<script language="Javascript" type="text/javascript">
|
||||
<!--
|
||||
alert('-->');
|
||||
//-->
|
||||
</script></textarea>
|
||||
<textarea id="_TEXTAREA_3869_2">#3869<gallery>
|
||||
file.jpg
|
||||
<options name="test1" value="value1"></options>
|
||||
<options name="test2" value="value2"></options>
|
||||
</gallery><?
|
||||
echo '<script type="text/javascript">';
|
||||
echo '<!--alert("-->");//-->';
|
||||
echo '</script>';
|
||||
?><!--<%Response.Write(now())%>//-->invalid<?
|
||||
echo 'bbb<script>
|
||||
<!--
|
||||
ccc();<!-- </script><!-- </script>
|
||||
//--></script>
|
||||
<script><!--
|
||||
<!--
|
||||
ffff();
|
||||
//--></script>
|
||||
ddd';
|
||||
?>html</textarea>
|
||||
<textarea id="_TEXTAREA_3591_2"><object classid="clsid"><param name="movie" value="movie.swf" /><embed src="movie.swf" type="application/x-shockwave-flash"></embed></object></textarea>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,217 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Plugin: list</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
/**
|
||||
* Load the editor and wait for fully interactable.
|
||||
* @param {Object} elementId
|
||||
* @parma {Object} mode
|
||||
* @param {Object} config
|
||||
* @param {Object} callback Continuation with {@param editor}.
|
||||
* @param {Object} context
|
||||
*/
|
||||
function prepareEditor( elementId, mode, config, callback, context )
|
||||
{
|
||||
CKEDITOR.on( 'instanceReady',
|
||||
function( evt )
|
||||
{
|
||||
var isMe = mode == CKEDITOR.ELEMENT_MODE_REPLACE ?
|
||||
evt.editor.name == elementId
|
||||
: evt.editor.element.$ ==
|
||||
document.getElementById( elementId );
|
||||
if ( isMe )
|
||||
{
|
||||
var editor = evt.editor;
|
||||
// Force result data unformatted.
|
||||
editor.dataProcessor.writer._.rules = {};
|
||||
callback.call( context, editor );
|
||||
}
|
||||
}, this );
|
||||
|
||||
mode = mode || CKEDITOR.ELEMENT_MODE_REPLACE;
|
||||
switch( mode )
|
||||
{
|
||||
case CKEDITOR.ELEMENT_MODE_REPLACE :
|
||||
CKEDITOR.replace( elementId, config );
|
||||
break;
|
||||
case CKEDITOR.ELEMENT_MODE_APPENDTO :
|
||||
CKEDITOR.appendTo( elementId, config );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* IE always returning CRLF for line-feed, so remove it when retrieving
|
||||
* pre-formated text from text area.
|
||||
*/
|
||||
function getTextAreaValue( id )
|
||||
{
|
||||
return CKEDITOR.document.getById( id ).getValue().replace( /\r/gi, '' );
|
||||
}
|
||||
|
||||
CKEDITOR.test.addTestCase( ( function()
|
||||
{
|
||||
|
||||
// Local references.
|
||||
var assert = CKEDITOR.test.assert,
|
||||
doc = CKEDITOR.document,
|
||||
action = YAHOO.util.UserAction,
|
||||
selector = YAHOO.util.Selector;
|
||||
|
||||
/**
|
||||
* Set the range with the start/end position specified by the locator, which in form of bookmark2.
|
||||
* @param {Object} range
|
||||
* @param {Array} startPosition range start path including offset
|
||||
* @param {Array|Boolean} endPositoin range end path including offset or is collapsed
|
||||
*/
|
||||
function setRange( range, startPosition, endPositoin )
|
||||
{
|
||||
var bm = {
|
||||
end : null,
|
||||
start : null,
|
||||
is2: true,
|
||||
startOffset : 0,
|
||||
endoffset : 0
|
||||
};
|
||||
bm.start = startPosition.slice( 0, startPosition.length - 1 );
|
||||
bm.startOffset = startPosition[ startPosition.length -1];
|
||||
if( endPositoin === true )
|
||||
{
|
||||
bm.end = bm.start.slice();
|
||||
bm.endOffset = bm.startOffset;
|
||||
}
|
||||
else
|
||||
{
|
||||
bm.end = endPositoin.slice( 0, endPositoin.length - 1 );
|
||||
bm.endOffset = endPositoin[ endPositoin.length -1 ];
|
||||
}
|
||||
range.moveToBookmark( bm );
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
/**
|
||||
* Test remove numbered list with 'enterMode = BR'.
|
||||
*/
|
||||
test_ticket_3151 : function()
|
||||
{
|
||||
prepareEditor( 'test_ticket_3151_editor', null,
|
||||
{ enterMode : CKEDITOR.ENTER_BR },
|
||||
function( editor )
|
||||
{
|
||||
this.resume( function()
|
||||
{
|
||||
editor.focus();
|
||||
|
||||
var doc = editor.document,
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
|
||||
setRange( range, [ 1, 0, 0, 0, 0 ], true );
|
||||
var sel = editor.getSelection();
|
||||
sel.selectRanges( [ range ] );
|
||||
|
||||
// Waiting for 'comand state' effected.
|
||||
this.wait( function(){
|
||||
// Remove list.
|
||||
editor.execCommand( 'numberedlist' );
|
||||
assert.areSame( getTextAreaValue( 'test_ticket_3151_result' ),
|
||||
editor.getData(),
|
||||
'Remove list result not correct.' );
|
||||
}, 1000 );
|
||||
|
||||
} );
|
||||
}, this );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
/**
|
||||
* Test merge newlist with previous list.
|
||||
*/
|
||||
test_ticket_3820 : function()
|
||||
{
|
||||
prepareEditor( 'test_ticket_3820_editor', null,
|
||||
{ enterMode : CKEDITOR.ENTER_BR },
|
||||
function( editor )
|
||||
{
|
||||
this.resume( function()
|
||||
{
|
||||
editor.focus();
|
||||
|
||||
var doc = editor.document,
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
setRange( range, [ 1, 1, 0 ], true );
|
||||
var sel = editor.getSelection();
|
||||
sel.selectRanges( [ range ] );
|
||||
|
||||
// Waiting for 'comand state' effected.
|
||||
this.wait( function(){
|
||||
// Remove list.
|
||||
editor.execCommand( 'bulletedlist' );
|
||||
assert.areSame( getTextAreaValue( 'test_ticket_3820_result' ),
|
||||
editor.getData(),
|
||||
'Merge list result not correct.' );
|
||||
}, 1000 );
|
||||
|
||||
} );
|
||||
}, this );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
/**
|
||||
* Test remove list first list item not merging with previous text node.
|
||||
*/
|
||||
test_ticket_3836 : function()
|
||||
{
|
||||
prepareEditor( 'test_ticket_3836_editor', null,
|
||||
{ enterMode : CKEDITOR.ENTER_BR },
|
||||
function( editor )
|
||||
{
|
||||
this.resume( function()
|
||||
{
|
||||
this.wait( function ()
|
||||
{
|
||||
editor.focus();
|
||||
|
||||
var doc = editor.document,
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
setRange( range, [ 1, 1, 0, 0 ], [ 1, 1, 1, 1 ] );
|
||||
var sel = editor.getSelection();
|
||||
sel.selectRanges( [ range ] );
|
||||
|
||||
// Waiting for 'comand state' effected.
|
||||
this.wait( function(){
|
||||
// Remove list.
|
||||
editor.execCommand( 'bulletedlist' );
|
||||
assert.areSame( getTextAreaValue( 'test_ticket_3836_result' ),
|
||||
editor.getData(),
|
||||
'Remove list result not correct.' );
|
||||
}, 1000 );
|
||||
}, 1000 );
|
||||
|
||||
} );
|
||||
}, this );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
name :document.title
|
||||
};
|
||||
} )() );
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="test_ticket_3151_editor"><ol><li>text</li></ol></textarea>
|
||||
<textarea id="test_ticket_3151_result">text</textarea>
|
||||
<textarea id="test_ticket_3820_editor"><ul><li>bullet line 1</li><li>bullet line 2</li></ul><p>Second line</p></textarea>
|
||||
<textarea id="test_ticket_3820_result"><ul><li>bullet line 1</li><li>bullet line 2</li><li>Second line</li></ul></textarea>
|
||||
<textarea id="test_ticket_3773_editor"><ol><li>line1</li><li>line2</li></ol></textarea>
|
||||
<textarea id="test_ticket_3773_result">line1<br />line2</textarea>
|
||||
<textarea id="test_ticket_3836_editor">line1<ul><li>item1</li><li>item2</li></ul>line2</textarea>
|
||||
<textarea id="test_ticket_3836_result">line1<br />item1<br />item2<br />line2</textarea>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,49 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Plugin: selection</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
CKEDITOR.plugins.load( [ 'selection' ] );
|
||||
//]]>
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
var assert = CKEDITOR.test.assert;
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
|
||||
return {
|
||||
test_selection_ie : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie )
|
||||
return;
|
||||
|
||||
var $range = document.body.createTextRange();
|
||||
$range.findText( 'This' );
|
||||
$range.select();
|
||||
|
||||
var range = doc.getSelection().getRanges()[ 0 ];
|
||||
range.select();
|
||||
|
||||
var $range2 = document.selection.createRange();
|
||||
assert.areSame( 0, $range.compareEndPoints( 'StartToStart', $range2 ), 'StartToStart' );
|
||||
assert.areSame( 0, $range.compareEndPoints( 'EndToEnd', $range2 ), 'EndToEnd' );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})());
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">CKEditor</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,596 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Plugin: styles</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
CKEDITOR.plugins.load( [ 'styles', 'domiterator', 'htmldataprocessor' ] );
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var testCase;
|
||||
|
||||
CKEDITOR.test.addTestCase( testCase = (function()
|
||||
{
|
||||
// Local references.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
var getInnerHtml = CKEDITOR.test.getInnerHtml;
|
||||
|
||||
function getInnerHtmlParsed( element )
|
||||
{
|
||||
var dataProcessor = new CKEDITOR.htmlDataProcessor();
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
return dataProcessor.toDataFormat( getInnerHtml( element, false ) );
|
||||
}
|
||||
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
|
||||
return {
|
||||
test_inline1 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this is some sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ).getFirst(), 5 );
|
||||
range.setEnd( doc.getById( '_P1' ).getFirst(), 7 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <b>is</b> some sample text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline2 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ).getChild( 1 ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 2 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <i><b>is some </b></i>sample text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline3 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ).getChild( 1 ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 2 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <b><i>is</i> some </b>sample text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
// Inline - Remove inner duplicates.
|
||||
test_inline4 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 3 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this is some sample text</b>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
// Inline - Merge with next.
|
||||
test_inline5 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 1 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this is some </b>sample text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
// Inline - Merge with previous.
|
||||
test_inline6 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 2 );
|
||||
range.setEnd( doc.getById( '_P1' ).getChild( 2 ), 6 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <b>is some sample</b> text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
// Inline - Merge several with next.
|
||||
test_inline7 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( '<i><u>this </u></i><b><i><u>is</u> some</i> sample</b> text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 1 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b><i><u>this is</u> some</i> sample</b> text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
// Inline - Merge several with previous.
|
||||
test_inline8 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is <i>some <u>sample</u></i></b><i><u> text</u></i>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 2 );
|
||||
range.setEnd( doc.getById( '_P1' ), 3 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <b>is <i>some <u>sample text</u></i></b>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline9 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <i>is some </i>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ).getChild( 1 ), 0 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this </b><i>is some </i>sample text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline10 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this is some sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 1 );
|
||||
|
||||
var style = new CKEDITOR.style(
|
||||
{
|
||||
element : 'b',
|
||||
attributes :
|
||||
{
|
||||
lang : 'it',
|
||||
title : 'test'
|
||||
},
|
||||
styles :
|
||||
{
|
||||
'font-size' : '10pt',
|
||||
'text-decoration' : 'line-through'
|
||||
}
|
||||
} );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b lang="it" style="font-size:10pt;text-decoration:line-through;" title="test">this is some sample text</b>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline11 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b lang="it" class="sample">is</b> <b lang="it" style="font-size: 10pt; text-decoration: line-through;" title="test">some sample</b> <b>t</b>ext' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 7 );
|
||||
|
||||
var style = new CKEDITOR.style(
|
||||
{
|
||||
element : 'b',
|
||||
attributes :
|
||||
{
|
||||
lang : 'it',
|
||||
title : 'test'
|
||||
},
|
||||
styles :
|
||||
{
|
||||
'font-size' : '10pt',
|
||||
'text-decoration' : 'line-through'
|
||||
}
|
||||
} );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b lang="it" style="font-size: 10pt; text-decoration: line-through;" title="test">this <b class="sample">is</b> some sample text</b>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline11 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <span class="a">is</span> some <span class="b">sample</span> text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 5 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', attributes : { 'class' : 'b' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<span class="b">this <span class="a">is</span> some sample text</span>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline12 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <span style="font-size:12pt; font-weight:600">is</span> some <span style="font-size:10px;">sample</span> text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 5 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', styles : { 'font-size' : '1.5em' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<span style="font-size:1.5em;">this <span style="font-weight:600;">is</span> some sample text</span>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline13 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some sample</b> text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 3 );
|
||||
range.setEnd( doc.getById( '_P1' ), 3 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <b>is <i>some sample</i></b><i> text</i>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline14 : function()
|
||||
{
|
||||
var para = doc.getById( '_P1' );
|
||||
|
||||
para.setHtml( 'this is some sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( para.getFirst(), 0 );
|
||||
range.setEnd( para.getFirst(), 7 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this is</b> some sample text', getInnerHtml( '_P1' ), 'First range' );
|
||||
|
||||
para.setHtml( para.getHtml() );
|
||||
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( para.getFirst().getFirst(), 5 );
|
||||
range.setEnd( para.getChild( 1 ), 5 );
|
||||
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this is some</b> sample text', getInnerHtml( '_P1' ), 'Second range' );
|
||||
},
|
||||
|
||||
test_inline15 : function()
|
||||
{
|
||||
var para = doc.getById( '_P1' );
|
||||
|
||||
para.setHtml( 'this is some sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( para.getFirst(), 0 );
|
||||
range.setEnd( para.getFirst(), 7 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', styles : { 'font-family' : '#(family)' } }, { family : 'Arial,Helvetica,sans-serif' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<span style="font-family:arial,helvetica,sans-serif;">this is</span> some sample text', getInnerHtml( '_P1' ), 'First range' );
|
||||
|
||||
para.setHtml( para.getHtml() );
|
||||
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( para.getFirst().getFirst(), 5 );
|
||||
range.setEnd( para.getChild( 1 ), 5 );
|
||||
|
||||
style = new CKEDITOR.style( { element : 'span', styles : { 'font-family' : '#(family)' } }, { family : 'Georgia,serif' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<span style="font-family:arial,helvetica,sans-serif;">this <span style="font-family:georgia,serif;">is</span></span><span style="font-family:georgia,serif;"> some</span> sample text', getInnerHtml( '_P1' ), 'Second range' );
|
||||
},
|
||||
|
||||
test_inline16 : function()
|
||||
{
|
||||
var para = doc.getById( '_P1' );
|
||||
|
||||
para.setHtml( '<b lang="pt" style="font-size:11pt;color:red;">this is some sample text</b>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( para.getFirst().getFirst(), 4 );
|
||||
range.setEnd( para.getFirst(), 10 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b', styles : { color : 'red', 'font-weight' : '700' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b lang="pt" style="color:red;font-size:11pt;">this<b style="font-weight:700;"> is some sample text</b></b>', getInnerHtml( '_P1' ), 'First range' );
|
||||
},
|
||||
|
||||
test_inline_nobreak1 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this is <a href="http://example.com/">some sample</a> text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 4 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this is </b><a href="http://example.com/"><b>some</b> sample</a> text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_ticket_2040 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'This is some <strong>sample text<\/strong>. You are using <a href="http://www.fckeditor.net/">ckeditor<\/a>.' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 1 );
|
||||
range.setEnd( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 6 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this is some <strong><i>sample</i> text<\/strong>. you are using <a href="http://www.fckeditor.net/">ckeditor<\/a>.', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable1 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
|
||||
assert.isTrue( style.checkElementRemovable( element ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable2 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i' } );
|
||||
|
||||
assert.isFalse( style.checkElementRemovable( element ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable3 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b', attributes : { lang : 'pt' } } );
|
||||
|
||||
assert.isTrue( style.checkElementRemovable( element ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable4 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b', attributes : { lang : 'pt' } } );
|
||||
|
||||
assert.isFalse( style.checkElementRemovable( element, true ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable5 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="color : #fff">Test</span>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'pt' }, style : { color : '#ffffff' } } );
|
||||
|
||||
assert.isTrue( style.checkElementRemovable( element, true ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable6 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="color : #fff">Test</span>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'pt' }, style : { color : '#fffff0' } } );
|
||||
|
||||
assert.isTrue( style.checkElementRemovable( element, true ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable7 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="color : #fff">Test</span>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'fr' }, style : { color : '#ffffff' } } );
|
||||
|
||||
assert.isFalse( style.checkElementRemovable( element, true ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable8 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="font-size: 10px">Test</span>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'pt' , style : 'font-size:10px;' } } );
|
||||
|
||||
assert.isTrue( style.checkElementRemovable( element, true ) );
|
||||
},
|
||||
|
||||
test_ticket_3091 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( 'outter<table><tr><td>text</td></tr></table>outter' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( element );
|
||||
|
||||
var styleDef =
|
||||
{
|
||||
element : 'span',
|
||||
styles : { 'font-family' : '#(family)' },
|
||||
overrides : [ { element : 'font', attributes : { 'face' : null } } ]
|
||||
};
|
||||
|
||||
var style = new CKEDITOR.style( styleDef, { 'family' : 'Arial,Helvetica,sans-serif' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
style = new CKEDITOR.style( styleDef, { 'family' : 'Comic Sans MS,cursive' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
style = new CKEDITOR.style( styleDef, { 'family' : 'Courier New,Courier,monospace' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<span style="font-family:couriernew,courier,monospace;">outter</span><table><tbody><tr><td><span style="font-family:couriernew,courier,monospace;">text</span></td></tr></tbody></table><span style="font-family:couriernew,courier,monospace;">outter</span>', getInnerHtml( element ) );
|
||||
},
|
||||
|
||||
test_ticket_3091_2 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( 'outter<p>text</p>outter' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( element );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i', attributes : { title : 'x' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<i title="x">outter</i><p><i title="x">text</i></p><i title="x">outter</i>', getInnerHtml( element ), 'First step failed' );
|
||||
|
||||
style = new CKEDITOR.style( { element : 'i', attributes : { title : 'y' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<i title="y">outter</i><p><i title="y">text</i></p><i title="y">outter</i>', getInnerHtml( element ), 'Second step failed' );
|
||||
|
||||
style = new CKEDITOR.style( { element : 'i', attributes : { title : 'z' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<i title="z">outter</i><p><i title="z">text</i></p><i title="z">outter</i>', getInnerHtml( element ), 'Third step failed' );
|
||||
},
|
||||
|
||||
// TC based on the state of the second step in the above test, before it got fixed.
|
||||
test_ticket_3091_3 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( '<p><i title="y">text</i><i title="x"></i></p><i title="y">outter</i><i title="x"></i>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( element );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i', attributes : { title : 'z' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<p><i title="z">text</i></p><i title="z">outter</i>', getInnerHtml( element ) );
|
||||
},
|
||||
|
||||
// Remove inline style when range collapsed at element boundaries,
|
||||
// move out of the removing-style element, with inner style copied.
|
||||
test_ticket_3309 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( 'this is some <b><i id="_i1">styles</i></b> text' );
|
||||
|
||||
// This is some <b><i>styles^</i></b> text
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( '_i1' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.removeFromRange( range );
|
||||
|
||||
assert.areSame( 'this is some <b><i id="_i1">styles</i></b><i></i> text', getInnerHtml( element ) );
|
||||
},
|
||||
|
||||
// No inner style preserved, simply move out of the removing-style element.
|
||||
test_ticket_3309_2 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( 'this is some <b id="_b1">styles</b> text' );
|
||||
|
||||
// This is some <b>styles^</b> text
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( '_b1' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.removeFromRange( range );
|
||||
// This is some <b>styles</b>^ text
|
||||
assert.areSame( doc.getById( '_b1' ).getParent().$, range.startContainer.$ );
|
||||
assert.areSame( 2, range.startOffset );
|
||||
assert.areSame( 'this is some <b id="_b1">styles</b> text', getInnerHtml( element ) );
|
||||
},
|
||||
|
||||
// With style overrides.
|
||||
test_ticket_3309_3 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( 'text <strong><bold><span><b><i id="_i1">styles</i></b></span></bold></strong>' );
|
||||
|
||||
// text <strong><bold><span><b><i id="_i1">^styles</i></b></span></bold></strong>
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( '_i1' ), CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' , overrides : [ 'strong', 'bold' ] } );
|
||||
style.removeFromRange( range );
|
||||
|
||||
// text <span><i>^</i></span><bold><span><b><i>styles</i></b></span></bold>
|
||||
assert.areSame( 'text <span><i></i></span><strong><bold><span><b><i id="_i1">styles</i></b></span></bold></strong>', getInnerHtml( element ) );
|
||||
},
|
||||
|
||||
// Test convert multiple paragraphs to one <pre>.
|
||||
test_ticket_3188 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( '<p id="_P2">\nparagraph1<br /><br />para\t\ngraph2</p><p id="_P3">\nparagraph3\n</p>' );
|
||||
|
||||
// <p id="_P2">[paragraph1</p><p id="_P3">paragraph2]</p>
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( '_P2' ), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEndAt( doc.getById( '_P3' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'pre' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
var result = getInnerHtmlParsed( element );
|
||||
assert.areSame( '<pre>paragraph1\n\npara graph2\n\nparagraph3</pre>', result );
|
||||
},
|
||||
|
||||
// Test convert one <pre> to multiple paragraphs.
|
||||
test_ticket_3188_2 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( '<pre>\n\tparagraph1\t\tparagraph1\nparagraph2\n\t\n\tpara graph3\n</pre>' );
|
||||
|
||||
//<pre>[\n\tparagraph1\t\tparagraph1\nparagraph2\n\t\n\tpara graph3\n]</pre>
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( doc.getById( '_P1' ).getFirst() );
|
||||
var style = new CKEDITOR.style( { element : 'p' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
var result = getInnerHtmlParsed( element );
|
||||
|
||||
if ( CKEDITOR.env.webkit || CKEDITOR.env.opera )
|
||||
result = result.replace( /\xa0/g, ' ' );
|
||||
|
||||
assert.areSame( '<p> paragraph1 paragraph1<br />paragraph2</p><p> para graph3</p>',
|
||||
result );
|
||||
},
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
//window.onload = testCase.test_ticket_3188;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="_P1"></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,81 +0,0 @@
|
||||
/*
|
||||
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
body
|
||||
{
|
||||
margin:10px;
|
||||
}
|
||||
|
||||
#testLogger
|
||||
{
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
left: 10px;
|
||||
top: 10px;
|
||||
font-family: Monospace;
|
||||
border: solid 2px black;
|
||||
background: #ffffff;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
/* IE6 */
|
||||
* html #testLogger
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#testLogger.testAll
|
||||
{
|
||||
position: static;
|
||||
}
|
||||
|
||||
#testLogger pre
|
||||
{
|
||||
margin: 0 0 0 40px;
|
||||
background-color: #f0f0f0;
|
||||
padding: 1px 4px 1px 4px;
|
||||
}
|
||||
|
||||
#testLogger div
|
||||
{
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
#testLogger div div
|
||||
{
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.testEntry
|
||||
{
|
||||
padding: 5px;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.testEntry:hover
|
||||
{
|
||||
background-color: #ffff99;
|
||||
}
|
||||
|
||||
.testFail, .testPass, .testIgnore
|
||||
{
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
.testFail
|
||||
{
|
||||
background-color: #ff0000;
|
||||
}
|
||||
|
||||
.testPass
|
||||
{
|
||||
background-color: #00ff00;
|
||||
}
|
||||
|
||||
.testIgnore
|
||||
{
|
||||
background-color: #f1f100;
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
/*
|
||||
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
/*jsl:import yuitest.js*/
|
||||
|
||||
// Inject the YUI Test files into the page.
|
||||
// URLs copied from http://developer.yahoo.com/yui/yuitest/
|
||||
document.write(
|
||||
'<script type="text/javascript" src="' +
|
||||
CKEDITOR.basePath +
|
||||
'_tests/yuitest.js"></script>' );
|
||||
|
||||
document.write(
|
||||
'<script type="text/javascript" src="' +
|
||||
CKEDITOR.basePath +
|
||||
'_source/' +
|
||||
'core/test.js"></script>' );
|
||||
|
||||
(function()
|
||||
{
|
||||
var createLogger = function()
|
||||
{
|
||||
document.body.appendChild( document.createElement( 'div' ) ).id = 'testLogger';
|
||||
};
|
||||
|
||||
var outputResult = function( text )
|
||||
{
|
||||
var div = document.getElementById('testLogger').appendChild( document.createElement( 'div' ) );
|
||||
div.className = 'testEntry';
|
||||
div.innerHTML = text;
|
||||
};
|
||||
|
||||
var htmlEncode = function( data )
|
||||
{
|
||||
if ( typeof data != 'string' )
|
||||
return data;
|
||||
|
||||
return data.replace(
|
||||
/&/g, '&' ).replace(
|
||||
/</g, '<' ).replace(
|
||||
/>/g, '>' );
|
||||
};
|
||||
|
||||
window.onload = function()
|
||||
{
|
||||
createLogger();
|
||||
var runner = YAHOO.tool.TestRunner;
|
||||
|
||||
var handleTestResult = function( data )
|
||||
{
|
||||
switch( data.type )
|
||||
{
|
||||
case runner.TEST_FAIL_EVENT:
|
||||
|
||||
var expected = data.error.expected;
|
||||
if ( expected && expected.nodeType )
|
||||
expected += ' (' + ( expected.nodeType == 1 ? expected.nodeName : expected.nodeValue ) + ')';
|
||||
|
||||
var actual = data.error.actual;
|
||||
if ( actual && actual.nodeType )
|
||||
actual += ' (' + ( actual.nodeType == 1 ? actual.nodeName : actual.nodeValue ) + ')';
|
||||
|
||||
outputResult(
|
||||
'<span class="testFail">FAIL</span> Test named "' + data.testName +
|
||||
'" failed with message: "' + htmlEncode( data.error.message ) +
|
||||
'".<div>Expected:</div><pre>' + htmlEncode( expected ) +
|
||||
'<br></pre><div>Actual:</div><pre>' + htmlEncode( actual ) + '<br></pre>' );
|
||||
break;
|
||||
case runner.TEST_PASS_EVENT:
|
||||
outputResult( '<span class="testPass">PASS</span> Test named "' + data.testName + '" passed.' );
|
||||
break;
|
||||
case runner.TEST_IGNORE_EVENT:
|
||||
outputResult( '<span class="testIgnore">IGNORE</span> Test named "' + data.testName + '" was ignored.' );
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
runner.subscribe(runner.TEST_FAIL_EVENT, handleTestResult);
|
||||
runner.subscribe(runner.TEST_IGNORE_EVENT, handleTestResult);
|
||||
runner.subscribe(runner.TEST_PASS_EVENT, handleTestResult);
|
||||
|
||||
if ( window.parent && window.parent.onTestStart )
|
||||
{
|
||||
runner.subscribe(runner.TEST_CASE_BEGIN_EVENT, window.parent.onTestStart);
|
||||
runner.subscribe(runner.TEST_CASE_COMPLETE_EVENT, window.parent.onTestComplete);
|
||||
}
|
||||
|
||||
if ( !CKEDITOR.test.deferRunner )
|
||||
runner.run();
|
||||
};
|
||||
})();
|
||||
@@ -1,114 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEditor Core Tests Runner</title>
|
||||
<link rel="stylesheet" type="text/css" href="test.css" />
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var testList =
|
||||
[
|
||||
'core/ajax',
|
||||
'core/bootstrap',
|
||||
'core/ckeditor',
|
||||
'core/editor',
|
||||
'core/env',
|
||||
'core/event',
|
||||
'core/plugins',
|
||||
'core/scriptloader',
|
||||
'core/tools',
|
||||
'core/xml',
|
||||
'core/dom/document',
|
||||
'core/dom/documentfragment',
|
||||
'core/dom/element',
|
||||
'core/dom/node',
|
||||
'core/dom/range',
|
||||
'core/dom/text',
|
||||
'core/dom/walker',
|
||||
'core/dom/window',
|
||||
'core/htmlparser/fragment',
|
||||
'core/htmlparser/htmlparser',
|
||||
'plugins/domiterator/domiterator',
|
||||
'plugins/htmldataprocessor/htmldataprocessor',
|
||||
'plugins/link/link',
|
||||
'plugins/list/list',
|
||||
'plugins/styles/styles',
|
||||
'plugins/selection/selection'
|
||||
];
|
||||
|
||||
var currentTest;
|
||||
var currentTime;
|
||||
var totalTime;
|
||||
var totalFailed = 0;
|
||||
var totalPassed = 0;
|
||||
|
||||
function runTest()
|
||||
{
|
||||
currentTest = testList.shift();
|
||||
|
||||
if ( currentTest )
|
||||
document.getElementById( 'testFrame' ).src = currentTest + '.html';
|
||||
}
|
||||
|
||||
function onTestStart( data )
|
||||
{
|
||||
var div = document.getElementById('testLogger').appendChild( document.createElement( 'div' ) );
|
||||
div.className = 'testEntry';
|
||||
div.innerHTML = 'Testing "<a href="' + currentTest + '.html" target="_blank">' + data.testCase.name + '</a>"...';
|
||||
|
||||
currentTime = new Date();
|
||||
|
||||
if ( !totalTime )
|
||||
totalTime = currentTime;
|
||||
}
|
||||
|
||||
function onTestComplete( data )
|
||||
{
|
||||
var finishTime = new Date();
|
||||
|
||||
var failed = data.results.failed;
|
||||
var passed = data.results.passed;
|
||||
|
||||
var html = '<span class="testIgnore">Unknown</span>';
|
||||
|
||||
if ( failed > 0 )
|
||||
html = '<span class="testFail">FAIL</span>';
|
||||
else
|
||||
html = '<span class="testPass">PASS</span>';
|
||||
|
||||
html += ' Test "<a href="' + currentTest + '.html" target="_blank">' + data.testCase.name + '</a>" (' + failed + ' failed / ' + passed + ' passed) - ' + ( finishTime - currentTime ) + 'ms';
|
||||
|
||||
var div = document.getElementById('testLogger').lastChild;
|
||||
div.innerHTML = html;
|
||||
|
||||
totalFailed += failed;
|
||||
totalPassed += passed;
|
||||
|
||||
document.getElementById('testFailed').innerHTML = totalFailed;
|
||||
document.getElementById('testPassed').innerHTML = totalPassed;
|
||||
document.getElementById('totalTime').innerHTML = finishTime - totalTime;
|
||||
|
||||
document.title = totalFailed + ' failed / ' + totalPassed + ' passed - CKEditor Core Tests Runner';
|
||||
|
||||
runTest();
|
||||
}
|
||||
|
||||
window.onload = function()
|
||||
{
|
||||
// IE was "caching" the latest logged div on refresh. So, we must clean it
|
||||
// on startup.
|
||||
document.getElementById('testLogger').innerHTML = '';
|
||||
|
||||
runTest();
|
||||
};
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>CKEditor Core Tests Runner (<span id="testFailed">0</span> failed / <span id="testPassed">0</span> passed) - <span id="totalTime">0</span>ms</h1>
|
||||
<iframe id="testFrame" src="javascript:;" style="position: absolute; width: 50px; height: 50px; left: -1000px">
|
||||
</iframe>
|
||||
<div id="testLogger" class="testAll"></div>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user