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>
25 using namespace Dali::Toolkit;
27 void dali_slider_startup(void)
29 test_return_value = TET_UNDEF;
32 void dali_slider_cleanup(void)
34 test_return_value = TET_PASS;
40 static bool gObjectCreatedCallBackCalled;
42 static void TestCallback(BaseHandle handle)
44 gObjectCreatedCallBackCalled = true;
49 int UtcDaliSliderNew(void)
51 ToolkitTestApplication application;
52 tet_infoline(" UtcDaliSliderNew");
54 // Create the Slider actor
57 DALI_TEST_CHECK( !slider );
59 slider = Slider::New();
61 DALI_TEST_CHECK( slider );
63 Slider slider2(slider);
65 DALI_TEST_CHECK( slider2 == slider );
67 //Additional check to ensure object is created by checking if it's registered
68 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
69 DALI_TEST_CHECK( registry );
71 gObjectCreatedCallBackCalled = false;
72 registry.ObjectCreatedSignal().Connect( &TestCallback );
74 Slider slider = Slider::New();
76 DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
80 int UtcDaliSliderDestructor(void)
82 ToolkitTestApplication application;
84 Slider* slider = new Slider();
87 DALI_TEST_CHECK( true );
91 int UtcDaliSliderDownCast(void)
93 ToolkitTestApplication application;
95 Handle handle = Slider::New();
97 Slider slider = Slider::DownCast( handle );
99 DALI_TEST_CHECK( slider == handle );
103 static bool gSliderValueChangedCallBackCalled;
104 static bool OnSliderValueChanged( Slider slider, float value )
106 gSliderValueChangedCallBackCalled = true;
110 static bool gSliderMarkCallBackCalled;
111 static bool OnSliderMark( Slider slider, int value )
113 gSliderMarkCallBackCalled = true;
117 int UtcDaliSliderSignals(void)
119 ToolkitTestApplication application; // Exceptions require ToolkitTestApplication
120 tet_infoline(" UtcDaliSliderSignals");
122 // Create the Popup actor
123 Slider slider = Slider::New();
124 Stage::GetCurrent().Add( slider );
125 slider.SetParentOrigin(ParentOrigin::TOP_LEFT);
126 slider.SetAnchorPoint(ParentOrigin::TOP_LEFT);
127 slider.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
128 slider.SetPosition( 0.0f, 0.0f );
130 const float MIN_BOUND = 0.0f;
131 const float MAX_BOUND = 1.0f;
132 const int NUM_MARKS = 5;
133 Property::Array marks;
134 for( int i = 0; i < NUM_MARKS; ++i )
136 marks.PushBack( MIN_BOUND + ( static_cast<float>(i) / ( NUM_MARKS - 1) ) * ( MAX_BOUND - MIN_BOUND ) );
138 slider.SetProperty( Slider::Property::MARKS, marks );
139 slider.SetProperty( Slider::Property::MARK_TOLERANCE, 0.1f );
141 slider.ValueChangedSignal().Connect( &OnSliderValueChanged );
142 slider.MarkSignal().Connect( &OnSliderMark );
144 application.SendNotification();
145 application.Render();
147 gSliderValueChangedCallBackCalled = false;
148 gSliderMarkCallBackCalled = false;
150 Dali::Integration::TouchEvent event;
152 event = Dali::Integration::TouchEvent();
154 const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 10.0f, 10.0f );
155 event.AddPoint( pointDown );
157 for( int i = 0; i < 5; ++i )
159 const Dali::TouchPoint pointDown( 0, TouchPoint::Motion, 10.0f + i * 10.0f, 10.0f );
160 event.AddPoint( pointDown );
163 const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 50.0f, 10.0f );
164 event.AddPoint( pointUp );
166 application.ProcessEvent( event );
168 application.SendNotification();
169 application.Render();
171 DALI_TEST_CHECK(gSliderValueChangedCallBackCalled);
172 DALI_TEST_CHECK(gSliderMarkCallBackCalled);