@@ -28,28 +28,170 @@ module "TaskList updates",
2828 class : ' task-list-item-checkbox'
2929 disabled : true
3030 checked : false
31+
32+ @blockquote = $ ' <blockquote>'
33+
34+ @quotedList = $ ' <ul>' , class : ' task-list'
35+
36+ @quotedCompleteItem = $ ' <li>' , class : ' task-list-item'
37+ @quotedCompleteCheckbox = $ ' <input>' ,
38+ type : ' checkbox'
39+ class : ' task-list-item-checkbox'
40+ disabled : true
41+ checked : true
42+
43+ @quotedIncompleteItem = $ ' <li>' , class : ' task-list-item'
44+ @quotedIncompleteCheckbox = $ ' <input>' ,
45+ type : ' checkbox'
46+ class : ' task-list-item-checkbox'
47+ disabled : true
48+ checked : false
49+
50+ @innerBlockquote = $ ' <blockquote>'
51+
52+ @innerList = $ ' <ul>' , class : ' task-list'
53+
54+ @innerCompleteItem = $ ' <li>' , class : ' task-list-item'
55+ @innerCompleteCheckbox = $ ' <input>' ,
56+ type : ' checkbox'
57+ class : ' task-list-item-checkbox'
58+ disabled : true
59+ checked : true
60+
61+ @innerIncompleteItem = $ ' <li>' , class : ' task-list-item'
62+ @innerIncompleteCheckbox = $ ' <input>' ,
63+ type : ' checkbox'
64+ class : ' task-list-item-checkbox'
65+ disabled : true
66+ checked : false
67+
68+ @orderedList = $ ' <ol>' , class : ' task-list'
69+
70+ @orderedCompleteItem = $ ' <li>' , class : ' task-list-item'
71+ @orderedCompleteCheckbox = $ ' <input>' ,
72+ type : ' checkbox'
73+ class : ' task-list-item-checkbox'
74+ disabled : true
75+ checked : true
76+
77+ @orderedIncompleteItem = $ ' <li>' , class : ' task-list-item'
78+ @orderedIncompleteCheckbox = $ ' <input>' ,
79+ type : ' checkbox'
80+ class : ' task-list-item-checkbox'
81+ disabled : true
82+ checked : false
3183
3284 @field = $ ' <textarea>' , class : ' js-task-list-field' , text : """
3385 - [x] complete
3486 - [ ] incomplete
3587 - [#{ @nbsp } ] incompleteNBSP
88+ > - [x] quoted complete
89+ > - [ ] quoted incomplete
90+ >> - [x] inner complete
91+ > > - [ ] inner incomplete
92+ > 0. [x] ordered complete
93+ > 0. [ ] ordered incomplete
3694 """
3795
3896 @changes =
3997 toComplete : """
4098 - [ ] complete
4199 - [ ] incomplete
42100 - [#{ @nbsp } ] incompleteNBSP
101+ > - [x] quoted complete
102+ > - [ ] quoted incomplete
103+ >> - [x] inner complete
104+ > > - [ ] inner incomplete
105+ > 0. [x] ordered complete
106+ > 0. [ ] ordered incomplete
107+ """
108+ toQuotedComplete : """
109+ - [x] complete
110+ - [ ] incomplete
111+ - [#{ @nbsp } ] incompleteNBSP
112+ > - [ ] quoted complete
113+ > - [ ] quoted incomplete
114+ >> - [x] inner complete
115+ > > - [ ] inner incomplete
116+ > 0. [x] ordered complete
117+ > 0. [ ] ordered incomplete
118+ """
119+ toInnerComplete : """
120+ - [x] complete
121+ - [ ] incomplete
122+ - [#{ @nbsp } ] incompleteNBSP
123+ > - [x] quoted complete
124+ > - [ ] quoted incomplete
125+ >> - [ ] inner complete
126+ > > - [ ] inner incomplete
127+ > 0. [x] ordered complete
128+ > 0. [ ] ordered incomplete
129+ """
130+ toOrderedComplete : """
131+ - [x] complete
132+ - [ ] incomplete
133+ - [#{ @nbsp } ] incompleteNBSP
134+ > - [x] quoted complete
135+ > - [ ] quoted incomplete
136+ >> - [x] inner complete
137+ > > - [ ] inner incomplete
138+ > 0. [ ] ordered complete
139+ > 0. [ ] ordered incomplete
43140 """
44141 toIncomplete : """
45142 - [x] complete
46143 - [x] incomplete
47144 - [#{ @nbsp } ] incompleteNBSP
145+ > - [x] quoted complete
146+ > - [ ] quoted incomplete
147+ >> - [x] inner complete
148+ > > - [ ] inner incomplete
149+ > 0. [x] ordered complete
150+ > 0. [ ] ordered incomplete
151+ """
152+ toQuotedIncomplete : """
153+ - [x] complete
154+ - [ ] incomplete
155+ - [#{ @nbsp } ] incompleteNBSP
156+ > - [x] quoted complete
157+ > - [x] quoted incomplete
158+ >> - [x] inner complete
159+ > > - [ ] inner incomplete
160+ > 0. [x] ordered complete
161+ > 0. [ ] ordered incomplete
162+ """
163+ toInnerIncomplete : """
164+ - [x] complete
165+ - [ ] incomplete
166+ - [#{ @nbsp } ] incompleteNBSP
167+ > - [x] quoted complete
168+ > - [ ] quoted incomplete
169+ >> - [x] inner complete
170+ > > - [x] inner incomplete
171+ > 0. [x] ordered complete
172+ > 0. [ ] ordered incomplete
173+ """
174+ toOrderedIncomplete : """
175+ - [x] complete
176+ - [ ] incomplete
177+ - [#{ @nbsp } ] incompleteNBSP
178+ > - [x] quoted complete
179+ > - [ ] quoted incomplete
180+ >> - [x] inner complete
181+ > > - [ ] inner incomplete
182+ > 0. [x] ordered complete
183+ > 0. [x] ordered incomplete
48184 """
49185 toIncompleteNBSP : """
50186 - [x] complete
51187 - [ ] incomplete
52188 - [x] incompleteNBSP
189+ > - [x] quoted complete
190+ > - [ ] quoted incomplete
191+ >> - [x] inner complete
192+ > > - [ ] inner incomplete
193+ > 0. [x] ordered complete
194+ > 0. [ ] ordered incomplete
53195 """
54196
55197 @completeItem .append @completeCheckbox
@@ -67,6 +209,43 @@ module "TaskList updates",
67209 @container .append @list
68210 @container .append @field
69211
212+ @quotedCompleteItem .append @quotedCompleteCheckbox
213+ @quotedList .append @quotedCompleteItem
214+ @quotedCompleteItem .expectedIndex = 4
215+
216+ @quotedIncompleteItem .append @quotedIncompleteCheckbox
217+ @quotedList .append @quotedIncompleteItem
218+ @quotedIncompleteItem .expectedIndex = 5
219+
220+ @blockquote .append @quotedList
221+
222+ @innerCompleteItem .append @innerCompleteCheckbox
223+ @innerList .append @innerCompleteItem
224+ @innerCompleteItem .expectedIndex = 6
225+
226+ @innerIncompleteItem .append @innerIncompleteCheckbox
227+ @innerList .append @innerIncompleteItem
228+ @innerIncompleteItem .expectedIndex = 7
229+
230+ @innerBlockquote .append @innerList
231+ @innerBlockquote .append @innerField
232+
233+ @blockquote .append @innerBlockquote
234+
235+ @container .append @blockquote
236+
237+ @orderedCompleteItem .append @orderedCompleteCheckbox
238+ @orderedList .append @orderedCompleteItem
239+ @orderedCompleteItem .expectedIndex = 8
240+
241+ @orderedIncompleteItem .append @orderedIncompleteCheckbox
242+ @orderedList .append @orderedIncompleteItem
243+ @orderedIncompleteItem .expectedIndex = 9
244+
245+ @container .append @orderedList
246+
247+ @blockquote .append @field
248+
70249 $ (' #qunit-fixture' ).append (@container )
71250 @container .taskList ()
72251
@@ -115,3 +294,88 @@ asyncTest "updates the source for items with non-breaking spaces", ->
115294 , 20
116295
117296 @incompleteNBSPCheckbox .click ()
297+
298+ asyncTest " updates the source of a quoted item, marking the incomplete item as complete" , ->
299+ expect 3
300+
301+ @field .on ' tasklist:changed' , (event , index , checked ) =>
302+ ok checked
303+ equal index, @quotedIncompleteItem .expectedIndex
304+ equal @field .val (), @changes .toQuotedIncomplete
305+
306+ setTimeout ->
307+ start ()
308+ , 20
309+
310+ @quotedIncompleteCheckbox .click ()
311+
312+ asyncTest " updates the source of a quoted item, marking the complete item as incomplete" , ->
313+ expect 3
314+
315+ @field .on ' tasklist:changed' , (event , index , checked ) =>
316+ ok ! checked
317+ equal index, @quotedCompleteItem .expectedIndex
318+ equal @field .val (), @changes .toQuotedComplete
319+
320+ setTimeout ->
321+ start ()
322+ , 20
323+
324+ @quotedCompleteCheckbox .click ()
325+
326+ asyncTest " updates the source of a quoted quoted item, marking the incomplete item as complete" , ->
327+ expect 3
328+
329+ @field .on ' tasklist:changed' , (event , index , checked ) =>
330+ ok checked
331+ equal index, @innerIncompleteItem .expectedIndex
332+ equal @field .val (), @changes .toInnerIncomplete
333+
334+ setTimeout ->
335+ start ()
336+ , 20
337+
338+ @innerIncompleteCheckbox .click ()
339+
340+ asyncTest " updates the source of a quoted quoted item, marking the complete item as incomplete" , ->
341+ expect 3
342+
343+ @field .on ' tasklist:changed' , (event , index , checked ) =>
344+ ok ! checked
345+ equal index, @innerCompleteItem .expectedIndex
346+ equal @field .val (), @changes .toInnerComplete
347+
348+ setTimeout ->
349+ start ()
350+ , 20
351+
352+ @innerCompleteCheckbox .click ()
353+
354+ asyncTest " updates the source of an ordered list item, marking the incomplete item as complete" , ->
355+ expect 3
356+
357+ @field .on ' tasklist:changed' , (event , index , checked ) =>
358+ ok checked
359+ equal index, @orderedIncompleteItem .expectedIndex
360+ equal @field .val (), @changes .toOrderedIncomplete
361+
362+ setTimeout ->
363+ start ()
364+ , 20
365+
366+ @orderedIncompleteCheckbox .click ()
367+
368+ asyncTest " updates the source of an ordered list item, marking the complete item as incomplete" , ->
369+ expect 3
370+
371+ @field .on ' tasklist:changed' , (event , index , checked ) =>
372+ ok ! checked
373+ equal index, @orderedCompleteItem .expectedIndex
374+ equal @field .val (), @changes .toOrderedComplete
375+
376+ setTimeout ->
377+ start ()
378+ , 20
379+
380+ @orderedCompleteCheckbox .click ()
381+
0 commit comments