mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-25 13:25:28 +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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user