2 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
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>
23 #include <dali-toolkit/dali-toolkit.h>
25 #include <dali/devel-api/adaptor-framework/accessibility.h>
26 #include <dali-toolkit/internal/controls/text-controls/text-editor-impl.h>
28 void utc_dali_toolkit_accessibility_text_startup(void)
30 test_return_value = TET_UNDEF;
33 void utc_dali_toolkit_accessibility_text_cleanup(void)
35 test_return_value = TET_PASS;
38 int utcDaliAccessibilityTextEditorGetName(void)
40 ToolkitTestApplication application;
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 );
50 int utcDaliAccessibilityTextEditorGetText(void)
52 ToolkitTestApplication application;
54 auto editor = Dali::Toolkit::TextEditor::New();
55 auto q = Dali::Accessibility::Accessible::Get( editor );
56 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
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 );
68 int utcDaliAccessibilityTextEditorGetCharacterCount(void)
70 ToolkitTestApplication application;
72 auto editor = Dali::Toolkit::TextEditor::New();
73 auto q = Dali::Accessibility::Accessible::Get( editor );
74 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
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 );
86 int utcDaliAccessibilityTextEditorGetTextAtOffset(void)
88 ToolkitTestApplication application;
90 auto editor = Dali::Toolkit::TextEditor::New();
91 auto q = Dali::Accessibility::Accessible::Get( editor );
92 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
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 );
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 );
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 );
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 );
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 );
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 );
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 );
141 int utcDaliAccessibilityTextEditorGetSetSelection(void)
143 ToolkitTestApplication application;
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 );
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 );
156 x->SetSelection( 0, 4, 9 );
157 editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
158 range = x->GetSelection( 0 );
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 );
168 int utcDaliAccessibilityTextEditorRemoveSelection(void)
170 ToolkitTestApplication application;
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 );
178 auto range = x->GetSelection( 0 );
179 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
180 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
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 );
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 );
196 int utcDaliAccessibilityTextFieldGetName(void)
198 ToolkitTestApplication application;
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 );
208 int utcDaliAccessibilityTextFieldGetText(void)
210 ToolkitTestApplication application;
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 );
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 );
226 int utcDaliAccessibilityTextFieldGetCharacterCount(void)
228 ToolkitTestApplication application;
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 );
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 );
244 int utcDaliAccessibilityTextFieldGetTextAtOffset(void)
246 ToolkitTestApplication application;
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 );
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 );
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 );
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 );
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 );
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 );
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 );
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 );
299 int utcDaliAccessibilityTextFieldGetSetSelection(void)
301 ToolkitTestApplication application;
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 );
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 );
314 x->SetSelection( 0, 4, 9 );
315 field.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
316 range = x->GetSelection( 0 );
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 );
326 int utcDaliAccessibilityTextFieldRemoveSelection(void)
328 ToolkitTestApplication application;
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 );
336 auto range = x->GetSelection( 0 );
337 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
338 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
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 );
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 );
354 int utcDaliAccessibilityTextLabelGetName(void)
356 ToolkitTestApplication application;
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 );
366 int utcDaliAccessibilityTextLabelGetText(void)
368 ToolkitTestApplication application;
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 );
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 );
384 int utcDaliAccessibilityTextLabelGetCharacterCount(void)
386 ToolkitTestApplication application;
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 );
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 );
402 int utcDaliAccessibilityTextLabelGetTextAtOffset(void)
404 ToolkitTestApplication application;
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 );
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 );
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 );
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 );
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 );
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 );
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 );
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 );
457 int utcDaliAccessibilityTextLabelRemoveSelection( void )
459 ToolkitTestApplication application;
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 );
467 auto range = x->GetSelection( 0 );
468 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
469 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
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 );
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 );