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 );
99 DALI_TEST_EQUALS( x->GetValueText().empty(), true, TEST_LOCATION ); // not implemented
104 int utcDaliAccessibilityScrollBarGetMinimum(void)
106 ToolkitTestApplication application;
108 // Create a source actor that owns the scroll properties required by the scroll bar
109 Actor sourceActor = Actor::New();
110 Stage::GetCurrent().Add( sourceActor );
112 // Register the scroll properties
113 Property::Index propertyScrollPosition = sourceActor.RegisterProperty( "sourcePosition", 0.0f );
114 Property::Index propertyMinScrollPosition = sourceActor.RegisterProperty( "sourcePositionMin", 10.0f );
115 Property::Index propertyMaxScrollPosition = sourceActor.RegisterProperty( "sourcePositionMax", 100.0f );
116 Property::Index propertyScrollContentSize = sourceActor.RegisterProperty( "sourceContentSize", 500.0f );
118 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
120 scroll_bar.SetScrollPropertySource(sourceActor, propertyScrollPosition, propertyMinScrollPosition, propertyMaxScrollPosition, propertyScrollContentSize);
122 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
123 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
124 DALI_TEST_CHECK( x );
125 DALI_TEST_EQUALS( x->GetMinimum(), 10.0, TEST_LOCATION );
130 int utcDaliAccessibilityScrollBarGetMaximum(void)
132 ToolkitTestApplication application;
134 // Create a source actor that owns the scroll properties required by the scroll bar
135 Actor sourceActor = Actor::New();
136 Stage::GetCurrent().Add( sourceActor );
138 // Register the scroll properties
139 Property::Index propertyScrollPosition = sourceActor.RegisterProperty( "sourcePosition", 0.0f );
140 Property::Index propertyMinScrollPosition = sourceActor.RegisterProperty( "sourcePositionMin", 0.0f );
141 Property::Index propertyMaxScrollPosition = sourceActor.RegisterProperty( "sourcePositionMax", 100.0f );
142 Property::Index propertyScrollContentSize = sourceActor.RegisterProperty( "sourceContentSize", 500.0f );
144 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
146 scroll_bar.SetScrollPropertySource(sourceActor, propertyScrollPosition, propertyMinScrollPosition, propertyMaxScrollPosition, propertyScrollContentSize);
148 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
149 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
150 DALI_TEST_CHECK( x );
151 DALI_TEST_EQUALS( x->GetMaximum(), 100.0, TEST_LOCATION );
156 int utcDaliAccessibilityScrollBarGetMinimumIncrement(void)
158 ToolkitTestApplication application;
160 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
161 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
162 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
163 DALI_TEST_CHECK( x );
164 DALI_TEST_EQUALS( x->GetMinimumIncrement(), 1.0, TEST_LOCATION );
169 int utcDaliAccessibilityScrollBarGetSetCurrent(void)
171 ToolkitTestApplication application;
173 // Create a source actor that owns the scroll properties required by the scroll bar
174 Actor sourceActor = Actor::New();
175 Stage::GetCurrent().Add( sourceActor );
177 // Register the scroll properties
178 Property::Index propertyScrollPosition = sourceActor.RegisterProperty( "sourcePosition", 0.0f );
179 Property::Index propertyMinScrollPosition = sourceActor.RegisterProperty( "sourcePositionMin", 0.0f );
180 Property::Index propertyMaxScrollPosition = sourceActor.RegisterProperty( "sourcePositionMax", 100.0f );
181 Property::Index propertyScrollContentSize = sourceActor.RegisterProperty( "sourceContentSize", 500.0f );
183 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
185 scroll_bar.SetScrollPropertySource(sourceActor, propertyScrollPosition, propertyMinScrollPosition, propertyMaxScrollPosition, propertyScrollContentSize);
187 //sourceActor.SetProperty(propertyScrollPosition, 20.0f);
189 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
190 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
191 DALI_TEST_CHECK( x );
192 DALI_TEST_EQUALS( x->GetCurrent(), 0.0, TEST_LOCATION );
193 DALI_TEST_EQUALS( x->SetCurrent( 1000.0 ), false, TEST_LOCATION );
194 DALI_TEST_EQUALS( x->SetCurrent( 50.0 ), false, TEST_LOCATION );
195 DALI_TEST_EQUALS( x->GetCurrent(), 0.0, TEST_LOCATION );
196 DALI_TEST_EQUALS( x->GetValueText().empty(), true, TEST_LOCATION ); // not implemented
201 int utcDaliAccessibilitySliderGetMinimum(void)
203 ToolkitTestApplication application;
205 Toolkit::Slider slider = Toolkit::Slider::New();
206 auto q = Dali::Accessibility::Accessible::Get(slider);
207 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
208 DALI_TEST_CHECK( x );
209 DALI_TEST_EQUALS( x->GetMinimum(), 0.0, TEST_LOCATION );
214 int utcDaliAccessibilitySliderGetMaximum(void)
216 ToolkitTestApplication application;
218 Toolkit::Slider slider = Toolkit::Slider::New();
219 auto q = Dali::Accessibility::Accessible::Get(slider);
220 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
221 DALI_TEST_CHECK( x );
222 DALI_TEST_EQUALS( x->GetMaximum(), 1.0, TEST_LOCATION );
227 int utcDaliAccessibilitySliderGetMinimumIncrement(void)
229 ToolkitTestApplication application;
231 Toolkit::Slider slider = Toolkit::Slider::New();
232 auto q = Dali::Accessibility::Accessible::Get(slider);
233 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
234 DALI_TEST_CHECK( x );
235 DALI_TEST_EQUALS<float>( x->GetMinimumIncrement(), 0.0, TEST_LOCATION );
240 int utcDaliAccessibilitySliderGetSetCurrent(void)
242 ToolkitTestApplication application;
244 Toolkit::Slider slider = Toolkit::Slider::New();
245 auto q = Dali::Accessibility::Accessible::Get(slider);
246 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
247 DALI_TEST_CHECK( x );
248 DALI_TEST_EQUALS( x->GetCurrent(), 0.0, TEST_LOCATION );
249 DALI_TEST_EQUALS( x->SetCurrent( 2.0 ), false, TEST_LOCATION );
250 DALI_TEST_EQUALS( x->SetCurrent( 0.25 ), true, TEST_LOCATION );
251 DALI_TEST_EQUALS( x->GetCurrent(), 0.25, TEST_LOCATION );
252 DALI_TEST_EQUALS( x->GetValueText().empty(), true, TEST_LOCATION ); // not implemented
254 const float MIN_BOUND = 0.0f;
255 const float MAX_BOUND = 1.0f;
256 const int NUM_MARKS = 5;
257 Property::Array marks;
258 for( int i = 0; i < NUM_MARKS; ++i )
260 marks.PushBack( MIN_BOUND + ( static_cast<float>(i) / ( NUM_MARKS - 1) ) * ( MAX_BOUND - MIN_BOUND ) );
262 slider.SetProperty( Toolkit::Slider::Property::MARKS, marks );
263 // when current value is not a mark, set new value to the closest mark
264 DALI_TEST_CHECK( x->SetCurrent( 0.1f ) );
265 slider.SetProperty( Toolkit::Slider::Property::SNAP_TO_MARKS, true );
266 DALI_TEST_CHECK( x->SetCurrent( 0.7f ) );
267 DALI_TEST_EQUALS( static_cast<float>( x->GetCurrent() ), marks[3].Get<float>(), TEST_LOCATION );
268 // when current value is a mark at index i set new value to the mark at index i +/- 1
269 // depending if the new value is greater/less than current value
270 DALI_TEST_CHECK( x->SetCurrent( 0.2f ) );
271 DALI_TEST_EQUALS( static_cast<float>( x->GetCurrent() ), marks[2].Get<float>(), TEST_LOCATION );