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-impl.h>
29 #include <dali-toolkit/devel-api/controls/scroll-bar/scroll-bar.h>
31 #include <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dbus-wrapper.h>
33 using namespace Dali::Accessibility;
35 void utc_dali_toolkit_accessibility_value_startup(void)
37 test_return_value = TET_UNDEF;
38 DBusWrapper::Install(std::unique_ptr<DBusWrapper>(new TestDBusWrapper));
41 void utc_dali_toolkit_accessibility_value_cleanup(void)
43 test_return_value = TET_PASS;
46 int utcDaliAccessibilityProgressBarGetMinimum(void)
48 ToolkitTestApplication application;
50 Toolkit::ProgressBar progress_bar = Toolkit::ProgressBar::New();
51 auto q = Dali::Accessibility::Accessible::Get( progress_bar );
52 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
54 DALI_TEST_EQUALS( x->GetMinimum(), 0.0, TEST_LOCATION );
59 int utcDaliAccessibilityProgressBarGetMaximum(void)
61 ToolkitTestApplication application;
63 Toolkit::ProgressBar progress_bar = Toolkit::ProgressBar::New();
64 auto q = Dali::Accessibility::Accessible::Get( progress_bar );
65 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
67 DALI_TEST_EQUALS( x->GetMaximum(), 1.0, TEST_LOCATION );
72 int utcDaliAccessibilityProgressBarGetMinimumIncrement(void)
74 ToolkitTestApplication application;
76 Toolkit::ProgressBar progress_bar = Toolkit::ProgressBar::New();
77 auto q = Dali::Accessibility::Accessible::Get(progress_bar);
78 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
80 DALI_TEST_EQUALS( x->GetMinimumIncrement(), 0.0, TEST_LOCATION );
85 int utcDaliAccessibilityProgressBarGetSetCurrent(void)
87 ToolkitTestApplication application;
89 Toolkit::ProgressBar progress_bar = Toolkit::ProgressBar::New();
90 auto q = Dali::Accessibility::Accessible::Get(progress_bar);
91 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
93 DALI_TEST_EQUALS( x->GetCurrent(), 0.0, TEST_LOCATION );
94 DALI_TEST_EQUALS( x->SetCurrent( 2.0 ), false, TEST_LOCATION );
95 DALI_TEST_EQUALS( x->SetCurrent( 0.25 ), true, TEST_LOCATION );
96 DALI_TEST_EQUALS( x->GetCurrent(), 0.25, TEST_LOCATION );
101 int utcDaliAccessibilityScrollBarGetMinimum(void)
103 ToolkitTestApplication application;
105 // Create a source actor that owns the scroll properties required by the scroll bar
106 Actor sourceActor = Actor::New();
107 Stage::GetCurrent().Add( sourceActor );
109 // Register the scroll properties
110 Property::Index propertyScrollPosition = sourceActor.RegisterProperty( "sourcePosition", 0.0f );
111 Property::Index propertyMinScrollPosition = sourceActor.RegisterProperty( "sourcePositionMin", 10.0f );
112 Property::Index propertyMaxScrollPosition = sourceActor.RegisterProperty( "sourcePositionMax", 100.0f );
113 Property::Index propertyScrollContentSize = sourceActor.RegisterProperty( "sourceContentSize", 500.0f );
115 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
117 scroll_bar.SetScrollPropertySource(sourceActor, propertyScrollPosition, propertyMinScrollPosition, propertyMaxScrollPosition, propertyScrollContentSize);
119 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
120 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
121 DALI_TEST_CHECK( x );
122 DALI_TEST_EQUALS( x->GetMinimum(), 10.0, TEST_LOCATION );
127 int utcDaliAccessibilityScrollBarGetMaximum(void)
129 ToolkitTestApplication application;
131 // Create a source actor that owns the scroll properties required by the scroll bar
132 Actor sourceActor = Actor::New();
133 Stage::GetCurrent().Add( sourceActor );
135 // Register the scroll properties
136 Property::Index propertyScrollPosition = sourceActor.RegisterProperty( "sourcePosition", 0.0f );
137 Property::Index propertyMinScrollPosition = sourceActor.RegisterProperty( "sourcePositionMin", 0.0f );
138 Property::Index propertyMaxScrollPosition = sourceActor.RegisterProperty( "sourcePositionMax", 100.0f );
139 Property::Index propertyScrollContentSize = sourceActor.RegisterProperty( "sourceContentSize", 500.0f );
141 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
143 scroll_bar.SetScrollPropertySource(sourceActor, propertyScrollPosition, propertyMinScrollPosition, propertyMaxScrollPosition, propertyScrollContentSize);
145 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
146 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
147 DALI_TEST_CHECK( x );
148 DALI_TEST_EQUALS( x->GetMaximum(), 100.0, TEST_LOCATION );
153 int utcDaliAccessibilityScrollBarGetMinimumIncrement(void)
155 ToolkitTestApplication application;
157 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
158 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
159 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
160 DALI_TEST_CHECK( x );
161 DALI_TEST_EQUALS( x->GetMinimumIncrement(), 1.0, TEST_LOCATION );
166 int utcDaliAccessibilityScrollBarGetSetCurrent(void)
168 ToolkitTestApplication application;
170 // Create a source actor that owns the scroll properties required by the scroll bar
171 Actor sourceActor = Actor::New();
172 Stage::GetCurrent().Add( sourceActor );
174 // Register the scroll properties
175 Property::Index propertyScrollPosition = sourceActor.RegisterProperty( "sourcePosition", 0.0f );
176 Property::Index propertyMinScrollPosition = sourceActor.RegisterProperty( "sourcePositionMin", 0.0f );
177 Property::Index propertyMaxScrollPosition = sourceActor.RegisterProperty( "sourcePositionMax", 100.0f );
178 Property::Index propertyScrollContentSize = sourceActor.RegisterProperty( "sourceContentSize", 500.0f );
180 Toolkit::ScrollBar scroll_bar = Toolkit::ScrollBar::New();
182 scroll_bar.SetScrollPropertySource(sourceActor, propertyScrollPosition, propertyMinScrollPosition, propertyMaxScrollPosition, propertyScrollContentSize);
184 //sourceActor.SetProperty(propertyScrollPosition, 20.0f);
186 auto q = Dali::Accessibility::Accessible::Get(scroll_bar);
187 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
188 DALI_TEST_CHECK( x );
189 DALI_TEST_EQUALS( x->GetCurrent(), 0.0, TEST_LOCATION );
190 DALI_TEST_EQUALS( x->SetCurrent( 1000.0 ), false, TEST_LOCATION );
191 DALI_TEST_EQUALS( x->SetCurrent( 50.0 ), false, TEST_LOCATION );
192 DALI_TEST_EQUALS( x->GetCurrent(), 0.0, TEST_LOCATION );
197 int utcDaliAccessibilitySliderGetMinimum(void)
199 ToolkitTestApplication application;
201 Toolkit::Slider slider = Toolkit::Slider::New();
202 auto q = Dali::Accessibility::Accessible::Get(slider);
203 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
204 DALI_TEST_CHECK( x );
205 DALI_TEST_EQUALS( x->GetMinimum(), 0.0, TEST_LOCATION );
210 int utcDaliAccessibilitySliderGetMaximum(void)
212 ToolkitTestApplication application;
214 Toolkit::Slider slider = Toolkit::Slider::New();
215 auto q = Dali::Accessibility::Accessible::Get(slider);
216 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
217 DALI_TEST_CHECK( x );
218 DALI_TEST_EQUALS( x->GetMaximum(), 1.0, TEST_LOCATION );
223 int utcDaliAccessibilitySliderGetMinimumIncrement(void)
225 ToolkitTestApplication application;
227 Toolkit::Slider slider = Toolkit::Slider::New();
228 auto q = Dali::Accessibility::Accessible::Get(slider);
229 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
230 DALI_TEST_CHECK( x );
231 DALI_TEST_EQUALS<float>( x->GetMinimumIncrement(), 0.0, TEST_LOCATION );
236 int utcDaliAccessibilitySliderGetSetCurrent(void)
238 ToolkitTestApplication application;
240 Toolkit::Slider slider = Toolkit::Slider::New();
241 auto q = Dali::Accessibility::Accessible::Get(slider);
242 auto x = dynamic_cast< Dali::Accessibility::Value* >( q );
243 DALI_TEST_CHECK( x );
244 DALI_TEST_EQUALS( x->GetCurrent(), 0.0, TEST_LOCATION );
245 DALI_TEST_EQUALS( x->SetCurrent( 2.0 ), false, TEST_LOCATION );
246 DALI_TEST_EQUALS( x->SetCurrent( 0.25 ), true, TEST_LOCATION );
247 DALI_TEST_EQUALS( x->GetCurrent(), 0.25, TEST_LOCATION );
249 const float MIN_BOUND = 0.0f;
250 const float MAX_BOUND = 1.0f;
251 const int NUM_MARKS = 5;
252 Property::Array marks;
253 for( int i = 0; i < NUM_MARKS; ++i )
255 marks.PushBack( MIN_BOUND + ( static_cast<float>(i) / ( NUM_MARKS - 1) ) * ( MAX_BOUND - MIN_BOUND ) );
257 slider.SetProperty( Toolkit::Slider::Property::MARKS, marks );
258 // when current value is not a mark, set new value to the closest mark
259 DALI_TEST_CHECK( x->SetCurrent( 0.1f ) );
260 slider.SetProperty( Toolkit::Slider::Property::SNAP_TO_MARKS, true );
261 DALI_TEST_CHECK( x->SetCurrent( 0.7f ) );
262 DALI_TEST_EQUALS( static_cast<float>( x->GetCurrent() ), marks[3].Get<float>(), TEST_LOCATION );
263 // when current value is a mark at index i set new value to the mark at index i +/- 1
264 // depending if the new value is greater/less than current value
265 DALI_TEST_CHECK( x->SetCurrent( 0.2f ) );
266 DALI_TEST_EQUALS( static_cast<float>( x->GetCurrent() ), marks[2].Get<float>(), TEST_LOCATION );