Skip to content

Commit

Permalink
Merge branch 't/13590a'
Browse files Browse the repository at this point in the history
  • Loading branch information
Reinmar committed Aug 10, 2015
2 parents e52e3b8 + 87275fe commit 60cbbe4
Show file tree
Hide file tree
Showing 27 changed files with 980 additions and 3 deletions.
4 changes: 4 additions & 0 deletions CHANGES.md
Expand Up @@ -10,6 +10,10 @@ New Features:

Fixed Issues:

* [#13590](http://dev.ckeditor.com/ticket/13590): Fixed: Various issues related to the Paste From Word feature. Fixed also:
* [#11215](http://dev.ckeditor.com/ticket/11215),
* [#8780](http://dev.ckeditor.com/ticket/8780),
* [#12762](http://dev.ckeditor.com/ticket/12762).
* [#13386](http://dev.ckeditor.com/ticket/13386): [Edge] Fixed: Issues with selecting and editing images.
* [#13568](http://dev.ckeditor.com/ticket/13568): Fixed: Method [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) returns invalid results for entire content selection.
* [#13453](http://dev.ckeditor.com/ticket/13453): Fixed: Drag&drop of a whole content of the editor throws an error.
Expand Down
14 changes: 11 additions & 3 deletions plugins/pastefromword/filter/default.js
Expand Up @@ -157,7 +157,6 @@
}
}

var cssLengthRelativeUnit = /^([.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i;
var emptyMarginRegex = /^(?:\b0[^\s]*\s*){1,4}$/; // e.g. 0px 0pt 0px
var romanLiternalPattern = '^m{0,4}(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})$',
lowerRomanLiteralRegex = new RegExp( romanLiternalPattern ),
Expand Down Expand Up @@ -365,7 +364,9 @@

plugin.filters.stylesFilter( [
[ 'tab-stops', null, function( val ) {
var margin = val.split( ' ' )[ 1 ].match( cssLengthRelativeUnit );
// val = [left|center|right|decimal] <value><unit> Source: W3C, WD-tabs-970117.
// In some cases the first word is missing - hence the square brackets.
var margin = val.match( /0$|\d+\.?\d*\w+/ );
margin && ( previousListItemMargin = CKEDITOR.tools.convertToPx( margin[ 0 ] ) );
} ],
( level == 1 ? [ 'mso-list', null, function( val ) {
Expand Down Expand Up @@ -812,7 +813,8 @@
// that doesn't include "mso-list:Ignore" on list bullets,
// note it's not perfect as not all list style (e.g. "heading list") is shipped
// with this pattern. (#6662)
if ( ( /MsoListParagraph/i ).exec( element.attributes[ 'class' ] ) || element.getStyle( 'mso-list' ) ) {
if ( ( /MsoListParagraph/i ).exec( element.attributes[ 'class' ] ) ||
( element.getStyle( 'mso-list' ) && !element.getStyle( 'mso-list' ).match( /^(none|skip)$/i ) ) ) {
var bulletText = element.firstChild( function( node ) {
return node.type == CKEDITOR.NODE_TEXT && !containsNothingButSpaces( node.parent );
} );
Expand Down Expand Up @@ -984,6 +986,12 @@
// Remove full paths from links to anchors.
a: function( element ) {
var attrs = element.attributes;

if ( attrs.name && attrs.name.match( /ole_link\d+/i ) ) {
delete element.name;
return;
}

if ( attrs.href && attrs.href.match( /^file:\/\/\/[\S]+#/i ) )
attrs.href = attrs.href.replace( /^file:\/\/\/[^#]+/i, '' );
},
Expand Down
83 changes: 83 additions & 0 deletions tests/tickets/13590/1.js
@@ -0,0 +1,83 @@
/* bender-tags: clipboard,pastefromword,11215,8780,9685,12740,13616 */
/* bender-ckeditor-plugins: clipboard,pastefromword,format,ajax,basicstyles */
/* bender-include: ../../plugins/clipboard/_helpers/pasting.js */
/* global assertPasteEvent */

( function() {
'use strict';

bender.editor = {
config: {
// Disable pasteFilter on Webkits (pasteFilter defaults semantic-text on Webkits).
pasteFilter: null,
pasteFromWordRemoveFontStyles: false,
pasteFromWordRemoveStyles: false
}
};

var compat = bender.tools.compatHtml,
engineName = CKEDITOR.env.webkit ? 'webkit' :
CKEDITOR.env.ie ? 'ie' :
CKEDITOR.env.gecko ? 'gecko' :
null;

function testWordFilter( editor ) {
return function( input, output ) {
assertPasteEvent( editor, { dataValue: input },
function( data, msg ) {
assert.areSame( compat( output ).toLowerCase(), compat( data.dataValue ).toLowerCase(), msg );
}, 'tc1', true );
};
}

bender.test( {
// #11215
'test tc1 - Word Viewer': function() {
if ( !engineName )
assert.ignore();

bender.tools.testExternalInputOutput( '_assets/tc1_word_viewer_' + engineName + '.html', testWordFilter( this.editor ) );
},

// #8780, #9685
'test tc2 - Word Viewer': function() {
if ( !engineName )
assert.ignore();

bender.tools.testExternalInputOutput( '_assets/tc2_word_viewer_' + engineName + '.html', testWordFilter( this.editor ) );
},

// #12762
'test tc3 - Word Viewer': function() {
if ( !engineName )
assert.ignore();

bender.tools.testExternalInputOutput( '_assets/tc3_word_viewer_' + engineName + '.html', testWordFilter( this.editor ) );
},

// #12740 - "Minimum file to reproduce the problem."
'test tc4 - Word Viewer': function() {
if ( !engineName )
assert.ignore();

bender.tools.testExternalInputOutput( '_assets/tc4_word_viewer_' + engineName + '.html', testWordFilter( this.editor ) );
},

// #12740 - "word file causing the error message"
'test tc5 - Word Viewer': function() {
if ( !engineName )
assert.ignore();

bender.tools.testExternalInputOutput( '_assets/tc5_word_viewer_' + engineName + '.html', testWordFilter( this.editor ) );
},

// #13616
'test tc6 - Word Viewer': function() {
if ( !engineName )
assert.ignore();

bender.tools.testExternalInputOutput( '_assets/tc6_word_viewer_' + engineName + '.html', testWordFilter( this.editor ) );
}

} );
} )();
Binary file added tests/tickets/13590/_assets/tc1.docx
Binary file not shown.
75 changes: 75 additions & 0 deletions tests/tickets/13590/_assets/tc1_word_viewer_gecko.html
@@ -0,0 +1,75 @@
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->

<p class="MsoNormal" style="text-align:justify;text-indent:28.05pt;line-height:
125%;layout-grid-mode:char"><a name="OLE_LINK11"></a><a name="OLE_LINK10"></a><a name="OLE_LINK9"></a><a name="OLE_LINK8"></a><a name="OLE_LINK7"></a><a name="OLE_LINK6"></a><a name="OLE_LINK5"><span style="mso-bookmark:OLE_LINK6"><span style="mso-bookmark:OLE_LINK7"><span style="mso-bookmark:OLE_LINK8"><span style="mso-bookmark:OLE_LINK9"><span style="mso-bookmark:OLE_LINK10"><span style="mso-bookmark:OLE_LINK11"><b><span style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-bidi-font-family:Arial;layout-grid-mode:
line" lang="ZH-CN"></span></b></span></span></span></span></span></span></a><span style="mso-bookmark:OLE_LINK5"><span style="mso-bookmark:OLE_LINK6"><span style="mso-bookmark:OLE_LINK7"><span style="mso-bookmark:OLE_LINK8"><span style="mso-bookmark:OLE_LINK9"><span style="mso-bookmark:OLE_LINK10"><span style="mso-bookmark:OLE_LINK11"><b><span style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-bidi-font-family:Arial;layout-grid-mode:
line" lang="EN-US">14.4</span></b></span></span></span></span></span></span></span><span style="mso-bookmark:OLE_LINK5"><span style="mso-bookmark:OLE_LINK6"><span style="mso-bookmark:OLE_LINK7"><span style="mso-bookmark:OLE_LINK8"><span style="mso-bookmark:OLE_LINK9"><span style="mso-bookmark:OLE_LINK10"><span style="mso-bookmark:OLE_LINK11"><b><span style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-bidi-font-family:Arial;layout-grid-mode:
line" lang="ZH-CN"></span></b></span></span></span></span></span></span></span><span style="mso-bookmark:OLE_LINK5"><span style="mso-bookmark:OLE_LINK6"><span style="mso-bookmark:OLE_LINK7"><span style="mso-bookmark:OLE_LINK8"><span style="mso-bookmark:OLE_LINK9"><span style="mso-bookmark:OLE_LINK10"><span style="mso-bookmark:OLE_LINK11"><b><span style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-bidi-font-family:Arial;layout-grid-mode:
line" lang="EN-US">——</span></b></span></span></span></span></span></span></span><span style="mso-bookmark:OLE_LINK5"><span style="mso-bookmark:OLE_LINK6"><span style="mso-bookmark:OLE_LINK7"><span style="mso-bookmark:OLE_LINK8"><span style="mso-bookmark:OLE_LINK9"><span style="mso-bookmark:OLE_LINK10"><span style="mso-bookmark:OLE_LINK11"><b><span style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-bidi-font-family:Arial;layout-grid-mode:
line" lang="ZH-CN">保密信息:例外情形</span></b></span></span></span></span></span></span></span><span style="mso-bookmark:OLE_LINK5"><span style="mso-bookmark:OLE_LINK6"><span style="mso-bookmark:OLE_LINK7"><span style="mso-bookmark:OLE_LINK8"><span style="mso-bookmark:OLE_LINK9"><span style="mso-bookmark:OLE_LINK10"><span style="mso-bookmark:OLE_LINK11"><span style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-hansi-font-family:Courier;mso-bidi-font-family:
Arial;layout-grid-mode:line" lang="EN-US"></span></span></span></span></span></span></span></span></p>

<p class="Level2Number" style="margin:0cm;margin-bottom:.0001pt;text-align:justify;
text-indent:28.05pt;line-height:125%;mso-pagination:none;mso-list:none;
tab-stops:35.4pt;layout-grid-mode:char;mso-layout-grid-align:none"><span style="mso-bookmark:OLE_LINK5"><span style="mso-bookmark:OLE_LINK6"><span style="mso-bookmark:OLE_LINK7"><span style="mso-bookmark:OLE_LINK8"><span style="mso-bookmark:OLE_LINK9"><span style="mso-bookmark:OLE_LINK10"><span style="mso-bookmark:OLE_LINK11"><span style="font-size:14.0pt;
line-height:125%;font-family:仿宋;mso-hansi-font-family:仿宋;mso-bidi-font-family:
Arial;mso-fareast-language:ZH-CN;layout-grid-mode:line" lang="ZH-CN">此条款反映了《中华人民共和国反不正当竞争法》所界定的保密信息的性质和范围。</span></span></span></span></span></span></span></span><span style="mso-bookmark:OLE_LINK5"><span style="mso-bookmark:OLE_LINK6"><span style="mso-bookmark:OLE_LINK7"><span style="mso-bookmark:OLE_LINK8"><span style="mso-bookmark:OLE_LINK9"><span style="mso-bookmark:OLE_LINK10"><span style="mso-bookmark:OLE_LINK11"><span style="font-size:14.0pt;
line-height:125%;font-family:仿宋;mso-hansi-font-family:仿宋;mso-bidi-font-family:
Arial;mso-fareast-language:ZH-CN;layout-grid-mode:line" lang="EN-US"></span></span></span></span></span></span></span></span></p>

<span style="mso-bookmark:OLE_LINK11"></span><span style="mso-bookmark:OLE_LINK10"></span><span style="mso-bookmark:OLE_LINK9"></span><span style="mso-bookmark:OLE_LINK8"></span><span style="mso-bookmark:OLE_LINK7"></span><span style="mso-bookmark:OLE_LINK6"></span><span style="mso-bookmark:OLE_LINK5"></span>

<p class="MsoNormal"><a name="_GoBack"></a><span lang="EN-US">&nbsp;</span></p>

<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:Standardowy;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->

=>

<p style="text-align:justify;text-indent:28.05pt;line-height:125%;layout-grid-mode:char;"><strong><span style="layout-grid-mode:line;"></span></strong><strong><span style="layout-grid-mode:line;">14.4</span></strong><strong><span style="layout-grid-mode:line;"></span></strong><strong><span style="layout-grid-mode:line;">——</span></strong><strong><span style="layout-grid-mode:line;">保密信息:例外情形</span></strong></p><p style="margin-bottom:.0001pt;text-align:justify;text-indent:28.05pt;line-height:125%;layout-grid-mode:char;"><span style="layout-grid-mode:line;">此条款反映了《中华人民共和国反不正当竞争法》所界定的保密信息的性质和范围。</span></p><p><a name="_goback"></a>&nbsp;</p>
15 changes: 15 additions & 0 deletions tests/tickets/13590/_assets/tc1_word_viewer_ie.html
@@ -0,0 +1,15 @@
<font color="#000000" face="Times New Roman" size="3">

</font><p style="margin: 0cm 0cm 0pt; text-align: justify; line-height: 125%; text-indent: 28.05pt; -ms-layout-grid-mode: char;"><a name="OLE_LINK11"></a><a name="OLE_LINK10"></a><a name="OLE_LINK9"></a><a name="OLE_LINK8"></a><a name="OLE_LINK7"></a><a name="OLE_LINK6"></a><a name="OLE_LINK5"><span style="mso-bookmark: OLE_LINK6;"><span style="mso-bookmark: OLE_LINK7;"><span style="mso-bookmark: OLE_LINK8;"><span style="mso-bookmark: OLE_LINK9;"><span style="mso-bookmark: OLE_LINK10;"><span style="mso-bookmark: OLE_LINK11;"><b><span lang="ZH-CN" style="line-height: 125%; font-family: SimSun; font-size: 14pt; -ms-layout-grid-mode: line; mso-bidi-font-family: Arial;"><font color="#000000"></font></span></b></span></span></span></span></span></span></a><font color="#000000"><span style="mso-bookmark: OLE_LINK5;"><span style="mso-bookmark: OLE_LINK6;"><span style="mso-bookmark: OLE_LINK7;"><span style="mso-bookmark: OLE_LINK8;"><span style="mso-bookmark: OLE_LINK9;"><span style="mso-bookmark: OLE_LINK10;"><span style="mso-bookmark: OLE_LINK11;"><b><span lang="EN-US" style="line-height: 125%; font-family: SimSun; font-size: 14pt; -ms-layout-grid-mode: line; mso-bidi-font-family: Arial;">14.4</span></b></span></span></span></span></span></span></span><span style="mso-bookmark: OLE_LINK5;"><span style="mso-bookmark: OLE_LINK6;"><span style="mso-bookmark: OLE_LINK7;"><span style="mso-bookmark: OLE_LINK8;"><span style="mso-bookmark: OLE_LINK9;"><span style="mso-bookmark: OLE_LINK10;"><span style="mso-bookmark: OLE_LINK11;"><b><span lang="ZH-CN" style="line-height: 125%; font-family: SimSun; font-size: 14pt; -ms-layout-grid-mode: line; mso-bidi-font-family: Arial;"></span></b></span></span></span></span></span></span></span><span style="mso-bookmark: OLE_LINK5;"><span style="mso-bookmark: OLE_LINK6;"><span style="mso-bookmark: OLE_LINK7;"><span style="mso-bookmark: OLE_LINK8;"><span style="mso-bookmark: OLE_LINK9;"><span style="mso-bookmark: OLE_LINK10;"><span style="mso-bookmark: OLE_LINK11;"><b><span lang="EN-US" style="line-height: 125%; font-family: SimSun; font-size: 14pt; -ms-layout-grid-mode: line; mso-bidi-font-family: Arial;">——</span></b></span></span></span></span></span></span></span><span style="mso-bookmark: OLE_LINK5;"><span style="mso-bookmark: OLE_LINK6;"><span style="mso-bookmark: OLE_LINK7;"><span style="mso-bookmark: OLE_LINK8;"><span style="mso-bookmark: OLE_LINK9;"><span style="mso-bookmark: OLE_LINK10;"><span style="mso-bookmark: OLE_LINK11;"><b><span lang="ZH-CN" style="line-height: 125%; font-family: SimSun; font-size: 14pt; -ms-layout-grid-mode: line; mso-bidi-font-family: Arial;">保密信息:例外情形</span></b></span></span></span></span></span></span></span></font></p><font color="#000000" face="Times New Roman" size="3">

</font><p style="margin: 0cm 0cm 0pt; text-align: justify; line-height: 125%; text-indent: 28.05pt; -ms-layout-grid-mode: char; mso-pagination: none; mso-list: none; tab-stops: 35.4pt; mso-layout-grid-align: none;"><span style="mso-bookmark: OLE_LINK5;"><span style="mso-bookmark: OLE_LINK6;"><span style="mso-bookmark: OLE_LINK7;"><span style="mso-bookmark: OLE_LINK8;"><span style="mso-bookmark: OLE_LINK9;"><span style="mso-bookmark: OLE_LINK10;"><span style="mso-bookmark: OLE_LINK11;"><span lang="ZH-CN" style="line-height: 125%; font-family: 仿宋; font-size: 14pt; -ms-layout-grid-mode: line; mso-bidi-font-family: Arial; mso-hansi-font-family: 仿宋; mso-fareast-language: ZH-CN;"><font color="#000000">此条款反映了《中华人民共和国反不正当竞争法》所界定的保密信息的性质和范围。</font></span></span></span></span></span></span></span></span></p><font color="#000000" face="Times New Roman" size="3">



</font><p style="margin: 0cm 0cm 0pt;"><a name="_GoBack"></a><span lang="EN-US"><font color="#000000" face="Times New Roman" size="2">&nbsp;</font></span></p><font color="#000000" face="Times New Roman" size="3">

</font>

=>

<p style="text-align:justify;line-height:125%;text-indent:28.05pt;-ms-layout-grid-mode:char;"><strong><span style="-ms-layout-grid-mode:line;"></span></strong><strong><span style="-ms-layout-grid-mode:line;">14.4</span></strong><strong><span style="-ms-layout-grid-mode:line;"></span></strong><strong><span style="-ms-layout-grid-mode:line;">——</span></strong><strong><span style="-ms-layout-grid-mode:line;">保密信息:例外情形</span></strong></p><p style="text-align:justify;line-height:125%;text-indent:28.05pt;-ms-layout-grid-mode:char;"><span style="-ms-layout-grid-mode:line;">此条款反映了《中华人民共和国反不正当竞争法》所界定的保密信息的性质和范围。</span></p><p><a name="_goback"></a>&nbsp;</p>
30 changes: 30 additions & 0 deletions tests/tickets/13590/_assets/tc1_word_viewer_webkit.html
@@ -0,0 +1,30 @@
<p class="MsoNormal" style="text-align:justify;text-indent:28.05pt;line-height:
125%;layout-grid-mode:char"><a name="OLE_LINK11"></a><a name="OLE_LINK10"></a><a name="OLE_LINK9"></a><a name="OLE_LINK8"></a><a name="OLE_LINK7"></a><a name="OLE_LINK6"></a><a name="OLE_LINK5"><b><span lang="ZH-CN" style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-bidi-font-family:Arial;layout-grid-mode:
line"></span></b></a><b><span lang="EN-US" style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-bidi-font-family:Arial;layout-grid-mode:
line">14.4</span></b><b><span lang="ZH-CN" style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-bidi-font-family:Arial;layout-grid-mode:
line"></span></b><b><span lang="EN-US" style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-bidi-font-family:Arial;layout-grid-mode:
line">——</span></b><b><span lang="ZH-CN" style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-bidi-font-family:Arial;layout-grid-mode:
line">保密信息:例外情形</span></b><span lang="EN-US" style="font-size:14.0pt;
line-height:125%;font-family:SimSun;mso-hansi-font-family:Courier;mso-bidi-font-family:
Arial;layout-grid-mode:line"><o:p></o:p></span></p>

<p class="Level2Number" style="margin:0cm;margin-bottom:.0001pt;text-align:justify;
text-indent:28.05pt;line-height:125%;mso-pagination:none;mso-list:none;
tab-stops:35.4pt;layout-grid-mode:char;mso-layout-grid-align:none"><span lang="ZH-CN" style="font-size:14.0pt;
line-height:125%;font-family:仿宋;mso-hansi-font-family:仿宋;mso-bidi-font-family:
Arial;mso-fareast-language:ZH-CN;layout-grid-mode:line">此条款反映了《中华人民共和国反不正当竞争法》所界定的保密信息的性质和范围。</span><span lang="EN-US" style="font-size:14.0pt;
line-height:125%;font-family:仿宋;mso-hansi-font-family:仿宋;mso-bidi-font-family:
Arial;mso-fareast-language:ZH-CN;layout-grid-mode:line"><o:p></o:p></span></p>



<p class="MsoNormal"><a name="_GoBack"></a><span lang="EN-US">&nbsp;</span></p></body>

=>

<p style="text-align:justify;text-indent:28.05pt;line-height:125%;layout-grid-mode:char;"><strong><span style="layout-grid-mode:line;"></span></strong><strong><span style="layout-grid-mode:line;">14.4</span></strong><strong><span style="layout-grid-mode:line;"></span></strong><strong><span style="layout-grid-mode:line;">——</span></strong><strong><span style="layout-grid-mode:line;">保密信息:例外情形</span></strong></p><p style="margin-bottom:.0001pt;text-align:justify;text-indent:28.05pt;line-height:125%;layout-grid-mode:char;"><span style="layout-grid-mode:line;">此条款反映了《中华人民共和国反不正当竞争法》所界定的保密信息的性质和范围。</span></p><p><a name="_goback"></a>&nbsp;</p>
Binary file added tests/tickets/13590/_assets/tc2.docx
Binary file not shown.

0 comments on commit 60cbbe4

Please sign in to comment.