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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
/* bender-tags: widgetcore */
/* bender-ckeditor-plugins: widget */
( function() {
'use-strict';
bender.editor = {
config: {
allowedContent: true
}
};
// #605
bender.test( {
init: function() {
this.editor.widgets.add( 'spanwidget', {
upcast: function( element ) {
return element.name == 'span';
}
} );
this.editor.widgets.add( 'divwidget', {
upcast: function( element ) {
return element.name == 'div';
}
} );
this.editor.widgets.add( 'smallwidget' );
},
'test trailing space': function() {
var editor = this.editor;
var listener;
listener = editor.on( 'dataReady', function() {
listener.removeListener();
resume( function() {
assert.areSame( 'lorem ' , editor.editable().getElementsByTag( 'span' ).$[ 1 ].innerHTML, 'innerHTML', 'innerHtml string' );
assert.areSame( '<p><span>lorem </span>ipsum</p>', editor.editable().getData(), 'editor data' );
} );
} );
editor.setData( '<span>lorem </span>ipsum' );
wait();
},
'test initial, trailing space with additional signs': function() {
var editor = this.editor,
listener;
listener = editor.on( 'dataReady', function() {
listener.removeListener();
resume( function() {
assert.areSame( ' ipsum dolor sit ' , editor.editable().getElementsByTag( 'span' ).$[ 1 ].innerHTML, 'innerHTML', 'innerHtml string' );
assert.areSame( '<p>lorem<span> ipsum dolor sit </span>amet</p>', editor.editable().getData(), 'editor data' );
} );
} );
editor.setData( '<p>lorem<span> ipsum dolor sit </span>amet</p>' );
wait();
},
'test initial and trailing space for nested structure': function() {
var editor = this.editor,
listener;
listener = editor.on( 'dataReady', function() {
listener.removeListener();
resume( function() {
assert.areSame(
'<strong data-cke-white-space-first="1"> ipsum dolor</strong> sit ',
editor.editable().getElementsByTag( 'span' ).$[ 1 ].innerHTML.toLowerCase(), 'innerHTML', 'innerHtml string' );
assert.areSame(
'<p>lorem<span><strong> ipsum dolor</strong> sit </span>amet</p>',
editor.editable().getData(), 'editor data' );
} );
} );
editor.setData( '<p>lorem<span><strong> ipsum dolor</strong> sit </span>amet</p>' );
wait();
},
'test block widget': function() {
var editor = this.editor,
listener;
listener = editor.on( 'dataReady', function() {
listener.removeListener();
resume( function() {
assert.areSame(
'lorem ipsum dolor sit',
editor.editable().getElementsByTag( 'div' ).$[ 1 ].innerHTML.toLowerCase(), 'innerHTML', 'innerHtml string' );
assert.areSame(
'<div>lorem ipsum dolor sit</div>',
editor.editable().getData(), 'editor data' );
} );
} );
editor.setData( '<div> lorem ipsum dolor sit </div>' );
wait();
},
'test widget without upcast method': function() {
var editor = this.editor,
listener;
listener = editor.on( 'dataReady', function() {
listener.removeListener();
resume( function() {
assert.areSame(
' lorem ipsum dolor sit ',
editor.editable().getElementsByTag( 'small' ).$[ 0 ].innerHTML.toLowerCase(), 'innerHTML', 'innerHtml string' );
assert.areSame(
'<p>lorem<small data-widget="smallwidget"> lorem ipsum dolor sit </small>ipsum</p>',
editor.editable().getData(), 'editor data' );
} );
} );
editor.setData( '<p>lorem<small data-widget="smallwidget"> lorem ipsum dolor sit </small>ipsum</p>' );
wait();
}
} );
} )();
|