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