From 7ac99d4e879bb432ecd62d5b3f4480b5f905bf90 Mon Sep 17 00:00:00 2001 From: Sam Ziemer Date: Fri, 30 Oct 2015 12:09:16 -0700 Subject: [PATCH 1/3] #13887 remove any non-ascii or white space character --- plugins/link/dialogs/link.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/link/dialogs/link.js b/plugins/link/dialogs/link.js index 7af16db1281..48cac52c7b0 100755 --- a/plugins/link/dialogs/link.js +++ b/plugins/link/dialogs/link.js @@ -464,7 +464,7 @@ if ( !data.target ) data.target = {}; - data.target.name = this.getValue().replace( /\W/gi, '' ); + data.target.name = this.getValue().replace( /([^\x00-\x7F]|\s)/gi, '' ); } } ] }, From 44819660e525ee04d7164f2b0e18b4312020eec8 Mon Sep 17 00:00:00 2001 From: "m.lewandowski" Date: Sun, 1 Nov 2015 17:11:14 +0100 Subject: [PATCH 2/3] Added tests. --- tests/plugins/link/link.js | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/tests/plugins/link/link.js b/tests/plugins/link/link.js index 0e664eb951a..20efa20d1b0 100644 --- a/tests/plugins/link/link.js +++ b/tests/plugins/link/link.js @@ -229,6 +229,57 @@ // selection is [b] or [b]. assert.areSame( 'b', editor.getSelection().getSelectedText(), 'Link selected' ); } ); + }, + + // #13887 + 'test link target special chars': function() { + var bot = this.editorBot; + + bot.setHtmlWithSelection( '[foo]' ); + + bot.dialog( 'link', function( dialog ) { + var funnyTargetValue = 'foo-b!ar^$`*('; + + dialog.setValueOf( 'target', 'linkTargetType', 'frame' ); + dialog.setValueOf( 'target', 'linkTargetName', funnyTargetValue ); + + dialog.getButton( 'ok' ).click(); + + assert.areSame( 'foo', bot.getData( true ) ); + } ); + }, + + 'test link target keywords': function() { + var bot = this.editorBot; + + bot.setHtmlWithSelection( '[foo]' ); + + bot.dialog( 'link', function( dialog ) { + dialog.setValueOf( 'target', 'linkTargetType', 'frame' ); + dialog.setValueOf( 'target', 'linkTargetName', '_self' ); + + dialog.getButton( 'ok' ).click(); + + assert.areSame( 'foo', bot.getData( true ) ); + } ); + }, + + // #5278 + 'test link target with space': function() { + var bot = this.editorBot; + + bot.setHtmlWithSelection( '[foo]' ); + + bot.dialog( 'link', function( dialog ) { + var funnyTargetValue = ' foo bar'; + + dialog.setValueOf( 'target', 'linkTargetType', 'frame' ); + dialog.setValueOf( 'target', 'linkTargetName', funnyTargetValue ); + + dialog.getButton( 'ok' ).click(); + + assert.areSame( 'foo', bot.getData( true ) ); + } ); } } ); } )(); \ No newline at end of file From b55b7e344cf6b68180122b5027367f965e967bc1 Mon Sep 17 00:00:00 2001 From: "m.lewandowski" Date: Sun, 1 Nov 2015 17:26:28 +0100 Subject: [PATCH 3/3] Changelog entry. --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index e0cfdadc9d0..edd05c502b9 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -9,6 +9,7 @@ New Features: Fixed Issues: +* [#13887](https://dev.ckeditor.com/ticket/13887): Fixed: Link target now supports wider ASCII character range. Thanks to [SamZiemer](https://github.com/SamZiemer)! * [#13790](https://dev.ckeditor.com/ticket/13790): Fixed: Allow for the iframe having been removed already. Thanks to [Stefan Rijnhart](https://github.com/StefanRijnhart)! * [#13803](https://dev.ckeditor.com/ticket/13803): Fixed: Allow the editor to be destroyed before being fully initialized. Thanks to [Cyril Fluck](https://github.com/cyril-sf)! * [#13361](http://dev.ckeditor.com/ticket/13361): Fixed: Images fail when site path includes parentheses because background-image path needs single-quotes around URL value.