1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
/* bender-tags: editor */
bender.test(
{
'test: Loading self defined external plugin file paths': function() {
CKEDITOR.plugins.addExternal( 'myplugin', '%TEST_DIR%_assets/myplugins/sample/', 'my_plugin.js' );
CKEDITOR.plugins.load( 'myplugin', function() {
this.resume( function() {
assert.isTrue( CKEDITOR.plugins.get( 'myplugin' ).definition );
} );
}, this );
this.wait();
},
'errors thrown when required plugin specified in removePlugins list': function() {
var log = sinon.stub( CKEDITOR, 'error' );
CKEDITOR.plugins.add( 'errorplugin1', {
requires: 'errorplugin3,errorplugin2'
} );
CKEDITOR.plugins.add( 'errorplugin2', {
requires: 'errorplugin3,errorplugin4'
} );
CKEDITOR.plugins.add( 'errorplugin3', {
init: function( editor ) {
editor.plugin3Inited = true;
}
} );
CKEDITOR.plugins.add( 'errorplugin4', {
init: function( editor ) {
editor.plugin4Inited = true;
}
} );
setTimeout( function() {
CKEDITOR.replace( 'errortest', {
plugins: 'wysiwygarea,errorplugin1,errorplugin3',
extraPlugins: 'errorplugin2',
removePlugins: 'errorplugin3,errorplugin4',
on: {
instanceReady: function( evt ) {
resume( function() {
log.restore();
// plugin 3 reqed by plugin 1 and plugins 4 & 3 reqed by plugin 2.
assert.isTrue( log.calledThrice, 'CKEDITOR.error should be called three times.' );
var call;
for ( var i = 0; i < log.callCount; i++ ) {
call = log.getCall( i );
assert.areEqual( 'editor-plugin-required', call.args[ 0 ], 'Required plugin error should be logged.' );
}
// Plugins are corretly inited.
assert.isTrue( evt.editor.plugin3Inited );
assert.isTrue( evt.editor.plugin4Inited );
} );
}
}
} );
} );
wait();
},
// (#1791)
'test detect plugins conflict - with conflicting plugins': function() {
var editor = {
plugins: {
'plugin1': 1,
'plugin2': 2
}
},
spy = sinon.spy( CKEDITOR, 'warn' ),
result = CKEDITOR.editor.prototype.plugins.detectConflict.call( editor.plugins,
'plugin', [ 'plugin1', 'plugin2' ] );
spy.restore();
assert.isTrue( result, 'Conflicts detected.' );
assert.isTrue( spy.calledWith( 'editor-plugin-conflict', { plugin: 'plugin', replacedWith: 'plugin1' } ) );
},
// (#1791)
'test detect plugins conflict - without conflicting plugins': function() {
var editor = {
plugins: {}
},
spy = sinon.spy( CKEDITOR, 'warn' ),
result = CKEDITOR.editor.prototype.plugins.detectConflict.call( editor.plugins,
'plugin', [ 'plugin1', 'plugin2' ] );
spy.restore();
assert.isFalse( result, 'Conflicts not detected.' );
assert.isFalse( spy.called );
}
} );
|