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 #include <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dbus-wrapper.h>
30 void utc_dali_toolkit_accessibility_text_startup(void)
32 test_return_value = TET_UNDEF;
33 DBusWrapper::Install(std::unique_ptr<DBusWrapper>(new TestDBusWrapper));
36 void utc_dali_toolkit_accessibility_text_cleanup(void)
38 test_return_value = TET_PASS;
41 int utcDaliAccessibilityTextEditorGetName(void)
43 ToolkitTestApplication application;
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 );
53 int utcDaliAccessibilityTextEditorGetText(void)
55 ToolkitTestApplication application;
57 auto editor = Dali::Toolkit::TextEditor::New();
58 auto q = Dali::Accessibility::Accessible::Get( editor );
59 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
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 );
71 int utcDaliAccessibilityTextEditorGetCharacterCount(void)
73 ToolkitTestApplication application;
75 auto editor = Dali::Toolkit::TextEditor::New();
76 auto q = Dali::Accessibility::Accessible::Get( editor );
77 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
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 );
89 int utcDaliAccessibilityTextEditorGetTextAtOffset(void)
91 ToolkitTestApplication application;
93 auto editor = Dali::Toolkit::TextEditor::New();
94 auto q = Dali::Accessibility::Accessible::Get( editor );
95 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
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 );
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 );
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 );
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 );
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 );
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 );
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 );
144 int utcDaliAccessibilityTextEditorGetSetSelection(void)
146 ToolkitTestApplication application;
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 );
154 auto range = x->GetSelection( 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 );
159 x->SetSelection( 0, 4, 9 );
160 editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
161 range = x->GetSelection( 0 );
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 );
171 int utcDaliAccessibilityTextEditorRemoveSelection(void)
173 ToolkitTestApplication application;
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 );
181 auto range = x->GetSelection( 0 );
182 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
183 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
185 x->SetSelection( 0, 4, 9 );
186 range = x->GetSelection( 0 );
187 DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
188 DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
190 x->RemoveSelection( 0 );
191 range = x->GetSelection( 0 );
192 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
193 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
199 int utcDaliAccessibilityTextFieldGetName(void)
201 ToolkitTestApplication application;
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 );
211 int utcDaliAccessibilityTextFieldGetText(void)
213 ToolkitTestApplication application;
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 );
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 );
229 int utcDaliAccessibilityTextFieldGetCharacterCount(void)
231 ToolkitTestApplication application;
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 );
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 );
247 int utcDaliAccessibilityTextFieldGetTextAtOffset(void)
249 ToolkitTestApplication application;
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 );
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 );
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 );
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 );
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 );
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 );
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 );
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 );
302 int utcDaliAccessibilityTextFieldGetSetSelection(void)
304 ToolkitTestApplication application;
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 );
312 auto range = x->GetSelection( 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 );
317 x->SetSelection( 0, 4, 9 );
318 field.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
319 range = x->GetSelection( 0 );
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 );
329 int utcDaliAccessibilityTextFieldRemoveSelection(void)
331 ToolkitTestApplication application;
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 );
339 auto range = x->GetSelection( 0 );
340 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
341 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
343 x->SetSelection( 0, 4, 9 );
344 range = x->GetSelection( 0 );
345 DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
346 DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
348 x->RemoveSelection( 0 );
349 range = x->GetSelection( 0 );
350 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
351 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
357 int utcDaliAccessibilityTextLabelGetName(void)
359 ToolkitTestApplication application;
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 );
369 int utcDaliAccessibilityTextLabelGetText(void)
371 ToolkitTestApplication application;
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 );
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 );
387 int utcDaliAccessibilityTextLabelGetCharacterCount(void)
389 ToolkitTestApplication application;
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 );
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 );
405 int utcDaliAccessibilityTextLabelGetTextAtOffset(void)
407 ToolkitTestApplication application;
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 );
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 );
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 );
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 );
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 );
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 );
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 );
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 );
460 int utcDaliAccessibilityTextLabelRemoveSelection( void )
462 ToolkitTestApplication application;
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 );
470 auto range = x->GetSelection( 0 );
471 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
472 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
474 x->SetSelection( 0, 4, 9 );
475 range = x->GetSelection( 0 );
476 DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
477 DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
479 x->RemoveSelection( 0 );
480 range = x->GetSelection( 0 );
481 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
482 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );