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.
21 #include <dali-test-suite-utils.h>
22 #include <dali/public-api/dali-core.h>
26 #include "mesh-builder.h"
31 // Functors to test whether Object created/destroyed signal is emitted for different types of Objects
33 struct TestObjectDestroyedCallback
35 TestObjectDestroyedCallback(bool& signalReceived, Dali::RefObject*& objectPointer)
36 : mSignalVerified(signalReceived),
37 mObjectPointer(objectPointer)
41 void operator()(const Dali::RefObject* objectPointer)
43 tet_infoline("Verifying TestObjectDestroyedCallback()");
45 if(objectPointer == mObjectPointer)
47 mSignalVerified = true;
51 bool& mSignalVerified;
52 Dali::RefObject*& mObjectPointer;
55 struct TestActorCallback
57 TestActorCallback(bool& signalReceived)
58 : mSignalVerified(signalReceived)
62 void operator()(BaseHandle object)
64 tet_infoline("Verifying TestActorCallback()");
65 Actor actor = Actor::DownCast(object);
68 mSignalVerified = true;
72 bool& mSignalVerified;
75 struct TestCameraActorCallback
77 TestCameraActorCallback(bool& signalReceived)
78 : mSignalVerified(signalReceived)
81 void operator()(BaseHandle object)
83 tet_infoline("Verifying TestCameraActorCallback()");
84 CameraActor actor = CameraActor::DownCast(object);
87 mSignalVerified = true;
90 bool& mSignalVerified;
93 struct TestImageActorCallback
95 TestImageActorCallback(bool& signalReceived)
96 : mSignalVerified(signalReceived)
99 void operator()(BaseHandle object)
101 tet_infoline("Verifying TestImageActorCallback()");
102 ImageActor actor = ImageActor::DownCast(object);
105 mSignalVerified = true;
108 bool& mSignalVerified;
111 struct TestLayerCallback
113 TestLayerCallback(bool& signalReceived)
114 : mSignalVerified(signalReceived)
117 void operator()(BaseHandle object)
119 tet_infoline("Verifying TestLayerCallback()");
120 Layer actor = Layer::DownCast(object);
123 mSignalVerified = true;
126 bool& mSignalVerified;
129 struct TestAnimationCallback
131 TestAnimationCallback(bool& signalReceived)
132 : mSignalVerified(signalReceived)
135 void operator()(BaseHandle object)
137 tet_infoline("Verifying TestAnimationCallback()");
138 Animation actor = Animation::DownCast(object);
141 mSignalVerified = true;
144 bool& mSignalVerified;
147 struct TestShaderEffectCallback
149 TestShaderEffectCallback(bool& signalReceived)
150 : mSignalVerified(signalReceived)
153 void operator()(BaseHandle object)
155 tet_infoline("Verifying TestShaderEffectCallback()");
156 ShaderEffect actor = ShaderEffect::DownCast(object);
159 mSignalVerified = true;
162 bool& mSignalVerified;
166 } // anonymous namespace
171 int UtcDaliObjectRegistryGet(void)
173 TestApplication application;
175 ObjectRegistry registry; // like this for ctor code coverage
176 registry= Stage::GetCurrent().GetObjectRegistry();
178 DALI_TEST_CHECK( registry );
184 int UtcDaliObjectRegistrySignalActorCreated(void)
186 tet_infoline("Testing GetObjectRegistry()");
187 TestApplication application;
188 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
189 DALI_TEST_CHECK( registry );
191 bool verified = false;
192 TestActorCallback test(verified);
194 Dali::RefObject* objectPointer = NULL;
195 TestObjectDestroyedCallback test2(verified, objectPointer);
197 registry.ObjectCreatedSignal().Connect(&application, test);
198 registry.ObjectDestroyedSignal().Connect(&application, test2);
201 Actor actor = Actor::New();
202 DALI_TEST_CHECK( test.mSignalVerified );
205 objectPointer = actor.GetObjectPtr();
207 DALI_TEST_CHECK( test.mSignalVerified );
211 int UtcDaliObjectRegistrySignalCameraCreated(void)
213 TestApplication application;
215 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
217 bool verified = false;
218 TestCameraActorCallback test(verified);
220 Dali::RefObject* objectPointer = NULL;
221 TestObjectDestroyedCallback test2(verified, objectPointer);
223 registry.ObjectCreatedSignal().Connect(&application, test);
224 registry.ObjectDestroyedSignal().Connect(&application, test2);
227 CameraActor actor = CameraActor::New();
228 DALI_TEST_CHECK( test.mSignalVerified );
231 objectPointer = actor.GetObjectPtr();
233 DALI_TEST_CHECK( test.mSignalVerified );
237 int UtcDaliObjectRegistrySignalImageActorCreated(void)
239 TestApplication application;
240 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
242 static const char* TestImageFilename = "icon_wrt.png";
243 Image image = ResourceImage::New(TestImageFilename);
245 bool verified = false;
246 TestImageActorCallback test(verified);
248 Dali::RefObject* objectPointer = NULL;
249 TestObjectDestroyedCallback test2(verified, objectPointer);
251 registry.ObjectCreatedSignal().Connect(&application, test);
252 registry.ObjectDestroyedSignal().Connect(&application, test2);
255 ImageActor actor = ImageActor::New(image);
256 DALI_TEST_CHECK( test.mSignalVerified );
259 objectPointer = actor.GetObjectPtr();
261 DALI_TEST_CHECK( test.mSignalVerified );
265 int UtcDaliObjectRegistrySignalLayerCreated(void)
267 TestApplication application;
268 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
270 bool verified = false;
271 TestLayerCallback test(verified);
273 Dali::RefObject* objectPointer = NULL;
274 TestObjectDestroyedCallback test2(verified, objectPointer);
276 registry.ObjectCreatedSignal().Connect(&application, test);
277 registry.ObjectDestroyedSignal().Connect(&application, test2);
280 Layer actor = Layer::New();
281 DALI_TEST_CHECK( test.mSignalVerified );
284 objectPointer = actor.GetObjectPtr();
286 DALI_TEST_CHECK( test.mSignalVerified );
290 int UtcDaliObjectRegistrySignalAnimationCreated(void)
292 TestApplication application;
293 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
295 bool verified = false;
296 TestAnimationCallback test(verified);
298 Dali::RefObject* objectPointer = NULL;
299 TestObjectDestroyedCallback test2(verified, objectPointer);
301 registry.ObjectCreatedSignal().Connect(&application, test);
302 registry.ObjectDestroyedSignal().Connect(&application, test2);
305 Animation animation = Animation::New(1.0f);
306 DALI_TEST_CHECK( test.mSignalVerified );
309 objectPointer = animation.GetObjectPtr();
311 DALI_TEST_CHECK( test.mSignalVerified );
315 int UtcDaliObjectRegistrySignalShaderEffectCreated(void)
317 TestApplication application;
318 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
320 static const char* VertexSource =
323 " gl_Position = uProjection * uModelView * vec4(aPosition, 1.0);\n"
324 " vTexCoord = aTexCoord;\n"
327 static const char* FragmentSource =
330 " gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n"
333 bool verified = false;
334 TestShaderEffectCallback test(verified);
336 Dali::RefObject* objectPointer = NULL;
337 TestObjectDestroyedCallback test2(verified, objectPointer);
339 registry.ObjectCreatedSignal().Connect(&application, test);
340 registry.ObjectDestroyedSignal().Connect(&application, test2);
343 ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
344 DALI_TEST_CHECK( test.mSignalVerified );
347 objectPointer = effect.GetObjectPtr();
349 DALI_TEST_CHECK( test.mSignalVerified );