Skip to content
Permalink
Browse files

Merge branch 't/12870b' into major

  • Loading branch information...
Reinmar committed Mar 12, 2015
2 parents bd40b5e + 54377cb commit e112a7663575cc74556cb90f4ed83e5b9207fe75
@@ -1348,6 +1348,33 @@
this.activeShiftEnterMode = shiftEnterMode;
this.fire( 'activeEnterModeChange' );
}
},

/**
* Shows a notification to the user.
*
* If the [notification](http://ckeditor.com/addons/notification) plugin is not enabled this function shows
* a normal alert with the given `message`. The `type` and `progressOrDuration` parameters are supported
* only by the [notification](http://ckeditor.com/addons/notification) plugin.
*
* If `notification` plugin is enabled, then this method creates and shows a new notification.
* By default the notification is shown over the editors contents, in the viewport if it is possible.
*
* See {@link CKEDITOR.plugins.notification}.
*
* @since 4.5
* @member CKEDITOR.editor
* @param {String} message Message displayed on the notification.
* @param {String} [type='info'] Type of the notification. Can be `'info'`, `'warning'`, `'success'` or `'progress'`.
* @param {Number} [progressOrDuration] If the type is `progress` the third parameter may be a progress from `0` to `1`
* (defaults to `0`). Otherwise the the third parameter may be a notification duration: after how many milliseconds
* notification should be closed automatically. `0` means that notification will not be closed automatically, user
* needs to close it manually. See {@link CKEDITOR.plugins.notification#duration}.
* Note that `warning` notifications will not be closed automatically.
* @returns {CKEDITOR.plugins.notification} Created and shown notification.
*/
showNotification: function( message ) {
alert( message ); // jshint ignore:line
}
} );
} )();
@@ -637,7 +637,7 @@

if ( !success ) {
// Show cutError or copyError.
alert( editor.lang.clipboard[ this.type + 'Error' ] ); // jshint ignore:line
editor.showNotification( editor.lang.clipboard[ this.type + 'Error' ] ); // jshint ignore:line
}

return success;
@@ -11,23 +11,7 @@ CKEDITOR.plugins.add( 'notification', {
init: function( editor ) {
editor._.notificationArea = new Area( editor );

/**
* Creates and shows a new notification. By default the notification is shown over the editors contents, in the
* viewport if it is possible.
*
* See {@link CKEDITOR.plugins.notification}.
*
* @since 4.5
* @member CKEDITOR.editor
* @param {String} message Message displayed on the notification.
* @param {String} [type='info'] Type of the notification. Can be `'info'`, `'warning'`, `'success'` or `'progress'`.
* @param {Number} [progressOrDuration] If the type is `progress` the third parameter may be a progress from `0` to `1`
* (defaults to `0`). Otherwise the the third parameter may be a notification duration: after how many milliseconds
* notification should be closed automatically. `0` means that notification will not be closed automatically, user
* needs to close it manually. See {@link CKEDITOR.plugins.notification#duration}.
* Note that `warning` notifications will not be closed automatically.
* @returns {CKEDITOR.plugins.notification} Created and shown notification.
*/
// Overwrites default `editor.showNotification`.
editor.showNotification = function( message, type, progressOrDuration ) {
var progress, duration;

@@ -1159,7 +1159,7 @@
try {
data = dataProcessor.toHtml( data );
} catch ( e ) {
alert( editor.lang.pastefromword.error ); // jshint ignore:line
editor.showNotification( editor.lang.pastefromword.error );
}

// Below post processing those things that are unable to delivered by filter rules.
@@ -4,6 +4,12 @@ CKEDITOR.replaceClass = 'ckeditor';
bender.editor = true;

bender.test( {
tearDown: function() {
if ( typeof window.alert.restore === 'function' ) {
window.alert.restore();
}
},

test_name: function() {
assert.areSame( 'editor1', CKEDITOR.instances.editor1.name );
},
@@ -334,6 +340,23 @@ bender.test( {
assert.areSame( CKEDITOR.ENTER_BR, editor.activeEnterMode, '2nd activeEnterMode' );
assert.areSame( CKEDITOR.ENTER_BR, editor.activeShiftEnterMode, '2nd activeShiftEnterMode' );
} );
}
},

'test showNotification': function() {
bender.editorBot.create( {
name: 'no_notification',
creator: 'inline',
config: {
removePlugins: 'notification'
}
}, function( bot ) {
var editor = bot.editor,
alert = sinon.stub( window, 'alert' );

editor.showNotification( 'foo' );

assert.areSame( 1, alert.callCount );
assert.isTrue( alert.calledWith( 'foo' ) );
} );
}
} );
@@ -0,0 +1,27 @@
/* bender-tags: editor,unit,clipboard */
/* bender-ckeditor-plugins: toolbar,clipboard */

'use strict';

bender.editor = true;

bender.test( {
'test showNotification if command execution fail': function() {
if ( CKEDITOR.env.ie ) {
assert.ignore();
}

var bot = this.editorBot,
editor = this.editor;

bot.setHtmlWithSelection( '<p>[foo]</p>' );

sinon.stub( editor.document.$, 'execCommand' ).withArgs( 'cut' ).throws( '' );

sinon.stub( editor, 'showNotification', function() {
assert.isTrue( true );
} );

editor.execCommand( 'cut' );
}
} );
@@ -0,0 +1,17 @@
<h1>With notification:</h1>
<textarea cols="80" id="notification" name="notification" rows="10">
&lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</textarea>
<h1>With alert:</h1>
<textarea cols="80" id="alert" name="alert" rows="10">
&lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</textarea>
<script>
CKEDITOR.replace( 'alert', {
removePlugins: 'notification'
} );
CKEDITOR.replace( 'notification', {
extraPlugins: 'notification'
} );
</script>
@@ -0,0 +1,12 @@
@bender-tags: 4.5.0
@bender-ui: collapsed
@bender-ckeditor-plugins: clipboard, wysiwygarea, toolbar, undo, basicstyles, notification, floatingspace, pastefromword

1. Select some text in the first editor.
2. Press "Cut" or "Copy" button, on IE you will see security dialog, press "Don't allow" button.

***Expected result:*** you should see information notification.

3. Repeat with the second editor.

***Expected result:*** you should see error in dialog.
@@ -7,6 +7,12 @@
bender.editor = true;

bender.test( {
'tearDown': function() {
if ( this.editor.showNotification.restore ) {
this.editor.showNotification.restore();
}
},

'test whether default filter is loaded': function() {
var editor = this.editor;

@@ -64,6 +70,36 @@
editor.execCommand( 'pastefromword' );
} );
this.wait();
},

'test showNotification in case of exception': function() {
var editor = this.editor;

editor.once( 'beforeCleanWord', function( evt ) {
evt.data.filter.addRules( {
elements: {
'^': function() {
throw 'foo';
}
}
} );
} );

sinon.stub( editor, 'showNotification', function() {
resume( function() {
assert.isTrue( true );
} );
} );

editor.fire( 'paste', {
type: 'auto',
// This data will be recognized as pasted from Word.
dataValue: '<p>text <strong class="MsoNormal">text</strong></p>',
method: 'paste',
dataTransfer: new CKEDITOR.plugins.clipboard.dataTransfer()
} );

wait();
}
} );

0 comments on commit e112a76

Please sign in to comment.
You can’t perform that action at this time.