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/devel-api/atspi-interfaces/accessible.h>
27 #include <dali/devel-api/atspi-interfaces/text.h>
28 #include <dali-toolkit/internal/controls/text-controls/text-field-impl.h>
29 #include <dali-toolkit/internal/controls/text-controls/text-editor-impl.h>
31 #include <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dbus-wrapper.h>
33 void utc_dali_toolkit_accessibility_text_startup(void)
35 test_return_value = TET_UNDEF;
36 DBusWrapper::Install(std::unique_ptr<DBusWrapper>(new TestDBusWrapper));
39 void utc_dali_toolkit_accessibility_text_cleanup(void)
41 test_return_value = TET_PASS;
44 int utcDaliAccessibilityTextEditorGetName(void)
46 ToolkitTestApplication application;
48 auto editor = Dali::Toolkit::TextEditor::New();
49 DALI_TEST_EQUALS( editor.GetProperty<std::string>(Actor::Property::NAME), "", TEST_LOCATION );
50 editor.SetProperty(Actor::Property::NAME, "editor");
51 DALI_TEST_EQUALS( editor.GetProperty<std::string>(Actor::Property::NAME), "editor", TEST_LOCATION );
56 int utcDaliAccessibilityTextEditorGetText(void)
58 ToolkitTestApplication application;
60 auto editor = Dali::Toolkit::TextEditor::New();
61 auto q = Dali::Accessibility::Accessible::Get( editor );
62 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
66 DALI_TEST_EQUALS( x->GetText( 0, 0 ), "", TEST_LOCATION );
67 editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
68 DALI_TEST_EQUALS( x->GetText( 0, 9 ), "exemplary", TEST_LOCATION );
74 int utcDaliAccessibilityTextEditorGetCharacterCount(void)
76 ToolkitTestApplication application;
78 auto editor = Dali::Toolkit::TextEditor::New();
79 auto q = Dali::Accessibility::Accessible::Get( editor );
80 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
84 DALI_TEST_EQUALS( x->GetCharacterCount(), 0, TEST_LOCATION );
85 editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "editor" );
86 DALI_TEST_EQUALS( x->GetCharacterCount(), 6, TEST_LOCATION );
92 int utcDaliAccessibilityTextEditorGetTextAtOffset(void)
94 ToolkitTestApplication application;
96 auto editor = Dali::Toolkit::TextEditor::New();
97 auto q = Dali::Accessibility::Accessible::Get( editor );
98 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
102 auto range = x->GetTextAtOffset( 0, Dali::Accessibility::TextBoundary::LINE );
103 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
104 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
105 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
107 editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "text editor test sentence" );
108 range = x->GetTextAtOffset( 5, Dali::Accessibility::TextBoundary::CHARACTER );
109 DALI_TEST_EQUALS( range.content, "e", TEST_LOCATION );
110 DALI_TEST_EQUALS( range.startOffset, 5, TEST_LOCATION );
111 DALI_TEST_EQUALS( range.endOffset, 6, 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( 3, Dali::Accessibility::TextBoundary::WORD );
115 DALI_TEST_EQUALS( range.content, "sentence", TEST_LOCATION );
116 DALI_TEST_EQUALS( range.startOffset, 28, TEST_LOCATION );
117 DALI_TEST_EQUALS( range.endOffset, 36, 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( 4, Dali::Accessibility::TextBoundary::WORD );
121 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
122 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
123 DALI_TEST_EQUALS( range.endOffset, 0, 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( 0, Dali::Accessibility::TextBoundary::LINE );
127 DALI_TEST_EQUALS( range.content, "text \n", TEST_LOCATION );
128 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
129 DALI_TEST_EQUALS( range.endOffset, 9, 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( 6, Dali::Accessibility::TextBoundary::LINE );
133 DALI_TEST_EQUALS( range.content, " editor \n", TEST_LOCATION );
134 DALI_TEST_EQUALS( range.startOffset, 14, TEST_LOCATION );
135 DALI_TEST_EQUALS( range.endOffset, 24, TEST_LOCATION );
137 editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "text \n\n\n\n\n\n editor \n\n test sentence" );
138 range = x->GetTextAtOffset( 8, Dali::Accessibility::TextBoundary::LINE );
139 DALI_TEST_EQUALS( range.content, " test sentence", TEST_LOCATION );
140 DALI_TEST_EQUALS( range.startOffset, 25, TEST_LOCATION );
141 DALI_TEST_EQUALS( range.endOffset, 39, TEST_LOCATION );
147 int utcDaliAccessibilityTextEditorGetSetRangeOfSelection(void)
149 ToolkitTestApplication application;
151 auto editor = Dali::Toolkit::TextEditor::New();
152 auto q = Dali::Accessibility::Accessible::Get( editor );
153 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
154 DALI_TEST_CHECK( x );
157 auto range = x->GetRangeOfSelection( 0 );
158 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
159 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
160 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
162 x->SetRangeOfSelection( 0, 4, 9 );
163 editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
164 range = x->GetRangeOfSelection( 0 );
166 DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
167 DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
168 DALI_TEST_EQUALS( range.content, "plary", TEST_LOCATION );
174 int utcDaliAccessibilityTextEditorRemoveSelection(void)
176 ToolkitTestApplication application;
178 auto editor = Dali::Toolkit::TextEditor::New();
179 auto q = Dali::Accessibility::Accessible::Get( editor );
180 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
181 DALI_TEST_CHECK( x );
184 auto range = x->GetRangeOfSelection( 0 );
185 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
186 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
188 x->SetRangeOfSelection( 0, 4, 9 );
189 range = x->GetRangeOfSelection( 0 );
190 DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
191 DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
193 x->RemoveSelection( 0 );
194 range = x->GetRangeOfSelection( 0 );
195 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
196 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
202 int utcDaliAccessibilityTextEditorGetRangeExtents(void)
204 ToolkitTestApplication application;
206 auto editor = Dali::Toolkit::TextEditor::New();
207 auto q = Dali::Accessibility::Accessible::Get( editor );
208 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
209 DALI_TEST_CHECK( x );
213 auto rangeExtents = x->GetRangeExtents( 0, 0, Dali::Accessibility::CoordinateType::WINDOW );
214 DALI_TEST_EQUALS( (int)rangeExtents.x, 0, TEST_LOCATION );
215 DALI_TEST_EQUALS( (int)rangeExtents.y, 0, TEST_LOCATION );
216 DALI_TEST_EQUALS( (int)rangeExtents.width, 0, TEST_LOCATION );
217 DALI_TEST_EQUALS( (int)rangeExtents.height, 0, TEST_LOCATION );
219 application.GetScene().Add( editor );
221 editor.SetProperty( Toolkit::TextEditor::Property::POINT_SIZE, 7.f );
222 editor.SetProperty( Actor::Property::SIZE, Vector2(200.f, 200.f) );
223 editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
224 editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
225 editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "text editor test sentence" );
227 // Avoid a crash when core load gl resources.
228 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
231 application.SendNotification();
232 application.Render();
234 auto characterCount = x->GetCharacterCount();
235 rangeExtents = x->GetRangeExtents( 0, characterCount, Dali::Accessibility::CoordinateType::WINDOW );
237 DALI_TEST_EQUALS((int)rangeExtents.x >= 0, true, TEST_LOCATION);
238 DALI_TEST_EQUALS((int)rangeExtents.y >= 0, true, TEST_LOCATION);
239 DALI_TEST_EQUALS((int)rangeExtents.width <= 200, true, TEST_LOCATION);
240 DALI_TEST_EQUALS((int)rangeExtents.height <= 200, true, TEST_LOCATION);
246 int utcDaliAccessibilityTextFieldGetName(void)
248 ToolkitTestApplication application;
250 auto field = Toolkit::TextField::New();
251 DALI_TEST_EQUALS( field.GetProperty<std::string>(Actor::Property::NAME), "", TEST_LOCATION );
252 field.SetProperty(Actor::Property::NAME, "field");
253 DALI_TEST_EQUALS( field.GetProperty<std::string>(Actor::Property::NAME), "field", TEST_LOCATION );
258 int utcDaliAccessibilityTextFieldGetText(void)
260 ToolkitTestApplication application;
262 auto field = Dali::Toolkit::TextField::New();
263 auto q = Dali::Accessibility::Accessible::Get( field );
264 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
265 DALI_TEST_CHECK( x );
268 DALI_TEST_EQUALS( x->GetText( 0, 0 ), "", TEST_LOCATION );
269 field.SetProperty( Toolkit::TextField::Property::TEXT, "exemplary_text" );
270 DALI_TEST_EQUALS( x->GetText( 0, 9 ), "exemplary", TEST_LOCATION );
272 Dali::Property::Map hiddenInputSettings;
273 hiddenInputSettings[ Toolkit::HiddenInput::Property::MODE ] = Toolkit::HiddenInput::Mode::HIDE_ALL;
275 field.SetProperty( Toolkit::TextField::Property::HIDDEN_INPUT_SETTINGS, hiddenInputSettings );
277 DALI_TEST_EQUALS( x->GetName(), "", TEST_LOCATION );
278 DALI_TEST_EQUALS( x->GetText( 0, 9 ), "*********", TEST_LOCATION );
280 hiddenInputSettings[ Toolkit::HiddenInput::Property::SUBSTITUTE_CHARACTER ] = 0x23;
281 field.SetProperty( Toolkit::TextField::Property::HIDDEN_INPUT_SETTINGS, hiddenInputSettings );
283 DALI_TEST_EQUALS( x->GetName(), "", TEST_LOCATION );
284 DALI_TEST_EQUALS( x->GetText( 0, 9 ), "#########", TEST_LOCATION );
290 int utcDaliAccessibilityTextFieldGetCharacterCount(void)
292 ToolkitTestApplication application;
294 auto field = Dali::Toolkit::TextField::New();
295 auto q = Dali::Accessibility::Accessible::Get( field );
296 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
297 DALI_TEST_CHECK( x );
300 DALI_TEST_EQUALS( x->GetCharacterCount(), 0, TEST_LOCATION );
301 field.SetProperty( Toolkit::TextField::Property::TEXT, "field" );
302 DALI_TEST_EQUALS( x->GetCharacterCount(), 5, TEST_LOCATION );
308 int utcDaliAccessibilityTextFieldGetTextAtOffset(void)
310 ToolkitTestApplication application;
312 auto field = Dali::Toolkit::TextField::New();
313 auto q = Dali::Accessibility::Accessible::Get( field );
314 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
315 DALI_TEST_CHECK( x );
318 auto range = x->GetTextAtOffset( 0, Dali::Accessibility::TextBoundary::LINE );
319 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
320 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
321 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
323 field.SetProperty( Toolkit::TextField::Property::TEXT, "text editor test sentence" );
324 range = x->GetTextAtOffset( 5, Dali::Accessibility::TextBoundary::CHARACTER );
325 DALI_TEST_EQUALS( range.content, "e", TEST_LOCATION );
326 DALI_TEST_EQUALS( range.startOffset, 5, TEST_LOCATION );
327 DALI_TEST_EQUALS( range.endOffset, 6, TEST_LOCATION );
329 field.SetProperty( Toolkit::TextField::Property::TEXT, "text \n\n\n\n\n\n editor \n\n test sentence" );
330 range = x->GetTextAtOffset( 3, Dali::Accessibility::TextBoundary::WORD );
331 DALI_TEST_EQUALS( range.content, "sentence", TEST_LOCATION );
332 DALI_TEST_EQUALS( range.startOffset, 28, TEST_LOCATION );
333 DALI_TEST_EQUALS( range.endOffset, 36, TEST_LOCATION );
335 field.SetProperty( Toolkit::TextField::Property::TEXT, "text \n\n\n\n\n\n editor \n\n test sentence" );
336 range = x->GetTextAtOffset( 4, Dali::Accessibility::TextBoundary::WORD );
337 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
338 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
339 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
341 field.SetProperty( Toolkit::TextField::Property::TEXT, "text \n\n\n\n\n\n editor \n\n test sentence" );
342 range = x->GetTextAtOffset( 0, Dali::Accessibility::TextBoundary::LINE );
343 DALI_TEST_EQUALS( range.content, "text \n", TEST_LOCATION );
344 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
345 DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
347 field.SetProperty( Toolkit::TextField::Property::TEXT, "text \n\n\n\n\n\n editor \n\n test sentence" );
348 range = x->GetTextAtOffset( 6, Dali::Accessibility::TextBoundary::LINE );
349 DALI_TEST_EQUALS( range.content, " editor \n", TEST_LOCATION );
350 DALI_TEST_EQUALS( range.startOffset, 14, TEST_LOCATION );
351 DALI_TEST_EQUALS( range.endOffset, 24, TEST_LOCATION );
353 field.SetProperty( Toolkit::TextField::Property::TEXT, "text \n\n\n\n\n\n editor \n\n test sentence" );
354 range = x->GetTextAtOffset( 8, Dali::Accessibility::TextBoundary::LINE );
355 DALI_TEST_EQUALS( range.content, " test sentence", TEST_LOCATION );
356 DALI_TEST_EQUALS( range.startOffset, 25, TEST_LOCATION );
357 DALI_TEST_EQUALS( range.endOffset, 39, TEST_LOCATION );
359 Dali::Property::Map hiddenInputSettings;
360 hiddenInputSettings[ Toolkit::HiddenInput::Property::MODE ] = Toolkit::HiddenInput::Mode::HIDE_ALL;
361 hiddenInputSettings[ Toolkit::HiddenInput::Property::SUBSTITUTE_CHARACTER ] = 0x23;
362 field.SetProperty( Toolkit::TextField::Property::HIDDEN_INPUT_SETTINGS, hiddenInputSettings );
363 range = x->GetTextAtOffset( 8, Dali::Accessibility::TextBoundary::LINE );
364 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
365 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
366 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
373 int utcDaliAccessibilityTextFieldGetSetRangeOfSelection(void)
375 ToolkitTestApplication application;
377 auto field = Dali::Toolkit::TextField::New();
378 auto q = Dali::Accessibility::Accessible::Get( field );
379 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
380 DALI_TEST_CHECK( x );
383 auto range = x->GetRangeOfSelection( 0 );
384 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
385 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
386 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
388 x->SetRangeOfSelection( 0, 4, 9 );
389 field.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
390 range = x->GetRangeOfSelection( 0 );
392 DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
393 DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
394 DALI_TEST_EQUALS( range.content, "plary", TEST_LOCATION );
396 Dali::Property::Map hiddenInputSettings;
397 hiddenInputSettings[ Toolkit::HiddenInput::Property::MODE ] = Toolkit::HiddenInput::Mode::HIDE_ALL;
398 field.SetProperty( Toolkit::TextField::Property::HIDDEN_INPUT_SETTINGS, hiddenInputSettings );
400 range = x->GetRangeOfSelection( 0 );
401 DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
402 DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
403 DALI_TEST_EQUALS( range.content, "*****", TEST_LOCATION );
409 int utcDaliAccessibilityTextFieldRemoveSelection(void)
411 ToolkitTestApplication application;
413 auto field = Dali::Toolkit::TextField::New();
414 auto q = Dali::Accessibility::Accessible::Get( field );
415 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
416 DALI_TEST_CHECK( x );
419 auto range = x->GetRangeOfSelection( 0 );
420 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
421 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
423 x->SetRangeOfSelection( 0, 4, 9 );
424 range = x->GetRangeOfSelection( 0 );
425 DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
426 DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
428 x->RemoveSelection( 0 );
429 range = x->GetRangeOfSelection( 0 );
430 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
431 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
437 int utcDaliAccessibilityTextFieldGetRangeExtents(void)
439 ToolkitTestApplication application;
441 auto field = Dali::Toolkit::TextField::New();
442 auto q = Dali::Accessibility::Accessible::Get( field );
443 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
444 DALI_TEST_CHECK( x );
448 auto rangeExtents = x->GetRangeExtents( 0, 0, Dali::Accessibility::CoordinateType::WINDOW );
449 DALI_TEST_EQUALS( (int)rangeExtents.x, 0, TEST_LOCATION );
450 DALI_TEST_EQUALS( (int)rangeExtents.y, 0, TEST_LOCATION );
451 DALI_TEST_EQUALS( (int)rangeExtents.width, 0, TEST_LOCATION );
452 DALI_TEST_EQUALS( (int)rangeExtents.height, 0, TEST_LOCATION );
454 application.GetScene().Add( field );
456 field.SetProperty( Toolkit::TextField::Property::POINT_SIZE, 7.f );
457 field.SetProperty( Actor::Property::SIZE, Vector2(200.f, 200.f) );
458 field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
459 field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
460 field.SetProperty( Toolkit::TextField::Property::TEXT, "text field test sentence" );
462 // Avoid a crash when core load gl resources.
463 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
466 application.SendNotification();
467 application.Render();
469 auto characterCount = x->GetCharacterCount();
470 rangeExtents = x->GetRangeExtents( 0, characterCount, Dali::Accessibility::CoordinateType::WINDOW );
472 DALI_TEST_EQUALS((int)rangeExtents.x >= 0, true, TEST_LOCATION);
473 DALI_TEST_EQUALS((int)rangeExtents.y >= 0, true, TEST_LOCATION);
474 DALI_TEST_EQUALS((int)rangeExtents.width <= 200, true, TEST_LOCATION);
475 DALI_TEST_EQUALS((int)rangeExtents.height <= 200, true, TEST_LOCATION);
481 int utcDaliAccessibilityTextLabelGetName(void)
483 ToolkitTestApplication application;
485 auto label = Toolkit::TextLabel::New();
486 DALI_TEST_EQUALS( label.GetProperty<std::string>(Actor::Property::NAME), "", TEST_LOCATION );
487 label.SetProperty(Actor::Property::NAME, "label");
488 DALI_TEST_EQUALS( label.GetProperty<std::string>(Actor::Property::NAME), "label", TEST_LOCATION );
493 int utcDaliAccessibilityTextLabelGetText(void)
495 ToolkitTestApplication application;
497 auto label = Dali::Toolkit::TextLabel::New();
498 auto q = Dali::Accessibility::Accessible::Get( label );
499 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
500 DALI_TEST_CHECK( x );
503 DALI_TEST_EQUALS( x->GetText( 0, 0 ), "", TEST_LOCATION );
504 label.SetProperty( Toolkit::TextField::Property::TEXT, "exemplary_text" );
505 DALI_TEST_EQUALS( x->GetText( 0, 9 ), "exemplary", TEST_LOCATION );
511 int utcDaliAccessibilityTextLabelGetCharacterCount(void)
513 ToolkitTestApplication application;
515 auto label = Dali::Toolkit::TextLabel::New();
516 auto q = Dali::Accessibility::Accessible::Get( label );
517 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
518 DALI_TEST_CHECK( x );
521 DALI_TEST_EQUALS( x->GetCharacterCount(), 0, TEST_LOCATION );
522 label.SetProperty( Toolkit::TextField::Property::TEXT, "field" );
523 DALI_TEST_EQUALS( x->GetCharacterCount(), 5, TEST_LOCATION );
529 int utcDaliAccessibilityTextLabelGetTextAtOffset(void)
531 ToolkitTestApplication application;
533 auto label = Dali::Toolkit::TextLabel::New();
534 auto q = Dali::Accessibility::Accessible::Get( label );
535 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
536 DALI_TEST_CHECK( x );
539 auto range = x->GetTextAtOffset( 0, Dali::Accessibility::TextBoundary::LINE );
540 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
541 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
542 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
544 label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text editor test sentence" );
545 range = x->GetTextAtOffset( 5, Dali::Accessibility::TextBoundary::CHARACTER );
546 DALI_TEST_EQUALS( range.content, "e", TEST_LOCATION );
547 DALI_TEST_EQUALS( range.startOffset, 5, TEST_LOCATION );
548 DALI_TEST_EQUALS( range.endOffset, 6, TEST_LOCATION );
550 label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text \n\n\n\n\n\n editor \n\n test sentence" );
551 range = x->GetTextAtOffset( 3, Dali::Accessibility::TextBoundary::WORD );
552 DALI_TEST_EQUALS( range.content, "sentence", TEST_LOCATION );
553 DALI_TEST_EQUALS( range.startOffset, 28, TEST_LOCATION );
554 DALI_TEST_EQUALS( range.endOffset, 36, TEST_LOCATION );
556 label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text \n\n\n\n\n\n editor \n\n test sentence" );
557 range = x->GetTextAtOffset( 4, Dali::Accessibility::TextBoundary::WORD );
558 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
559 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
560 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
562 label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text \n\n\n\n\n\n editor \n\n test sentence" );
563 range = x->GetTextAtOffset( 0, Dali::Accessibility::TextBoundary::LINE );
564 DALI_TEST_EQUALS( range.content, "text \n", TEST_LOCATION );
565 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
566 DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
568 label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text \n\n\n\n\n\n editor \n\n test sentence" );
569 range = x->GetTextAtOffset( 6, Dali::Accessibility::TextBoundary::LINE );
570 DALI_TEST_EQUALS( range.content, " editor \n", TEST_LOCATION );
571 DALI_TEST_EQUALS( range.startOffset, 14, TEST_LOCATION );
572 DALI_TEST_EQUALS( range.endOffset, 24, TEST_LOCATION );
574 label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text \n\n\n\n\n\n editor \n\n test sentence" );
575 range = x->GetTextAtOffset( 8, Dali::Accessibility::TextBoundary::LINE );
576 DALI_TEST_EQUALS( range.content, " test sentence", TEST_LOCATION );
577 DALI_TEST_EQUALS( range.startOffset, 25, TEST_LOCATION );
578 DALI_TEST_EQUALS( range.endOffset, 39, TEST_LOCATION );
584 int utcDaliAccessibilityTextLabelRemoveSelection( void )
586 ToolkitTestApplication application;
588 auto label = Dali::Toolkit::TextLabel::New();
589 auto q = Dali::Accessibility::Accessible::Get( label );
590 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
591 DALI_TEST_CHECK( x );
594 auto range = x->GetRangeOfSelection( 0 );
595 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
596 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
598 x->SetRangeOfSelection( 0, 4, 9 );
599 range = x->GetRangeOfSelection( 0 );
600 DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
601 DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
603 x->RemoveSelection( 0 );
604 range = x->GetRangeOfSelection( 0 );
605 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
606 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
612 int utcDaliAccessibilityTextLabelGetRangeExtents(void)
614 ToolkitTestApplication application;
616 auto label = Dali::Toolkit::TextLabel::New();
617 auto q = Dali::Accessibility::Accessible::Get( label );
618 auto x = dynamic_cast< Dali::Accessibility::Text* >( q );
619 DALI_TEST_CHECK( x );
623 auto rangeExtents = x->GetRangeExtents( 0, 0, Dali::Accessibility::CoordinateType::WINDOW );
624 DALI_TEST_EQUALS( (int)rangeExtents.x, 0, TEST_LOCATION );
625 DALI_TEST_EQUALS( (int)rangeExtents.y, 0, TEST_LOCATION );
626 DALI_TEST_EQUALS( (int)rangeExtents.width, 0, TEST_LOCATION );
627 DALI_TEST_EQUALS( (int)rangeExtents.height, 0, TEST_LOCATION );
629 application.GetScene().Add( label );
631 label.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, 7.f );
632 label.SetProperty( Toolkit::TextLabel::Property::MULTI_LINE, true );
633 label.SetProperty( Actor::Property::SIZE, Vector2(200.f, 200.f) );
634 label.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
635 label.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
636 label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text label\n test sentence" );
638 // Avoid a crash when core load gl resources.
639 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
642 application.SendNotification();
643 application.Render();
645 auto characterCount = x->GetCharacterCount();
646 rangeExtents = x->GetRangeExtents( 0, characterCount, Dali::Accessibility::CoordinateType::WINDOW );
648 DALI_TEST_EQUALS((int)rangeExtents.x >= 0, true, TEST_LOCATION);
649 DALI_TEST_EQUALS((int)rangeExtents.y >= 0, true, TEST_LOCATION);
650 DALI_TEST_EQUALS((int)rangeExtents.width <= 200, true, TEST_LOCATION);
651 DALI_TEST_EQUALS((int)rangeExtents.height <= 200, true, TEST_LOCATION);