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/devel-api/common/stage.h>
24 #include <dali-toolkit/dali-toolkit.h>
26 #include <dali/devel-api/adaptor-framework/accessibility.h>
27 #include <dali/devel-api/adaptor-framework/accessibility-bridge.h>
28 #include <dali/devel-api/atspi-interfaces/accessible.h>
29 #include <dali/devel-api/atspi-interfaces/value.h>
31 #include <dali-toolkit/devel-api/controls/scroll-bar/scroll-bar.h>
33 #include <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dbus-wrapper.h>
35 using namespace Dali::Accessibility;
37 void utc_dali_toolkit_accessibility_value_startup(void)
39 test_return_value = TET_UNDEF;
40 DBusWrapper::Install(std::unique_ptr<DBusWrapper>(new TestDBusWrapper));
43 void utc_dali_toolkit_accessibility_value_cleanup(void)
45 test_return_value = TET_PASS;
48 int utcDaliAccessibilityProgressBarGetMinimum(void)
50 ToolkitTestApplication application;
52 Toolkit::ProgressBar progress_bar = Toolkit::ProgressBar::New();
53 auto q = Dali::Accessibility::Accessible::Get( progress_bar );
54 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
56 DALI_TEST_EQUALS( x->GetMinimum(), 0.0, TEST_LOCATION );
61 int utcDaliAccessibilityProgressBarGetMaximum(void)
63 ToolkitTestApplication application;
65 Toolkit::ProgressBar progress_bar = Toolkit::ProgressBar::New();
66 auto q = Dali::Accessibility::Accessible::Get( progress_bar );
67 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
69 DALI_TEST_EQUALS( x->GetMaximum(), 1.0, TEST_LOCATION );
74 int utcDaliAccessibilityProgressBarGetMinimumIncrement(void)
76 ToolkitTestApplication application;
78 Toolkit::ProgressBar progress_bar = Toolkit::ProgressBar::New();
79 auto q = Dali::Accessibility::Accessible::Get(progress_bar);
80 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
82 DALI_TEST_EQUALS( x->GetMinimumIncrement(), 0.0, TEST_LOCATION );
87 int utcDaliAccessibilityProgressBarGetSetCurrent(void)
89 ToolkitTestApplication application;
91 Toolkit::ProgressBar progress_bar = Toolkit::ProgressBar::New();
92 auto q = Dali::Accessibility::Accessible::Get(progress_bar);
93 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
95 DALI_TEST_EQUALS( x->GetCurrent(), 0.0, TEST_LOCATION );
96 DALI_TEST_EQUALS( x->SetCurrent( 2.0 ), false, TEST_LOCATION );
97 DALI_TEST_EQUALS( x->SetCurrent( 0.25 ), true, TEST_LOCATION );
98 DALI_TEST_EQUALS( x->GetCurrent(), 0.25, TEST_LOCATION );
103 int utcDaliAccessibilityScrollBarGetMinimum(void)
105 ToolkitTestApplication application;
107 // Create a source actor that owns the scroll properties required by the scroll bar
108 Actor sourceActor = Actor::New();
109 Stage::GetCurrent().Add( sourceActor );
111 // Register the scroll properties
112 Property::Index propertyScrollPosition = sourceActor.RegisterProperty( "sourcePosition", 0.0f );
113 Property::Index propertyMinScrollPosition = sourceActor.RegisterProperty( "sourcePositionMin", 10.0f );
114 Property::Index propertyMaxScrollPosition = sourceActor.RegisterProperty( "sourcePositionMax", 100.0f );
115 Property::Index propertyScrollContentSize = sourceActor.RegisterProperty( "sourceContentSize", 500.0f );
117 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
119 scroll_bar.SetScrollPropertySource(sourceActor, propertyScrollPosition, propertyMinScrollPosition, propertyMaxScrollPosition, propertyScrollContentSize);
121 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
122 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
123 DALI_TEST_CHECK( x );
124 DALI_TEST_EQUALS( x->GetMinimum(), 10.0, TEST_LOCATION );
129 int utcDaliAccessibilityScrollBarGetMaximum(void)
131 ToolkitTestApplication application;
133 // Create a source actor that owns the scroll properties required by the scroll bar
134 Actor sourceActor = Actor::New();
135 Stage::GetCurrent().Add( sourceActor );
137 // Register the scroll properties
138 Property::Index propertyScrollPosition = sourceActor.RegisterProperty( "sourcePosition", 0.0f );
139 Property::Index propertyMinScrollPosition = sourceActor.RegisterProperty( "sourcePositionMin", 0.0f );
140 Property::Index propertyMaxScrollPosition = sourceActor.RegisterProperty( "sourcePositionMax", 100.0f );
141 Property::Index propertyScrollContentSize = sourceActor.RegisterProperty( "sourceContentSize", 500.0f );
143 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
145 scroll_bar.SetScrollPropertySource(sourceActor, propertyScrollPosition, propertyMinScrollPosition, propertyMaxScrollPosition, propertyScrollContentSize);
147 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
148 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
149 DALI_TEST_CHECK( x );
150 DALI_TEST_EQUALS( x->GetMaximum(), 100.0, TEST_LOCATION );
155 int utcDaliAccessibilityScrollBarGetMinimumIncrement(void)
157 ToolkitTestApplication application;
159 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
160 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
161 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
162 DALI_TEST_CHECK( x );
163 DALI_TEST_EQUALS( x->GetMinimumIncrement(), 1.0, TEST_LOCATION );
168 int utcDaliAccessibilityScrollBarGetSetCurrent(void)
170 ToolkitTestApplication application;
172 // Create a source actor that owns the scroll properties required by the scroll bar
173 Actor sourceActor = Actor::New();
174 Stage::GetCurrent().Add( sourceActor );
176 // Register the scroll properties
177 Property::Index propertyScrollPosition = sourceActor.RegisterProperty( "sourcePosition", 0.0f );
178 Property::Index propertyMinScrollPosition = sourceActor.RegisterProperty( "sourcePositionMin", 0.0f );
179 Property::Index propertyMaxScrollPosition = sourceActor.RegisterProperty( "sourcePositionMax", 100.0f );
180 Property::Index propertyScrollContentSize = sourceActor.RegisterProperty( "sourceContentSize", 500.0f );
182 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
184 scroll_bar.SetScrollPropertySource(sourceActor, propertyScrollPosition, propertyMinScrollPosition, propertyMaxScrollPosition, propertyScrollContentSize);
186 //sourceActor.SetProperty(propertyScrollPosition, 20.0f);
188 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
189 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
190 DALI_TEST_CHECK( x );
191 DALI_TEST_EQUALS( x->GetCurrent(), 0.0, TEST_LOCATION );
192 DALI_TEST_EQUALS( x->SetCurrent( 1000.0 ), false, TEST_LOCATION );
193 DALI_TEST_EQUALS( x->SetCurrent( 50.0 ), false, TEST_LOCATION );
194 DALI_TEST_EQUALS( x->GetCurrent(), 0.0, TEST_LOCATION );
199 int utcDaliAccessibilitySliderGetMinimum(void)
201 ToolkitTestApplication application;
203 Toolkit::Slider slider = Toolkit::Slider::New();
204 auto q = Dali::Accessibility::Accessible::Get(slider);
205 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
206 DALI_TEST_CHECK( x );
207 DALI_TEST_EQUALS( x->GetMinimum(), 0.0, TEST_LOCATION );
212 int utcDaliAccessibilitySliderGetMaximum(void)
214 ToolkitTestApplication application;
216 Toolkit::Slider slider = Toolkit::Slider::New();
217 auto q = Dali::Accessibility::Accessible::Get(slider);
218 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
219 DALI_TEST_CHECK( x );
220 DALI_TEST_EQUALS( x->GetMaximum(), 1.0, TEST_LOCATION );
225 int utcDaliAccessibilitySliderGetMinimumIncrement(void)
227 ToolkitTestApplication application;
229 Toolkit::Slider slider = Toolkit::Slider::New();
230 auto q = Dali::Accessibility::Accessible::Get(slider);
231 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
232 DALI_TEST_CHECK( x );
233 DALI_TEST_EQUALS<float>( x->GetMinimumIncrement(), 0.0, TEST_LOCATION );
238 int utcDaliAccessibilitySliderGetSetCurrent(void)
240 ToolkitTestApplication application;
242 Toolkit::Slider slider = Toolkit::Slider::New();
243 auto q = Dali::Accessibility::Accessible::Get(slider);
244 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
245 DALI_TEST_CHECK( x );
246 DALI_TEST_EQUALS( x->GetCurrent(), 0.0, TEST_LOCATION );
247 DALI_TEST_EQUALS( x->SetCurrent( 2.0 ), false, TEST_LOCATION );
248 DALI_TEST_EQUALS( x->SetCurrent( 0.25 ), true, TEST_LOCATION );
249 DALI_TEST_EQUALS( x->GetCurrent(), 0.25, TEST_LOCATION );
251 const float MIN_BOUND = 0.0f;
252 const float MAX_BOUND = 1.0f;
253 const int NUM_MARKS = 5;
254 Property::Array marks;
255 for( int i = 0; i < NUM_MARKS; ++i )
257 marks.PushBack( MIN_BOUND + ( static_cast<float>(i) / ( NUM_MARKS - 1) ) * ( MAX_BOUND - MIN_BOUND ) );
259 slider.SetProperty( Toolkit::Slider::Property::MARKS, marks );
260 // when current value is not a mark, set new value to the closest mark
261 DALI_TEST_CHECK( x->SetCurrent( 0.1f ) );
262 slider.SetProperty( Toolkit::Slider::Property::SNAP_TO_MARKS, true );
263 DALI_TEST_CHECK( x->SetCurrent( 0.7f ) );
264 DALI_TEST_EQUALS( static_cast<float>( x->GetCurrent() ), marks[3].Get<float>(), TEST_LOCATION );
265 // when current value is a mark at index i set new value to the mark at index i +/- 1
266 // depending if the new value is greater/less than current value
267 DALI_TEST_CHECK( x->SetCurrent( 0.2f ) );
268 DALI_TEST_EQUALS( static_cast<float>( x->GetCurrent() ), marks[2].Get<float>(), TEST_LOCATION );