+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>Plugin: styles</title>\r
- <link rel="stylesheet" type="text/css" href="../../test.css" />\r
- <script type="text/javascript" src="../../../ckeditor.js"></script>\r
- <script type="text/javascript" src="../../test.js"></script>\r
- <script type="text/javascript">\r
-\r
-CKEDITOR.plugins.load( [ 'styles', 'domiterator', 'htmldataprocessor' ] );\r
-\r
- </script>\r
- <script type="text/javascript">\r
- //<![CDATA[\r
-\r
-var testCase;\r
-\r
-CKEDITOR.test.addTestCase( testCase = (function()\r
-{\r
- // Local references.\r
- var assert = CKEDITOR.test.assert;\r
- var getInnerHtml = CKEDITOR.test.getInnerHtml;\r
-\r
- function getInnerHtmlParsed( element )\r
- {\r
- var dataProcessor = new CKEDITOR.htmlDataProcessor();\r
- dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();\r
- return dataProcessor.toDataFormat( getInnerHtml( element, false ) );\r
- }\r
-\r
- var doc = new CKEDITOR.dom.document( document );\r
-\r
- return {\r
- test_inline1 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this is some sample text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ).getFirst(), 5 );\r
- range.setEnd( doc.getById( '_P1' ).getFirst(), 7 );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( 'this <b>is</b> some sample text', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- test_inline2 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ).getChild( 1 ), 0 );\r
- range.setEnd( doc.getById( '_P1' ), 2 );\r
-\r
- var style = new CKEDITOR.style( { element : 'i' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( 'this <i><b>is some </b></i>sample text', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- test_inline3 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ).getChild( 1 ), 0 );\r
- range.setEnd( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 2 );\r
-\r
- var style = new CKEDITOR.style( { element : 'i' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( 'this <b><i>is</i> some </b>sample text', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- // Inline - Remove inner duplicates.\r
- test_inline4 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 0 );\r
- range.setEnd( doc.getById( '_P1' ), 3 );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<b>this is some sample text</b>', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- // Inline - Merge with next.\r
- test_inline5 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 0 );\r
- range.setEnd( doc.getById( '_P1' ), 1 );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<b>this is some </b>sample text', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- // Inline - Merge with previous.\r
- test_inline6 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 2 );\r
- range.setEnd( doc.getById( '_P1' ).getChild( 2 ), 6 );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( 'this <b>is some sample</b> text', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- // Inline - Merge several with next.\r
- test_inline7 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( '<i><u>this </u></i><b><i><u>is</u> some</i> sample</b> text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 0 );\r
- range.setEnd( doc.getById( '_P1' ), 1 );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<b><i><u>this is</u> some</i> sample</b> text', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- // Inline - Merge several with previous.\r
- test_inline8 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this <b>is <i>some <u>sample</u></i></b><i><u> text</u></i>' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 2 );\r
- range.setEnd( doc.getById( '_P1' ), 3 );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( 'this <b>is <i>some <u>sample text</u></i></b>', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- test_inline9 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this <i>is some </i>sample text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 0 );\r
- range.setEnd( doc.getById( '_P1' ).getChild( 1 ), 0 );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<b>this </b><i>is some </i>sample text', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- test_inline10 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this is some sample text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 0 );\r
- range.setEnd( doc.getById( '_P1' ), 1 );\r
-\r
- var style = new CKEDITOR.style(\r
- {\r
- element : 'b',\r
- attributes :\r
- {\r
- lang : 'it',\r
- title : 'test'\r
- },\r
- styles :\r
- {\r
- 'font-size' : '10pt',\r
- 'text-decoration' : 'line-through'\r
- }\r
- } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<b lang="it" style="font-size:10pt;text-decoration:line-through;" title="test">this is some sample text</b>', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- test_inline11 : function()\r
- {\r
- 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' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 0 );\r
- range.setEnd( doc.getById( '_P1' ), 7 );\r
-\r
- var style = new CKEDITOR.style(\r
- {\r
- element : 'b',\r
- attributes :\r
- {\r
- lang : 'it',\r
- title : 'test'\r
- },\r
- styles :\r
- {\r
- 'font-size' : '10pt',\r
- 'text-decoration' : 'line-through'\r
- }\r
- } );\r
- style.applyToRange( range );\r
-\r
- 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' ) );\r
- },\r
-\r
- test_inline11 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this <span class="a">is</span> some <span class="b">sample</span> text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 0 );\r
- range.setEnd( doc.getById( '_P1' ), 5 );\r
-\r
- var style = new CKEDITOR.style( { element : 'span', attributes : { 'class' : 'b' } } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<span class="b">this <span class="a">is</span> some sample text</span>', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- test_inline12 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this <span style="font-size:12pt; font-weight:600">is</span> some <span style="font-size:10px;">sample</span> text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 0 );\r
- range.setEnd( doc.getById( '_P1' ), 5 );\r
-\r
- var style = new CKEDITOR.style( { element : 'span', styles : { 'font-size' : '1.5em' } } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<span style="font-size:1.5em;">this <span style="font-weight:600;">is</span> some sample text</span>', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- test_inline13 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this <b>is some sample</b> text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 3 );\r
- range.setEnd( doc.getById( '_P1' ), 3 );\r
-\r
- var style = new CKEDITOR.style( { element : 'i' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( 'this <b>is <i>some sample</i></b><i> text</i>', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- test_inline14 : function()\r
- {\r
- var para = doc.getById( '_P1' );\r
-\r
- para.setHtml( 'this is some sample text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( para.getFirst(), 0 );\r
- range.setEnd( para.getFirst(), 7 );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<b>this is</b> some sample text', getInnerHtml( '_P1' ), 'First range' );\r
-\r
- para.setHtml( para.getHtml() );\r
-\r
- range = new CKEDITOR.dom.range( doc );\r
- range.setStart( para.getFirst().getFirst(), 5 );\r
- range.setEnd( para.getChild( 1 ), 5 );\r
-\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<b>this is some</b> sample text', getInnerHtml( '_P1' ), 'Second range' );\r
- },\r
-\r
- test_inline15 : function()\r
- {\r
- var para = doc.getById( '_P1' );\r
-\r
- para.setHtml( 'this is some sample text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( para.getFirst(), 0 );\r
- range.setEnd( para.getFirst(), 7 );\r
-\r
- var style = new CKEDITOR.style( { element : 'span', styles : { 'font-family' : '#(family)' } }, { family : 'Arial,Helvetica,sans-serif' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<span style="font-family:arial,helvetica,sans-serif;">this is</span> some sample text', getInnerHtml( '_P1' ), 'First range' );\r
-\r
- para.setHtml( para.getHtml() );\r
-\r
- range = new CKEDITOR.dom.range( doc );\r
- range.setStart( para.getFirst().getFirst(), 5 );\r
- range.setEnd( para.getChild( 1 ), 5 );\r
-\r
- style = new CKEDITOR.style( { element : 'span', styles : { 'font-family' : '#(family)' } }, { family : 'Georgia,serif' } );\r
- style.applyToRange( range );\r
-\r
- 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' );\r
- },\r
-\r
- test_inline16 : function()\r
- {\r
- var para = doc.getById( '_P1' );\r
-\r
- para.setHtml( '<b lang="pt" style="font-size:11pt;color:red;">this is some sample text</b>' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( para.getFirst().getFirst(), 4 );\r
- range.setEnd( para.getFirst(), 10 );\r
-\r
- var style = new CKEDITOR.style( { element : 'b', styles : { color : 'red', 'font-weight' : '700' } } );\r
- style.applyToRange( range );\r
-\r
- 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' );\r
- },\r
-\r
- test_inline_nobreak1 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'this is <a href="http://example.com/">some sample</a> text' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 0 );\r
- range.setEnd( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 4 );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<b>this is </b><a href="http://example.com/"><b>some</b> sample</a> text', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- test_ticket_2040 : function()\r
- {\r
- doc.getById( '_P1' ).setHtml( 'This is some <strong>sample text<\/strong>. You are using <a href="http://www.fckeditor.net/">ckeditor<\/a>.' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStart( doc.getById( '_P1' ), 1 );\r
- range.setEnd( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 6 );\r
-\r
- var style = new CKEDITOR.style( { element : 'i' } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( 'this is some <strong><i>sample</i> text<\/strong>. you are using <a href="http://www.fckeditor.net/">ckeditor<\/a>.', getInnerHtml( '_P1' ) );\r
- },\r
-\r
- test_checkElementRemovable1 : function()\r
- {\r
- var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
-\r
- assert.isTrue( style.checkElementRemovable( element ) );\r
- },\r
-\r
- test_checkElementRemovable2 : function()\r
- {\r
- var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );\r
-\r
- var style = new CKEDITOR.style( { element : 'i' } );\r
-\r
- assert.isFalse( style.checkElementRemovable( element ) );\r
- },\r
-\r
- test_checkElementRemovable3 : function()\r
- {\r
- var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );\r
-\r
- var style = new CKEDITOR.style( { element : 'b', attributes : { lang : 'pt' } } );\r
-\r
- assert.isTrue( style.checkElementRemovable( element ) );\r
- },\r
-\r
- test_checkElementRemovable4 : function()\r
- {\r
- var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );\r
-\r
- var style = new CKEDITOR.style( { element : 'b', attributes : { lang : 'pt' } } );\r
-\r
- assert.isFalse( style.checkElementRemovable( element, true ) );\r
- },\r
-\r
- test_checkElementRemovable5 : function()\r
- {\r
- var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="color : #fff">Test</span>', doc );\r
-\r
- var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'pt' }, style : { color : '#ffffff' } } );\r
-\r
- assert.isTrue( style.checkElementRemovable( element, true ) );\r
- },\r
-\r
- test_checkElementRemovable6 : function()\r
- {\r
- var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="color : #fff">Test</span>', doc );\r
-\r
- var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'pt' }, style : { color : '#fffff0' } } );\r
-\r
- assert.isTrue( style.checkElementRemovable( element, true ) );\r
- },\r
-\r
- test_checkElementRemovable7 : function()\r
- {\r
- var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="color : #fff">Test</span>', doc );\r
-\r
- var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'fr' }, style : { color : '#ffffff' } } );\r
-\r
- assert.isFalse( style.checkElementRemovable( element, true ) );\r
- },\r
-\r
- test_checkElementRemovable8 : function()\r
- {\r
- var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="font-size: 10px">Test</span>', doc );\r
-\r
- var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'pt' , style : 'font-size:10px;' } } );\r
-\r
- assert.isTrue( style.checkElementRemovable( element, true ) );\r
- },\r
-\r
- test_ticket_3091 : function()\r
- {\r
- var element = doc.getById( '_P1' );\r
- element.setHtml( 'outter<table><tr><td>text</td></tr></table>outter' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.selectNodeContents( element );\r
-\r
- var styleDef =\r
- {\r
- element : 'span',\r
- styles : { 'font-family' : '#(family)' },\r
- overrides : [ { element : 'font', attributes : { 'face' : null } } ]\r
- };\r
-\r
- var style = new CKEDITOR.style( styleDef, { 'family' : 'Arial,Helvetica,sans-serif' } );\r
- style.applyToRange( range );\r
-\r
- style = new CKEDITOR.style( styleDef, { 'family' : 'Comic Sans MS,cursive' } );\r
- style.applyToRange( range );\r
-\r
- style = new CKEDITOR.style( styleDef, { 'family' : 'Courier New,Courier,monospace' } );\r
- style.applyToRange( range );\r
-\r
- 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 ) );\r
- },\r
-\r
- test_ticket_3091_2 : function()\r
- {\r
- var element = doc.getById( '_P1' );\r
- element.setHtml( 'outter<p>text</p>outter' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.selectNodeContents( element );\r
-\r
- var style = new CKEDITOR.style( { element : 'i', attributes : { title : 'x' } } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<i title="x">outter</i><p><i title="x">text</i></p><i title="x">outter</i>', getInnerHtml( element ), 'First step failed' );\r
-\r
- style = new CKEDITOR.style( { element : 'i', attributes : { title : 'y' } } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<i title="y">outter</i><p><i title="y">text</i></p><i title="y">outter</i>', getInnerHtml( element ), 'Second step failed' );\r
-\r
- style = new CKEDITOR.style( { element : 'i', attributes : { title : 'z' } } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<i title="z">outter</i><p><i title="z">text</i></p><i title="z">outter</i>', getInnerHtml( element ), 'Third step failed' );\r
- },\r
-\r
- // TC based on the state of the second step in the above test, before it got fixed.\r
- test_ticket_3091_3 : function()\r
- {\r
- var element = doc.getById( '_P1' );\r
- element.setHtml( '<p><i title="y">text</i><i title="x"></i></p><i title="y">outter</i><i title="x"></i>' );\r
-\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.selectNodeContents( element );\r
-\r
- var style = new CKEDITOR.style( { element : 'i', attributes : { title : 'z' } } );\r
- style.applyToRange( range );\r
-\r
- assert.areSame( '<p><i title="z">text</i></p><i title="z">outter</i>', getInnerHtml( element ) );\r
- },\r
-\r
- // Remove inline style when range collapsed at element boundaries,\r
- // move out of the removing-style element, with inner style copied.\r
- test_ticket_3309 : function()\r
- {\r
- var element = doc.getById( '_P1' );\r
- element.setHtml( 'this is some <b><i id="_i1">styles</i></b> text' );\r
-\r
- // This is some <b><i>styles^</i></b> text\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStartAt( doc.getById( '_i1' ), CKEDITOR.POSITION_BEFORE_END );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
- style.removeFromRange( range );\r
-\r
- assert.areSame( 'this is some <b><i id="_i1">styles</i></b><i></i> text', getInnerHtml( element ) );\r
- },\r
-\r
- // No inner style preserved, simply move out of the removing-style element.\r
- test_ticket_3309_2 : function()\r
- {\r
- var element = doc.getById( '_P1' );\r
- element.setHtml( 'this is some <b id="_b1">styles</b> text' );\r
-\r
- // This is some <b>styles^</b> text\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStartAt( doc.getById( '_b1' ), CKEDITOR.POSITION_BEFORE_END );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' } );\r
- style.removeFromRange( range );\r
- // This is some <b>styles</b>^ text\r
- assert.areSame( doc.getById( '_b1' ).getParent().$, range.startContainer.$ );\r
- assert.areSame( 2, range.startOffset );\r
- assert.areSame( 'this is some <b id="_b1">styles</b> text', getInnerHtml( element ) );\r
- },\r
-\r
- // With style overrides.\r
- test_ticket_3309_3 : function()\r
- {\r
- var element = doc.getById( '_P1' );\r
- element.setHtml( 'text <strong><bold><span><b><i id="_i1">styles</i></b></span></bold></strong>' );\r
-\r
- // text <strong><bold><span><b><i id="_i1">^styles</i></b></span></bold></strong>\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStartAt( doc.getById( '_i1' ), CKEDITOR.POSITION_AFTER_START );\r
-\r
- var style = new CKEDITOR.style( { element : 'b' , overrides : [ 'strong', 'bold' ] } );\r
- style.removeFromRange( range );\r
-\r
- // text <span><i>^</i></span><bold><span><b><i>styles</i></b></span></bold>\r
- assert.areSame( 'text <span><i></i></span><strong><bold><span><b><i id="_i1">styles</i></b></span></bold></strong>', getInnerHtml( element ) );\r
- },\r
-\r
- // Test convert multiple paragraphs to one <pre>.\r
- test_ticket_3188 : function()\r
- {\r
- var element = doc.getById( '_P1' );\r
- element.setHtml( '<p id="_P2">\nparagraph1<br /><br />para\t\ngraph2</p><p id="_P3">\nparagraph3\n</p>' );\r
-\r
- // <p id="_P2">[paragraph1</p><p id="_P3">paragraph2]</p>\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.setStartAt( doc.getById( '_P2' ), CKEDITOR.POSITION_AFTER_START );\r
- range.setEndAt( doc.getById( '_P3' ), CKEDITOR.POSITION_BEFORE_END );\r
-\r
- var style = new CKEDITOR.style( { element : 'pre' } );\r
- style.applyToRange( range );\r
-\r
- var result = getInnerHtmlParsed( element );\r
- assert.areSame( '<pre>paragraph1\n\npara graph2\n\nparagraph3</pre>', result );\r
- },\r
-\r
- // Test convert one <pre> to multiple paragraphs.\r
- test_ticket_3188_2 : function()\r
- {\r
- var element = doc.getById( '_P1' );\r
- element.setHtml( '<pre>\n\tparagraph1\t\tparagraph1\nparagraph2\n\t\n\tpara graph3\n</pre>' );\r
-\r
- //<pre>[\n\tparagraph1\t\tparagraph1\nparagraph2\n\t\n\tpara graph3\n]</pre>\r
- var range = new CKEDITOR.dom.range( doc );\r
- range.selectNodeContents( doc.getById( '_P1' ).getFirst() );\r
- var style = new CKEDITOR.style( { element : 'p' } );\r
- style.applyToRange( range );\r
-\r
- var result = getInnerHtmlParsed( element );\r
-\r
- if ( CKEDITOR.env.webkit || CKEDITOR.env.opera )\r
- result = result.replace( /\xa0/g, ' ' );\r
-\r
- assert.areSame( '<p> paragraph1 paragraph1<br />paragraph2</p><p> para graph3</p>',\r
- result );\r
- },\r
- name : document.title\r
- };\r
-})() );\r
-//window.onload = testCase.test_ticket_3188;\r
- //]]>\r
- </script>\r
-</head>\r
-<body>\r
- <div id="_P1"></div>\r
-</body>\r
-</html>\r