@@ -28,28 +28,116 @@ 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
3167
3268 @field = $ ' <textarea>' , class : ' js-task-list-field' , text : """
3369 - [x] complete
3470 - [ ] incomplete
3571 - [#{ @nbsp } ] incompleteNBSP
72+ > - [x] quoted complete
73+ > - [ ] quoted incomplete
74+ > > - [x] inner complete
75+ > > - [ ] inner incomplete
3676 """
3777
3878 @changes =
3979 toComplete : """
4080 - [ ] complete
4181 - [ ] incomplete
4282 - [#{ @nbsp } ] incompleteNBSP
83+ > - [x] quoted complete
84+ > - [ ] quoted incomplete
85+ > > - [x] inner complete
86+ > > - [ ] inner incomplete
87+ """
88+ toQuotedComplete : """
89+ - [x] complete
90+ - [ ] incomplete
91+ - [#{ @nbsp } ] incompleteNBSP
92+ > - [ ] quoted complete
93+ > - [ ] quoted incomplete
94+ > > - [x] inner complete
95+ > > - [ ] inner incomplete
96+ """
97+ toInnerComplete : """
98+ - [x] complete
99+ - [ ] incomplete
100+ - [#{ @nbsp } ] incompleteNBSP
101+ > - [x] quoted complete
102+ > - [ ] quoted incomplete
103+ > > - [ ] inner complete
104+ > > - [ ] inner incomplete
43105 """
44106 toIncomplete : """
45107 - [x] complete
46108 - [x] incomplete
47109 - [#{ @nbsp } ] incompleteNBSP
110+ > - [x] quoted complete
111+ > - [ ] quoted incomplete
112+ > > - [x] inner complete
113+ > > - [ ] inner incomplete
114+ """
115+ toQuotedIncomplete : """
116+ - [x] complete
117+ - [ ] incomplete
118+ - [#{ @nbsp } ] incompleteNBSP
119+ > - [x] quoted complete
120+ > - [x] quoted incomplete
121+ > > - [x] inner complete
122+ > > - [ ] inner incomplete
123+ """
124+ toInnerIncomplete : """
125+ - [x] complete
126+ - [ ] incomplete
127+ - [#{ @nbsp } ] incompleteNBSP
128+ > - [x] quoted complete
129+ > - [ ] quoted incomplete
130+ > > - [x] inner complete
131+ > > - [x] inner incomplete
48132 """
49133 toIncompleteNBSP : """
50134 - [x] complete
51135 - [ ] incomplete
52136 - [x] incompleteNBSP
137+ > - [x] quoted complete
138+ > - [ ] quoted incomplete
139+ > > - [x] inner complete
140+ > > - [ ] inner incomplete
53141 """
54142
55143 @completeItem .append @completeCheckbox
@@ -67,6 +155,32 @@ module "TaskList updates",
67155 @container .append @list
68156 @container .append @field
69157
158+ @quotedCompleteItem .append @quotedCompleteCheckbox
159+ @quotedList .append @quotedCompleteItem
160+ @quotedCompleteItem .expectedIndex = 4
161+
162+ @quotedIncompleteItem .append @quotedIncompleteCheckbox
163+ @quotedList .append @quotedIncompleteItem
164+ @quotedIncompleteItem .expectedIndex = 5
165+
166+ @blockquote .append @quotedList
167+ @blockquote .append @field
168+
169+ @innerCompleteItem .append @innerCompleteCheckbox
170+ @innerList .append @innerCompleteItem
171+ @innerCompleteItem .expectedIndex = 6
172+
173+ @innerIncompleteItem .append @innerIncompleteCheckbox
174+ @innerList .append @innerIncompleteItem
175+ @innerIncompleteItem .expectedIndex = 7
176+
177+ @innerBlockquote .append @innerList
178+ @innerBlockquote .append @innerField
179+
180+ @blockquote .append @innerBlockquote
181+
182+ @container .append @blockquote
183+
70184 $ (' #qunit-fixture' ).append (@container )
71185 @container .taskList ()
72186
@@ -115,3 +229,60 @@ asyncTest "updates the source for items with non-breaking spaces", ->
115229 , 20
116230
117231 @incompleteNBSPCheckbox .click ()
232+
233+ asyncTest " updates the source of a quoted item, marking the incomplete item as complete" , ->
234+ expect 3
235+
236+ @field .on ' tasklist:changed' , (event , index , checked ) =>
237+ ok checked
238+ equal index, @quotedIncompleteItem .expectedIndex
239+ equal @field .val (), @changes .toQuotedIncomplete
240+
241+ setTimeout ->
242+ start ()
243+ , 20
244+
245+ @quotedIncompleteCheckbox .click ()
246+
247+ asyncTest " updates the source of a quoted item, marking the complete item as incomplete" , ->
248+ expect 3
249+
250+ @field .on ' tasklist:changed' , (event , index , checked ) =>
251+ ok ! checked
252+ equal index, @quotedCompleteItem .expectedIndex
253+ equal @field .val (), @changes .toQuotedComplete
254+
255+ setTimeout ->
256+ start ()
257+ , 20
258+
259+ @quotedCompleteCheckbox .click ()
260+
261+ asyncTest " updates the source of a quoted quoted item, marking the incomplete item as complete" , ->
262+ expect 3
263+
264+ @field .on ' tasklist:changed' , (event , index , checked ) =>
265+ ok checked
266+ equal index, @innerIncompleteItem .expectedIndex
267+ equal @field .val (), @changes .toInnerIncomplete
268+
269+ setTimeout ->
270+ start ()
271+ , 20
272+
273+ @innerIncompleteCheckbox .click ()
274+
275+ asyncTest " updates the source of a quoted quoted item, marking the complete item as incomplete" , ->
276+ expect 3
277+
278+ @field .on ' tasklist:changed' , (event , index , checked ) =>
279+ ok ! checked
280+ equal index, @innerCompleteItem .expectedIndex
281+ equal @field .val (), @changes .toInnerComplete
282+
283+ setTimeout ->
284+ start ()
285+ , 20
286+
287+ @innerCompleteCheckbox .click ()
288+
0 commit comments