mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-07-07 09:25:09 +00:00
Imported CKEDITOR 3.0
Monotone-Parent: 5f9c08dd6b5b34d815ddb2108abbf4055e846934 Monotone-Revision: b2cf7eda0ef8f15fb6e78f8c38a7406a47bcdd2f Monotone-Author: crobert@inverse.ca Monotone-Date: 2009-08-26T14:03:12 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -7,8 +7,17 @@
|
||||
<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()
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
@@ -125,6 +134,11 @@ CKEDITOR.test.addTestCase( (function()
|
||||
assert.areSame( editor, CKEDITOR.instances.test_add );
|
||||
},
|
||||
|
||||
setUp : function()
|
||||
{
|
||||
removeAllInstances();
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
@@ -1,54 +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 2</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 before_loadFullCore = CKEDITOR.status;
|
||||
|
||||
CKEDITOR.loadFullCore();
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_status1 : function()
|
||||
{
|
||||
assert.areSame( 'basic_loaded', before_loadFullCore );
|
||||
},
|
||||
|
||||
test_status2 : function()
|
||||
{
|
||||
var testCase = this;
|
||||
CKEDITOR.on( 'loaded', function()
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
assert.areSame( 'loaded', CKEDITOR.status );
|
||||
});
|
||||
});
|
||||
|
||||
this.wait();
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -23,7 +23,8 @@ CKEDITOR.test.addTestCase( (function()
|
||||
|
||||
test_appendStyleSheet : function()
|
||||
{
|
||||
var cssUrl = CKEDITOR.basePath + '_source/tests/_assets/sample.css';
|
||||
var cssUrl = CKEDITOR.basePath + '_tests/';
|
||||
cssUrl += '_assets/sample.css';
|
||||
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
doc.appendStyleSheet( cssUrl );
|
||||
|
||||
@@ -109,8 +109,9 @@ CKEDITOR.test.addTestCase( tc = ( function()
|
||||
// next tc for this.
|
||||
if ( CKEDITOR.env.ie )
|
||||
return;
|
||||
var element = CKEDITOR.document.getById(
|
||||
'trimTarget' ).clone( true );
|
||||
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 );
|
||||
@@ -143,8 +144,9 @@ CKEDITOR.test.addTestCase( tc = ( function()
|
||||
{
|
||||
if ( CKEDITOR.env.ie )
|
||||
return;
|
||||
var element = CKEDITOR.document.getById(
|
||||
'trimTarget' ).clone( true );
|
||||
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 );
|
||||
@@ -179,8 +181,9 @@ CKEDITOR.test.addTestCase( tc = ( function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie )
|
||||
return;
|
||||
var element =
|
||||
CKEDITOR.document.getById( 'trimTarget' ).clone( true );
|
||||
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 );
|
||||
@@ -284,9 +287,6 @@ CKEDITOR.test.addTestCase( tc = ( function()
|
||||
<div id="fragmentContainer1"></div>
|
||||
<div id="fragmentContainer2"><div id="fragmentSibling1"></div></div>
|
||||
<div id="fragmentContainer3"></div>
|
||||
<div id="trimTarget">
|
||||
text
|
||||
</div>
|
||||
<iframe id="innerFrame" name="innerFrame" src="about:blank"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -81,6 +81,12 @@ CKEDITOR.test.addTestCase( (function()
|
||||
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' ) );
|
||||
@@ -170,7 +176,7 @@ CKEDITOR.test.addTestCase( (function()
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
element.setAttribute( 'style', 'position: absolute;' );
|
||||
|
||||
assert.areEqual( 'position: absolute;', element.getAttribute( 'style' ) );
|
||||
assert.areEqual( 'position: absolute;', CKEDITOR.test.getAttribute( element, 'style' ) );
|
||||
},
|
||||
|
||||
test_setAttribute3 : function()
|
||||
@@ -199,7 +205,7 @@ CKEDITOR.test.addTestCase( (function()
|
||||
'rows' : 5 });
|
||||
|
||||
assert.areSame( 'Test', document.getElementById( 'test1' ).className, 'class is wrong' );
|
||||
assert.areEqual( 'position: absolute;', element.getAttribute( 'style'), 'style is wrong' );
|
||||
assert.areEqual( 'position: absolute;', CKEDITOR.test.getAttribute( element, 'style'), 'style is wrong' );
|
||||
assert.areEqual( 'TestName', document.getElementById( 'test1' ).name, 'name is wrong' );
|
||||
assert.areEqual( 5, document.getElementById( 'test1' ).rows, 'rows is wrong' );
|
||||
},
|
||||
@@ -372,31 +378,31 @@ CKEDITOR.test.addTestCase( (function()
|
||||
test_getAttribute_tabindex1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndex10' ) );
|
||||
assert.areEqual( 10, element.getAttribute( 'tabindex' ) );
|
||||
assert.areEqual( 10, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexDef' ) );
|
||||
assert.isNull( element.getAttribute( 'tabindex' ) );
|
||||
assert.isNull( CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInputDef' ) );
|
||||
assert.isNull( element.getAttribute( 'tabindex' ) );
|
||||
assert.isNull( CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex4 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInput20' ) );
|
||||
assert.areEqual( 20, element.getAttribute( 'tabindex' ) );
|
||||
assert.areEqual( 20, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex5 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexScriptDef' ) );
|
||||
assert.areEqual( null, element.getAttribute( 'tabindex' ) );
|
||||
assert.areEqual( null, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -406,13 +412,13 @@ CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'testExpandoAttributes' ) );
|
||||
|
||||
assert.areEqual( 1, element.getAttribute( 'tabindex' ), 'tabindex is wrong' );
|
||||
assert.areEqual( 1, CKEDITOR.test.getAttribute( element, 'tabindex' ), 'tabindex is wrong' );
|
||||
element.removeAttribute( 'tabindex' );
|
||||
|
||||
assert.areEqual( 'hasExpando', element.getAttribute( 'class' ), 'class is wrong' );
|
||||
assert.areEqual( 'hasExpando', CKEDITOR.test.getAttribute( element, 'class' ), 'class is wrong' );
|
||||
element.removeAttribute( 'class' );
|
||||
|
||||
assert.areEqual( 'float: right;', element.getAttribute( 'style' ) );
|
||||
assert.areEqual( 'float: right;', CKEDITOR.test.getAttribute( element, 'style' ) );
|
||||
|
||||
element.removeAttribute( 'style' );
|
||||
element.removeAttribute( 'id' );
|
||||
@@ -505,12 +511,24 @@ CKEDITOR.test.addTestCase( (function()
|
||||
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 )
|
||||
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.' );
|
||||
@@ -522,6 +540,19 @@ CKEDITOR.test.addTestCase( (function()
|
||||
}
|
||||
},
|
||||
|
||||
// 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
|
||||
};
|
||||
})() );
|
||||
|
||||
@@ -112,6 +112,32 @@ CKEDITOR.test.addTestCase( tc = (function()
|
||||
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
|
||||
};
|
||||
})() );
|
||||
@@ -133,5 +159,6 @@ CKEDITOR.test.addTestCase( tc = (function()
|
||||
<p><b>Sample</b> <i>Text</i></p>
|
||||
</div>
|
||||
<span>Another</span>
|
||||
<p id="append"></p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1057,6 +1057,20 @@ CKEDITOR.test.addTestCase( (function()
|
||||
assert.isTrue( range.collapsed, 'range.collapsed' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test enlarge list when there's no nodes between
|
||||
* range start and the block boundary.
|
||||
*/
|
||||
test_enlarge_block6 : function()
|
||||
{
|
||||
var range = getRange( 'S11', null );
|
||||
range.enlarge( CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS );
|
||||
|
||||
assert.areSame( document.getElementById( '_EnlargeP17' ),
|
||||
range.startContainer.$, 'range.startContainer' );
|
||||
assert.areSame( 0, range.startOffset, 'range.startOffset' );
|
||||
},
|
||||
|
||||
test_deleteContents_W3C_1 : function()
|
||||
{
|
||||
// W3C DOM Range Specs - Section 2.6 - Example 1
|
||||
@@ -2382,6 +2396,7 @@ CKEDITOR.test.addTestCase( (function()
|
||||
<p id="_EnlargeP14"><span id="S8"></span></p>
|
||||
<p id="_EnlargeP15">Test <span id="S9"></span>List<br/ >Item Enlarge</p>
|
||||
<p id="_EnlargeP16">Test <strong>Block<span id="S10"></span></strong><br /><br />Enlarge</p>
|
||||
<p id="_EnlargeP17"><span><span id="S11"></span>Test Block Enlarge<span id="E11"></span></span></p>
|
||||
<p id="_trim_ct">Test trim</p>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
<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.
|
||||
@@ -36,20 +39,37 @@ CKEDITOR.test.addTestCase( (function()
|
||||
|
||||
test_config_inpage : function()
|
||||
{
|
||||
// Pass in-page settings to the instance.
|
||||
CKEDITOR.replace( 'editor2', { test1 : 'ball', baseHref : 'test' } );
|
||||
var self = this;
|
||||
|
||||
var config = CKEDITOR.instances.editor2.config;
|
||||
CKEDITOR.replace( 'editor2',
|
||||
{
|
||||
// The custom setting to be checked.
|
||||
test1 : 'ball',
|
||||
baseHref : 'test',
|
||||
|
||||
assert.areSame( 'ball', config.test1, '"test1" doesn\'t match' );
|
||||
assert.areSame( 'test', config.baseHref, '"baseHref" doesn\'t match' );
|
||||
on :
|
||||
{
|
||||
instanceReady : function()
|
||||
{
|
||||
self.resume( function()
|
||||
{
|
||||
var config = CKEDITOR.instances.editor2.config;
|
||||
|
||||
// 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' );
|
||||
}
|
||||
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()
|
||||
|
||||
@@ -69,7 +69,7 @@ CKEDITOR.test.addTestCase( tc = ( function()
|
||||
|
||||
<textarea id="htmlOriginal1"><pre>
|
||||
text<b>
|
||||
inside<br /> <br /></b>
|
||||
inside<br /><br /></b>
|
||||
|
||||
pre
|
||||
</pre></textarea>
|
||||
@@ -86,6 +86,6 @@ pre
|
||||
para graph
|
||||
</p><b>compress spaces</b></textarea>
|
||||
|
||||
<textarea id="htmlResult2"><p>para graph </p><b>compress spaces</b></textarea>
|
||||
<textarea id="htmlResult2"><p>para graph</p><b>compress spaces</b></textarea>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -20,8 +20,9 @@ CKEDITOR.test.addTestCase( (function()
|
||||
*/
|
||||
test_addExternal : function()
|
||||
{
|
||||
var path = '_tests/';
|
||||
CKEDITOR.plugins.addExternal( 'myplugin',
|
||||
'tests/core/plugins/myplugins/sample/', 'my_plugin.js' );
|
||||
path + 'core/plugins/myplugins/sample/', 'my_plugin.js' );
|
||||
|
||||
CKEDITOR.plugins.load( 'myplugin', function(){
|
||||
this.resume( function(){
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
var testcase;
|
||||
CKEDITOR.test.addTestCase( testcase = (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
@@ -75,6 +75,11 @@ CKEDITOR.test.addTestCase( (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' ) );
|
||||
@@ -147,10 +152,15 @@ CKEDITOR.test.addTestCase( (function()
|
||||
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>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<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_source.js"></script>
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -131,7 +131,7 @@ CKEDITOR.test.addTestCase( (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', 'div' ] );
|
||||
assumeIterationSameAs( range, null, [ 'p', 'p' ] );
|
||||
assumeElementContentAreSame( 'iterContainer4', 'iterResult4' );
|
||||
},
|
||||
|
||||
@@ -219,7 +219,7 @@ CKEDITOR.test.addTestCase( (function()
|
||||
<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>text</div></textarea>
|
||||
<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>
|
||||
|
||||
+135
-9
@@ -6,13 +6,15 @@
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
CKEDITOR.plugins.load( 'htmldataprocessor' );
|
||||
|
||||
</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()
|
||||
@@ -84,9 +86,7 @@ CKEDITOR.test.addTestCase( testCase = (function()
|
||||
|
||||
test_toDataFormat_3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><x:x><p>Test</p></div>' );
|
||||
|
||||
assert.areSame( '<x:x><p>Test</p></x:x>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
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()
|
||||
@@ -240,11 +240,102 @@ CKEDITOR.test.addTestCase( testCase = (function()
|
||||
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_3407;
|
||||
//window.onload = testCase.test_ticket_3884;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
@@ -256,5 +347,40 @@ CKEDITOR.test.addTestCase( testCase = (function()
|
||||
<![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,9 +1,9 @@
|
||||
<!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: toolbar</title>
|
||||
<title>Plugin: list</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../../ckeditor_source.js"></script>
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
@@ -26,7 +26,10 @@ function prepareEditor( elementId, mode, config, callback, context )
|
||||
document.getElementById( elementId );
|
||||
if ( isMe )
|
||||
{
|
||||
callback.call( context, evt.editor );
|
||||
var editor = evt.editor;
|
||||
// Force result data unformatted.
|
||||
editor.dataProcessor.writer._.rules = {};
|
||||
callback.call( context, editor );
|
||||
}
|
||||
}, this );
|
||||
|
||||
@@ -105,9 +108,6 @@ CKEDITOR.test.addTestCase( ( function()
|
||||
{
|
||||
editor.focus();
|
||||
|
||||
// Force result data unformatted.
|
||||
editor.dataProcessor.writer._.rules = {};
|
||||
|
||||
var doc = editor.document,
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
|
||||
@@ -119,127 +119,22 @@ CKEDITOR.test.addTestCase( ( function()
|
||||
this.wait( function(){
|
||||
// Remove list.
|
||||
editor.execCommand( 'numberedlist' );
|
||||
assert.areSame( getTextAreaValue( 'test_ticket_3151_resultContent' ),
|
||||
assert.areSame( getTextAreaValue( 'test_ticket_3151_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_resultContent">text</textarea>
|
||||
</body>
|
||||
</html>
|
||||
<!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: toolbar</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../../ckeditor_source.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 )
|
||||
{
|
||||
callback.call( context, evt.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 merge newlist with previous list.
|
||||
*/
|
||||
test_ticket_3151 : function()
|
||||
test_ticket_3820 : function()
|
||||
{
|
||||
prepareEditor( 'test_ticket_3151_editor', null,
|
||||
prepareEditor( 'test_ticket_3820_editor', null,
|
||||
{ enterMode : CKEDITOR.ENTER_BR },
|
||||
function( editor )
|
||||
{
|
||||
@@ -247,24 +142,56 @@ CKEDITOR.test.addTestCase( ( function()
|
||||
{
|
||||
editor.focus();
|
||||
|
||||
// Force result data unformatted.
|
||||
editor.dataProcessor.writer._.rules = {};
|
||||
|
||||
var doc = editor.document,
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
|
||||
setRange( range, [ 1, 0, 0, 0, 0 ], true );
|
||||
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( 'numberedlist' );
|
||||
assert.areSame( getTextAreaValue( 'test_ticket_3151_resultContent' ),
|
||||
editor.execCommand( 'bulletedlist' );
|
||||
assert.areSame( getTextAreaValue( 'test_ticket_3820_result' ),
|
||||
editor.getData(),
|
||||
'Remove list result not correct.' );
|
||||
}, 1000);
|
||||
'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 );
|
||||
@@ -277,8 +204,14 @@ CKEDITOR.test.addTestCase( ( function()
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<body>
|
||||
<textarea id="test_ticket_3151_editor"><ol><li>text</li></ol></textarea>
|
||||
<textarea id="test_ticket_3151_resultContent">text</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>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<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_source.js"></script>
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
<head>
|
||||
<title>Plugin: styles</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../../ckeditor_source.js"></script>
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
CKEDITOR.plugins.load( 'styles' );
|
||||
CKEDITOR.plugins.load( [ 'styles', 'domiterator', 'htmldataprocessor' ] );
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
@@ -21,6 +21,13 @@ CKEDITOR.test.addTestCase( testCase = (function()
|
||||
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 {
|
||||
@@ -317,7 +324,7 @@ CKEDITOR.test.addTestCase( testCase = (function()
|
||||
var style = new CKEDITOR.style( { element : 'b', styles : { color : 'red', 'font-weight' : '700' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b lang="pt" style="font-size:11pt;color:red;">this<b style="font-weight:700;"> is some sample text</b></b>', getInnerHtml( '_P1' ), 'First 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()
|
||||
@@ -537,10 +544,49 @@ CKEDITOR.test.addTestCase( testCase = (function()
|
||||
// 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_3309_3;
|
||||
//window.onload = testCase.test_ticket_3188;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
|
||||
@@ -87,6 +87,7 @@ document.write(
|
||||
runner.subscribe(runner.TEST_CASE_COMPLETE_EVENT, window.parent.onTestComplete);
|
||||
}
|
||||
|
||||
runner.run();
|
||||
if ( !CKEDITOR.test.deferRunner )
|
||||
runner.run();
|
||||
};
|
||||
})();
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
var testList =
|
||||
[
|
||||
'core/ajax',
|
||||
'core/bootstrap',
|
||||
'core/ckeditor',
|
||||
// 'core/ckeditor2',
|
||||
'core/editor',
|
||||
'core/env',
|
||||
'core/event',
|
||||
@@ -24,15 +24,21 @@ var testList =
|
||||
'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;
|
||||
|
||||
@@ -48,11 +54,18 @@ function onTestStart( data )
|
||||
{
|
||||
var div = document.getElementById('testLogger').appendChild( document.createElement( 'div' ) );
|
||||
div.className = 'testEntry';
|
||||
div.innerHTML = 'Testing "' + data.testCase.name + '"...';
|
||||
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;
|
||||
|
||||
@@ -63,7 +76,7 @@ function onTestComplete( data )
|
||||
else
|
||||
html = '<span class="testPass">PASS</span>';
|
||||
|
||||
html += ' <a href="' + currentTest + '.html" target="_blank">Test case "' + data.testCase.name + '"</a> (' + failed + ' failed / ' + passed + ' passed)';
|
||||
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;
|
||||
@@ -73,6 +86,7 @@ function onTestComplete( data )
|
||||
|
||||
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';
|
||||
|
||||
@@ -92,7 +106,7 @@ window.onload = function()
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>CKEditor Core Tests Runner (<span id="testFailed">0</span> failed / <span id="testPassed">0</span> passed)</h1>
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user