@@ -44,6 +44,16 @@ def Generate_markdown_testfile()
4444 et quas molestias excepturi sint~~ occaecati cupiditate non provident,
4545 similique sunt in culpa qui officia ~~deserunt mollitia animi, id est
4646 ~~laborum et dolorum fuga.
47+
48+ Et harum quidem rerum facilis est et expedita distinctio. Nam libero
49+ tempore, cum soluta nobis est (eligendi optio cumque nihil) impedit quo
50+ minus id quod maxime [placeat facere possimus, omnis] voluptas assumenda
51+ est, omnis " dolor repellendus" . Temporibus autem quibusdam et aut
52+ officiis debitis aut {rerum necessitatibus} saepe eveniet ut et
53+ voluptates repudiandae sint et molestiae non recusandae. Itaque earum
54+ rerum hic tenetur ' a sapiente' delectus, ut aut reiciendis voluptatibus
55+ maiores alias consequatur aut perferendis doloribus asperiores
56+ repellat.
4757 END
4858 writefile (lines , src_name)
4959enddef
@@ -154,3 +164,91 @@ def g:Test_IsInRange()
154164 :% bw !
155165 Cleanup_markdown_testfile ()
156166enddef
167+
168+
169+
170+ def g: Test_GetTextObject ()
171+ Generate_markdown_testfile ()
172+ exe $ " edit {src_name}"
173+
174+ def AssertGetTextObject (expected_value: dict <any> , actual_value: dict <any> )
175+ assert_equal (expected_value.text, actual_value.text)
176+ assert_equal (expected_value.start_pos, getcharpos (actual_value.start_pos))
177+ assert_equal (expected_value.end_pos, getcharpos (actual_value.end_pos))
178+ enddef
179+
180+ # test ' iw'
181+ cursor (1 , 8 )
182+ var expected_value = {text: ' perspiciatis' ,
183+ start_pos: [0 , 1 , 8 , 0 ],
184+ end_pos: [0 , 1 , 19 , 0 ]}
185+
186+ var actual_value = utils.GetTextObject (' iw' )
187+
188+ # test ' iW'
189+ actual_value = utils.GetTextObject (' iW' )
190+ AssertGetTextObject (expected_value, actual_value)
191+
192+ # test ' aw'
193+ expected_value = {text: ' perspiciatis ' ,
194+ start_pos: [0 , 1 , 8 , 0 ],
195+ end_pos: [0 , 1 , 20 , 0 ]}
196+
197+ actual_value = utils.GetTextObject (' aw' )
198+ AssertGetTextObject (expected_value, actual_value)
199+
200+ # test ' aW'
201+ actual_value = utils.GetTextObject (' aW' )
202+ AssertGetTextObject (expected_value, actual_value)
203+
204+ # Test ' i('
205+ cursor (25 , 33 )
206+ expected_value = {text: ' eligendi optio cumque nihil' ,
207+ start_pos: [0 , 25 , 32 , 0 ],
208+ end_pos: [0 , 25 , 58 , 0 ]}
209+
210+ actual_value = utils.GetTextObject (' i(' )
211+ AssertGetTextObject (expected_value, actual_value)
212+ # Test ' yib'
213+ actual_value = utils.GetTextObject (' ib' )
214+ AssertGetTextObject (expected_value, actual_value)
215+
216+ # Test ' a('
217+ expected_value = {text: ' (eligendi optio cumque nihil)' ,
218+ start_pos: [0 , 25 , 31 , 0 ],
219+ end_pos: [0 , 25 , 59 , 0 ]}
220+
221+ actual_value = utils.GetTextObject (' a(' )
222+ AssertGetTextObject (expected_value, actual_value)
223+ # Test ' ab'
224+ actual_value = utils.GetTextObject (' ab' )
225+ AssertGetTextObject (expected_value, actual_value)
226+
227+ # Test ' i{'
228+ cursor (28 , 25 )
229+ expected_value = {text: ' rerum necessitatibus' ,
230+ start_pos: [0 , 28 , 23 , 0 ],
231+ end_pos: [0 , 28 , 42 , 0 ]}
232+ actual_value = utils.GetTextObject (' i{' )
233+ AssertGetTextObject (expected_value, actual_value)
234+
235+ # Test ' a{'
236+ expected_value = {text: ' {rerum necessitatibus}' ,
237+ start_pos: [0 , 28 , 22 , 0 ],
238+ end_pos: [0 , 28 , 43 , 0 ]}
239+ actual_value = utils.GetTextObject (' a{' )
240+ AssertGetTextObject (expected_value, actual_value)
241+
242+ # Test quoted text
243+ # TODO : it does not work due to a bug in vim , see:
244+ # https: // github.com /vim/ vim /issues/ 16679
245+ # cursor (27 , 22 )
246+ # expected_value = {text: ' dolor repellendus' ,
247+ # start_pos: [0 , 27 , 13 , 0 ],
248+ # end_pos: [0 , 27 , 29 , 0 ]}
249+ # actual_value = utils.GetTextObject (' i"' )
250+ # AssertGetTextObject (expected_value, actual_value)
251+
252+ # :% bw !
253+ # Cleanup_markdown_testfile ()
254+ enddef
0 commit comments