1
+ /* bender-tags: editor,unit,widgetcore */
1
2
/* bender-ckeditor-plugins: widget */
2
3
3
- ( function ( ) {
4
+ ( function ( ) {
4
5
'use strict' ;
5
6
7
+ var data = '<p id="p1">bar<b id="w1" data-widget="testwidget">foo</b></p>' ,
8
+ getWidgetById = widgetTestsTools . getWidgetById ;
9
+
6
10
bender . test ( {
7
11
'async:init' : function ( ) {
8
12
var tc = this ;
9
13
10
14
bender . tools . setUpEditors ( {
11
15
editor : {
12
16
name : 'editor1' ,
13
- startupData : '<b id="one" data-widget="testwidget">foo</b><b id="two" data-widget="testwidget">foo</b> ' ,
17
+ creator : 'inline ' ,
14
18
config : {
15
19
allowedContent : true ,
16
20
on : {
17
21
pluginsLoaded : function ( evt ) {
18
- var ed = evt . editor ;
19
-
20
- ed . widgets . add ( 'testwidget' , { } ) ;
22
+ evt . editor . widgets . add ( 'testwidget' , { } ) ;
21
23
}
22
24
}
23
25
}
24
26
}
25
27
} , function ( editors , bots ) {
26
- tc . editor = bots . editor . editor ;
28
+ tc . editors = editors ;
29
+ tc . editorBots = bots ;
27
30
28
31
tc . callback ( ) ;
29
32
} ) ;
30
33
} ,
31
34
32
35
'test check dirty is false after widget focus' : function ( ) {
33
- var widget = this . editor . widgets . instances [ 1 ] ;
36
+ var editor = this . editors . editor ;
37
+
38
+ this . editorBots . editor . setData ( data , function ( ) {
39
+ var widget = getWidgetById ( editor , 'w1' ) ;
40
+
41
+ editor . resetDirty ( ) ;
42
+ widget . focus ( ) ;
43
+ assert . isFalse ( editor . checkDirty ( ) ) ;
44
+ } ) ;
45
+ } ,
46
+
47
+ 'test check dirty is false after widget blur' : function ( ) {
48
+ var editor = this . editors . editor ;
49
+
50
+ this . editorBots . editor . setData ( data , function ( ) {
51
+ var widget = getWidgetById ( editor , 'w1' ) ;
34
52
35
- assert . isFalse ( this . editor . checkDirty ( ) ) ;
36
- widget . focus ( ) ;
37
- assert . isFalse ( this . editor . checkDirty ( ) ) ;
53
+ widget . focus ( ) ;
54
+ editor . resetDirty ( ) ;
55
+
56
+ var range = editor . createRange ( ) ;
57
+ range . moveToPosition ( editor . document . getById ( 'p1' ) , CKEDITOR . POSITION_AFTER_START ) ;
58
+ editor . getSelection ( ) . selectRanges ( [ range ] ) ;
59
+
60
+ assert . isFalse ( editor . checkDirty ( ) ) ;
61
+ } ) ;
38
62
} ,
39
63
40
- 'test check dirty is true after modifications' : function ( ) {
41
- var widget = this . editor . widgets . instances [ 1 ] ;
64
+ 'test check dirty keeps to be true after widget focus' : function ( ) {
65
+ var editor = this . editors . editor ;
66
+
67
+ this . editorBots . editor . setData ( data , function ( ) {
68
+ var widget = getWidgetById ( editor , 'w1' ) ;
42
69
43
- assert . isFalse ( this . editor . checkDirty ( ) ) ;
70
+ // Make some changes in editor.
71
+ widget . addClass ( 'test' ) ;
72
+ assert . isTrue ( editor . checkDirty ( ) , 'before focus' ) ;
44
73
45
- // Clear selection
46
- var range = this . editor . createRange ( ) ;
47
- var lastElement = this . editor . document . getById ( 'two' ) ;
48
- range . moveToPosition ( lastElement , CKEDITOR . POSITION_BEFORE_END ) ;
49
- this . editor . getSelection ( ) . selectRanges ( [ range ] ) ;
74
+ widget . focus ( ) ;
75
+ assert . isTrue ( editor . checkDirty ( ) , 'after focus' ) ;
76
+ } ) ;
77
+ } ,
50
78
51
- assert . isFalse ( this . editor . checkDirty ( ) ) ;
79
+ 'test check dirty keeps to be false after widget blur' : function ( ) {
80
+ var editor = this . editors . editor ;
52
81
53
- // Make some changes in editor
54
- widget . addClass ( 'test ' ) ;
82
+ this . editorBots . editor . setData ( data , function ( ) {
83
+ var widget = getWidgetById ( editor , 'w1 ' ) ;
55
84
56
- assert . isTrue ( this . editor . checkDirty ( ) ) ;
57
- widget . focus ( ) ;
58
- assert . isTrue ( this . editor . checkDirty ( ) ) ;
85
+ widget . focus ( ) ;
86
+ // Make some changes in editor.
87
+ widget . addClass ( 'test' ) ;
88
+ assert . isTrue ( editor . checkDirty ( ) , 'before blur' ) ;
89
+
90
+ var range = editor . createRange ( ) ;
91
+ range . moveToPosition ( editor . document . getById ( 'p1' ) , CKEDITOR . POSITION_AFTER_START ) ;
92
+ editor . getSelection ( ) . selectRanges ( [ range ] ) ;
93
+ assert . isTrue ( editor . checkDirty ( ) , 'after blur' ) ;
94
+ } ) ;
59
95
}
60
96
} ) ;
61
97
62
- } ) ( ) ;
98
+ } ) ( ) ;
0 commit comments