[AT-SPI] Add notification for a11y name/description change
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-internal / utc-Dali-Accessibility-Text.cpp
1 /**
2  * Copyright (c) 2017 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // Need to override adaptor classes for toolkit test harness, so include
19 // test harness headers before dali headers.
20 #include <dali-toolkit-test-suite-utils.h>
21
22 #include <dali.h>
23 #include <dali-toolkit/dali-toolkit.h>
24
25 #include <dali/devel-api/adaptor-framework/accessibility.h>
26 #include <dali-toolkit/internal/controls/text-controls/text-editor-impl.h>
27
28 void utc_dali_toolkit_accessibility_text_startup(void)
29 {
30   test_return_value = TET_UNDEF;
31 }
32
33 void utc_dali_toolkit_accessibility_text_cleanup(void)
34 {
35   test_return_value = TET_PASS;
36 }
37
38 int utcDaliAccessibilityTextEditorGetName(void)
39 {
40   ToolkitTestApplication application;
41
42   auto editor = Dali::Toolkit::TextEditor::New();
43   DALI_TEST_EQUALS( editor.GetProperty<std::string>(Actor::Property::NAME), "", TEST_LOCATION );
44   editor.SetProperty(Actor::Property::NAME, "editor");
45   DALI_TEST_EQUALS( editor.GetProperty<std::string>(Actor::Property::NAME), "editor", TEST_LOCATION );
46
47   END_TEST;
48 }
49
50 int utcDaliAccessibilityTextEditorGetText(void)
51 {
52   ToolkitTestApplication application;
53
54   auto editor = Dali::Toolkit::TextEditor::New();
55   auto q = Dali::Accessibility::Accessible::Get( editor );
56   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
57   DALI_TEST_CHECK( x );
58   if( x )
59   {
60     DALI_TEST_EQUALS( x->GetText( 0, 0 ), "", TEST_LOCATION );
61     editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
62     DALI_TEST_EQUALS( x->GetText( 0, 9 ), "exemplary", TEST_LOCATION );
63   }
64
65   END_TEST;
66 }
67
68 int utcDaliAccessibilityTextEditorGetCharacterCount(void)
69 {
70   ToolkitTestApplication application;
71
72   auto editor = Dali::Toolkit::TextEditor::New();
73   auto q = Dali::Accessibility::Accessible::Get( editor );
74   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
75   DALI_TEST_CHECK( x );
76   if( x )
77   {
78     DALI_TEST_EQUALS( x->GetCharacterCount(), 0, TEST_LOCATION );
79     editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "editor" );
80     DALI_TEST_EQUALS( x->GetCharacterCount(), 6, TEST_LOCATION );
81   }
82
83   END_TEST;
84 }
85
86 int utcDaliAccessibilityTextEditorGetTextAtOffset(void)
87 {
88   ToolkitTestApplication application;
89
90   auto editor = Dali::Toolkit::TextEditor::New();
91   auto q = Dali::Accessibility::Accessible::Get( editor );
92   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
93   DALI_TEST_CHECK( x );
94   if( x )
95   {
96     auto range = x->GetTextAtOffset( 0, Dali::Accessibility::TextBoundary::LINE );
97     DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
98     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
99     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
100
101     editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "text editor test sentence" );
102     range = x->GetTextAtOffset( 5, Dali::Accessibility::TextBoundary::CHARACTER );
103     DALI_TEST_EQUALS( range.content, "e", TEST_LOCATION );
104     DALI_TEST_EQUALS( range.startOffset, 5, TEST_LOCATION );
105     DALI_TEST_EQUALS( range.endOffset, 6, TEST_LOCATION );
106
107     editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "text \n\n\n\n\n\n editor  \n\n test sentence" );
108     range = x->GetTextAtOffset( 3, Dali::Accessibility::TextBoundary::WORD );
109     DALI_TEST_EQUALS( range.content, "sentence", TEST_LOCATION );
110     DALI_TEST_EQUALS( range.startOffset, 28, TEST_LOCATION );
111     DALI_TEST_EQUALS( range.endOffset, 36, TEST_LOCATION );
112
113     editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "text \n\n\n\n\n\n editor  \n\n test sentence" );
114     range = x->GetTextAtOffset( 4, Dali::Accessibility::TextBoundary::WORD );
115     DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
116     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
117     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
118
119     editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "text    \n\n\n\n\n\n editor  \n\n test sentence" );
120     range = x->GetTextAtOffset( 0, Dali::Accessibility::TextBoundary::LINE );
121     DALI_TEST_EQUALS( range.content, "text    \n", TEST_LOCATION );
122     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
123     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
124
125     editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "text    \n\n\n\n\n\n editor  \n\n test sentence" );
126     range = x->GetTextAtOffset( 6, Dali::Accessibility::TextBoundary::LINE );
127     DALI_TEST_EQUALS( range.content, " editor  \n", TEST_LOCATION );
128     DALI_TEST_EQUALS( range.startOffset, 14, TEST_LOCATION );
129     DALI_TEST_EQUALS( range.endOffset, 24, TEST_LOCATION );
130
131     editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "text    \n\n\n\n\n\n editor  \n\n test sentence" );
132     range = x->GetTextAtOffset( 8, Dali::Accessibility::TextBoundary::LINE );
133     DALI_TEST_EQUALS( range.content, " test sentence", TEST_LOCATION );
134     DALI_TEST_EQUALS( range.startOffset, 25, TEST_LOCATION );
135     DALI_TEST_EQUALS( range.endOffset, 39, TEST_LOCATION );
136   }
137
138   END_TEST;
139 }
140
141 int utcDaliAccessibilityTextEditorGetSetSelection(void)
142 {
143   ToolkitTestApplication application;
144
145   auto editor = Dali::Toolkit::TextEditor::New();
146   auto q = Dali::Accessibility::Accessible::Get( editor );
147   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
148   DALI_TEST_CHECK( x );
149   if( x )
150   {
151     auto range = x->GetSelection( 0 );
152     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
153     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
154     DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
155
156     x->SetSelection( 0, 4, 9 );
157     editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
158     range = x->GetSelection( 0 );
159
160     DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
161     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
162     DALI_TEST_EQUALS( range.content, "plary", TEST_LOCATION );
163   }
164
165   END_TEST;
166 }
167
168 int utcDaliAccessibilityTextEditorRemoveSelection(void)
169 {
170   ToolkitTestApplication application;
171
172   auto editor = Dali::Toolkit::TextEditor::New();
173   auto q = Dali::Accessibility::Accessible::Get( editor );
174   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
175   DALI_TEST_CHECK( x );
176   if( x )
177   {
178     auto range = x->GetSelection( 0 );
179     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
180     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
181
182     x->SetSelection( 0, 4, 9 );
183     range = x->GetSelection( 0 );
184     DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
185     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
186
187     x->RemoveSelection( 0 );
188     range = x->GetSelection( 0 );
189     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
190     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
191   }
192
193   END_TEST;
194 }
195
196 int utcDaliAccessibilityTextFieldGetName(void)
197 {
198   ToolkitTestApplication application;
199
200   auto field = Toolkit::TextField::New();
201   DALI_TEST_EQUALS( field.GetProperty<std::string>(Actor::Property::NAME), "", TEST_LOCATION );
202   field.SetProperty(Actor::Property::NAME, "field");
203   DALI_TEST_EQUALS( field.GetProperty<std::string>(Actor::Property::NAME), "field", TEST_LOCATION );
204
205   END_TEST;
206 }
207
208 int utcDaliAccessibilityTextFieldGetText(void)
209 {
210   ToolkitTestApplication application;
211
212   auto field = Dali::Toolkit::TextField::New();
213   auto q = Dali::Accessibility::Accessible::Get( field );
214   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
215   DALI_TEST_CHECK( x );
216   if( x )
217   {
218     DALI_TEST_EQUALS( x->GetText( 0, 0 ), "", TEST_LOCATION );
219     field.SetProperty( Toolkit::TextField::Property::TEXT, "exemplary_text" );
220     DALI_TEST_EQUALS( x->GetText( 0, 9 ), "exemplary", TEST_LOCATION );
221   }
222
223   END_TEST;
224 }
225
226 int utcDaliAccessibilityTextFieldGetCharacterCount(void)
227 {
228   ToolkitTestApplication application;
229
230   auto field = Dali::Toolkit::TextField::New();
231   auto q = Dali::Accessibility::Accessible::Get( field );
232   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
233   DALI_TEST_CHECK( x );
234   if( x )
235   {
236     DALI_TEST_EQUALS( x->GetCharacterCount(), 0, TEST_LOCATION );
237     field.SetProperty( Toolkit::TextField::Property::TEXT, "field" );
238     DALI_TEST_EQUALS( x->GetCharacterCount(), 5, TEST_LOCATION );
239   }
240
241   END_TEST;
242 }
243
244 int utcDaliAccessibilityTextFieldGetTextAtOffset(void)
245 {
246   ToolkitTestApplication application;
247
248   auto field = Dali::Toolkit::TextField::New();
249   auto q = Dali::Accessibility::Accessible::Get( field );
250   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
251   DALI_TEST_CHECK( x );
252   if( x )
253   {
254     auto range = x->GetTextAtOffset( 0, Dali::Accessibility::TextBoundary::LINE );
255     DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
256     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
257     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
258
259     field.SetProperty( Toolkit::TextField::Property::TEXT, "text editor test sentence" );
260     range = x->GetTextAtOffset( 5, Dali::Accessibility::TextBoundary::CHARACTER );
261     DALI_TEST_EQUALS( range.content, "e", TEST_LOCATION );
262     DALI_TEST_EQUALS( range.startOffset, 5, TEST_LOCATION );
263     DALI_TEST_EQUALS( range.endOffset, 6, TEST_LOCATION );
264
265     field.SetProperty( Toolkit::TextField::Property::TEXT, "text \n\n\n\n\n\n editor  \n\n test sentence" );
266     range = x->GetTextAtOffset( 3, Dali::Accessibility::TextBoundary::WORD );
267     DALI_TEST_EQUALS( range.content, "sentence", TEST_LOCATION );
268     DALI_TEST_EQUALS( range.startOffset, 28, TEST_LOCATION );
269     DALI_TEST_EQUALS( range.endOffset, 36, TEST_LOCATION );
270
271     field.SetProperty( Toolkit::TextField::Property::TEXT, "text \n\n\n\n\n\n editor  \n\n test sentence" );
272     range = x->GetTextAtOffset( 4, Dali::Accessibility::TextBoundary::WORD );
273     DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
274     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
275     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
276
277     field.SetProperty( Toolkit::TextField::Property::TEXT, "text    \n\n\n\n\n\n editor  \n\n test sentence" );
278     range = x->GetTextAtOffset( 0, Dali::Accessibility::TextBoundary::LINE );
279     DALI_TEST_EQUALS( range.content, "text    \n", TEST_LOCATION );
280     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
281     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
282
283     field.SetProperty( Toolkit::TextField::Property::TEXT, "text    \n\n\n\n\n\n editor  \n\n test sentence" );
284     range = x->GetTextAtOffset( 6, Dali::Accessibility::TextBoundary::LINE );
285     DALI_TEST_EQUALS( range.content, " editor  \n", TEST_LOCATION );
286     DALI_TEST_EQUALS( range.startOffset, 14, TEST_LOCATION );
287     DALI_TEST_EQUALS( range.endOffset, 24, TEST_LOCATION );
288
289     field.SetProperty( Toolkit::TextField::Property::TEXT, "text    \n\n\n\n\n\n editor  \n\n test sentence" );
290     range = x->GetTextAtOffset( 8, Dali::Accessibility::TextBoundary::LINE );
291     DALI_TEST_EQUALS( range.content, " test sentence", TEST_LOCATION );
292     DALI_TEST_EQUALS( range.startOffset, 25, TEST_LOCATION );
293     DALI_TEST_EQUALS( range.endOffset, 39, TEST_LOCATION );
294   }
295
296   END_TEST;
297 }
298
299 int utcDaliAccessibilityTextFieldGetSetSelection(void)
300 {
301   ToolkitTestApplication application;
302
303   auto field = Dali::Toolkit::TextField::New();
304   auto q = Dali::Accessibility::Accessible::Get( field );
305   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
306   DALI_TEST_CHECK( x );
307   if( x )
308   {
309     auto range = x->GetSelection( 0 );
310     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
311     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
312     DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
313
314     x->SetSelection( 0, 4, 9 );
315     field.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
316     range = x->GetSelection( 0 );
317
318     DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
319     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
320     DALI_TEST_EQUALS( range.content, "plary", TEST_LOCATION );
321   }
322
323   END_TEST;
324 }
325
326 int utcDaliAccessibilityTextFieldRemoveSelection(void)
327 {
328   ToolkitTestApplication application;
329
330   auto field = Dali::Toolkit::TextField::New();
331   auto q = Dali::Accessibility::Accessible::Get( field );
332   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
333   DALI_TEST_CHECK( x );
334   if( x )
335   {
336     auto range = x->GetSelection( 0 );
337     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
338     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
339
340     x->SetSelection( 0, 4, 9 );
341     range = x->GetSelection( 0 );
342     DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
343     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
344
345     x->RemoveSelection( 0 );
346     range = x->GetSelection( 0 );
347     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
348     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
349   }
350
351   END_TEST;
352 }
353
354 int utcDaliAccessibilityTextLabelGetName(void)
355 {
356   ToolkitTestApplication application;
357
358   auto label = Toolkit::TextLabel::New();
359   DALI_TEST_EQUALS( label.GetProperty<std::string>(Actor::Property::NAME), "", TEST_LOCATION );
360   label.SetProperty(Actor::Property::NAME, "label");
361   DALI_TEST_EQUALS( label.GetProperty<std::string>(Actor::Property::NAME), "label", TEST_LOCATION );
362
363   END_TEST;
364 }
365
366 int utcDaliAccessibilityTextLabelGetText(void)
367 {
368   ToolkitTestApplication application;
369
370   auto label = Dali::Toolkit::TextLabel::New();
371   auto q = Dali::Accessibility::Accessible::Get( label );
372   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
373   DALI_TEST_CHECK( x );
374   if( x )
375   {
376     DALI_TEST_EQUALS( x->GetText( 0, 0 ), "", TEST_LOCATION );
377     label.SetProperty( Toolkit::TextField::Property::TEXT, "exemplary_text" );
378     DALI_TEST_EQUALS( x->GetText( 0, 9 ), "exemplary", TEST_LOCATION );
379   }
380
381   END_TEST;
382 }
383
384 int utcDaliAccessibilityTextLabelGetCharacterCount(void)
385 {
386   ToolkitTestApplication application;
387
388   auto label = Dali::Toolkit::TextLabel::New();
389   auto q = Dali::Accessibility::Accessible::Get( label );
390   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
391   DALI_TEST_CHECK( x );
392   if( x )
393   {
394     DALI_TEST_EQUALS( x->GetCharacterCount(), 0, TEST_LOCATION );
395     label.SetProperty( Toolkit::TextField::Property::TEXT, "field" );
396     DALI_TEST_EQUALS( x->GetCharacterCount(), 5, TEST_LOCATION );
397   }
398
399   END_TEST;
400 }
401
402 int utcDaliAccessibilityTextLabelGetTextAtOffset(void)
403 {
404   ToolkitTestApplication application;
405
406   auto label = Dali::Toolkit::TextLabel::New();
407   auto q = Dali::Accessibility::Accessible::Get( label );
408   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
409   DALI_TEST_CHECK( x );
410   if( x )
411   {
412     auto range = x->GetTextAtOffset( 0, Dali::Accessibility::TextBoundary::LINE );
413     DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
414     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
415     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
416
417     label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text editor test sentence" );
418     range = x->GetTextAtOffset( 5, Dali::Accessibility::TextBoundary::CHARACTER );
419     DALI_TEST_EQUALS( range.content, "e", TEST_LOCATION );
420     DALI_TEST_EQUALS( range.startOffset, 5, TEST_LOCATION );
421     DALI_TEST_EQUALS( range.endOffset, 6, TEST_LOCATION );
422
423     label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text \n\n\n\n\n\n editor  \n\n test sentence" );
424     range = x->GetTextAtOffset( 3, Dali::Accessibility::TextBoundary::WORD );
425     DALI_TEST_EQUALS( range.content, "sentence", TEST_LOCATION );
426     DALI_TEST_EQUALS( range.startOffset, 28, TEST_LOCATION );
427     DALI_TEST_EQUALS( range.endOffset, 36, TEST_LOCATION );
428
429     label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text \n\n\n\n\n\n editor  \n\n test sentence" );
430     range = x->GetTextAtOffset( 4, Dali::Accessibility::TextBoundary::WORD );
431     DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
432     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
433     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
434
435     label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text    \n\n\n\n\n\n editor  \n\n test sentence" );
436     range = x->GetTextAtOffset( 0, Dali::Accessibility::TextBoundary::LINE );
437     DALI_TEST_EQUALS( range.content, "text    \n", TEST_LOCATION );
438     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
439     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
440
441     label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text    \n\n\n\n\n\n editor  \n\n test sentence" );
442     range = x->GetTextAtOffset( 6, Dali::Accessibility::TextBoundary::LINE );
443     DALI_TEST_EQUALS( range.content, " editor  \n", TEST_LOCATION );
444     DALI_TEST_EQUALS( range.startOffset, 14, TEST_LOCATION );
445     DALI_TEST_EQUALS( range.endOffset, 24, TEST_LOCATION );
446
447     label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text    \n\n\n\n\n\n editor  \n\n test sentence" );
448     range = x->GetTextAtOffset( 8, Dali::Accessibility::TextBoundary::LINE );
449     DALI_TEST_EQUALS( range.content, " test sentence", TEST_LOCATION );
450     DALI_TEST_EQUALS( range.startOffset, 25, TEST_LOCATION );
451     DALI_TEST_EQUALS( range.endOffset, 39, TEST_LOCATION );
452   }
453
454   END_TEST;
455 }
456
457 int utcDaliAccessibilityTextLabelRemoveSelection( void )
458 {
459   ToolkitTestApplication application;
460
461   auto label = Dali::Toolkit::TextLabel::New();
462   auto q = Dali::Accessibility::Accessible::Get( label );
463   auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
464   DALI_TEST_CHECK( x );
465   if( x )
466   {
467     auto range = x->GetSelection( 0 );
468     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
469     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
470
471     x->SetSelection( 0, 4, 9 );
472     range = x->GetSelection( 0 );
473     DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
474     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
475
476     x->RemoveSelection( 0 );
477     range = x->GetSelection( 0 );
478     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
479     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
480   }
481
482   END_TEST;
483 }