2 * Copyright (c) 2014 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.
20 #include <dali-toolkit-test-suite-utils.h>
21 #include <dali-toolkit/dali-toolkit.h>
22 #include <dali/integration-api/events/touch-event-integ.h>
23 #include <dali-toolkit/devel-api/controls/slider/slider.h>
26 using namespace Dali::Toolkit;
28 void dali_slider_startup(void)
30 test_return_value = TET_UNDEF;
33 void dali_slider_cleanup(void)
35 test_return_value = TET_PASS;
41 static bool gObjectCreatedCallBackCalled;
43 static void TestCallback(BaseHandle handle)
45 gObjectCreatedCallBackCalled = true;
50 int UtcDaliSliderNew(void)
52 ToolkitTestApplication application;
53 tet_infoline(" UtcDaliSliderNew");
55 // Create the Slider actor
58 DALI_TEST_CHECK( !slider );
60 slider = Slider::New();
62 DALI_TEST_CHECK( slider );
64 Slider slider2(slider);
66 DALI_TEST_CHECK( slider2 == slider );
68 //Additional check to ensure object is created by checking if it's registered
69 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
70 DALI_TEST_CHECK( registry );
72 gObjectCreatedCallBackCalled = false;
73 registry.ObjectCreatedSignal().Connect( &TestCallback );
75 Slider slider = Slider::New();
77 DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
81 int UtcDaliSliderDestructor(void)
83 ToolkitTestApplication application;
85 Slider* slider = new Slider();
88 DALI_TEST_CHECK( true );
92 int UtcDaliSliderDownCast(void)
94 ToolkitTestApplication application;
96 Handle handle = Slider::New();
98 Slider slider = Slider::DownCast( handle );
100 DALI_TEST_CHECK( slider == handle );
104 static bool gSliderValueChangedCallBackCalled;
105 static bool OnSliderValueChanged( Slider slider, float value )
107 gSliderValueChangedCallBackCalled = true;
111 static bool gSliderMarkCallBackCalled;
112 static bool OnSliderMark( Slider slider, int value )
114 gSliderMarkCallBackCalled = true;
118 int UtcDaliSliderSignals(void)
120 ToolkitTestApplication application; // Exceptions require ToolkitTestApplication
121 tet_infoline(" UtcDaliSliderSignals");
123 // Create the Popup actor
124 Slider slider = Slider::New();
125 Stage::GetCurrent().Add( slider );
126 slider.SetParentOrigin(ParentOrigin::TOP_LEFT);
127 slider.SetAnchorPoint(ParentOrigin::TOP_LEFT);
128 slider.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
129 slider.SetPosition( 0.0f, 0.0f );
131 const float MIN_BOUND = 0.0f;
132 const float MAX_BOUND = 1.0f;
133 const int NUM_MARKS = 5;
134 Property::Array marks;
135 for( int i = 0; i < NUM_MARKS; ++i )
137 marks.PushBack( MIN_BOUND + ( static_cast<float>(i) / ( NUM_MARKS - 1) ) * ( MAX_BOUND - MIN_BOUND ) );
139 slider.SetProperty( Slider::Property::MARKS, marks );
140 slider.SetProperty( Slider::Property::MARK_TOLERANCE, 0.1f );
142 slider.ValueChangedSignal().Connect( &OnSliderValueChanged );
143 slider.MarkSignal().Connect( &OnSliderMark );
145 application.SendNotification();
146 application.Render();
148 gSliderValueChangedCallBackCalled = false;
149 gSliderMarkCallBackCalled = false;
151 Dali::Integration::TouchEvent event;
153 event = Dali::Integration::TouchEvent();
155 const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 10.0f, 10.0f );
156 event.AddPoint( pointDown );
158 for( int i = 0; i < 5; ++i )
160 const Dali::TouchPoint pointDown( 0, TouchPoint::Motion, 10.0f + i * 10.0f, 10.0f );
161 event.AddPoint( pointDown );
164 const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 50.0f, 10.0f );
165 event.AddPoint( pointUp );
167 application.ProcessEvent( event );
169 application.SendNotification();
170 application.Render();
172 DALI_TEST_CHECK(gSliderValueChangedCallBackCalled);
173 DALI_TEST_CHECK(gSliderMarkCallBackCalled);