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;
130 struct TestMeshActorCallback
132 TestMeshActorCallback(bool& signalReceived)
133 : mSignalVerified(signalReceived)
136 void operator()(BaseHandle object)
138 tet_infoline("Verifying TestMeshActorCallback()");
139 MeshActor actor = MeshActor::DownCast(object);
142 mSignalVerified = true;
145 bool& mSignalVerified;
149 struct TestTextActorCallback
151 TestTextActorCallback(bool& signalReceived)
152 : mSignalVerified(signalReceived)
155 void operator()(BaseHandle object)
157 tet_infoline("Verifying TestTextActorCallback()");
158 TextActor actor = TextActor::DownCast(object);
161 mSignalVerified = true;
164 bool& mSignalVerified;
167 struct TestAnimationCallback
169 TestAnimationCallback(bool& signalReceived)
170 : mSignalVerified(signalReceived)
173 void operator()(BaseHandle object)
175 tet_infoline("Verifying TestAnimationCallback()");
176 Animation actor = Animation::DownCast(object);
179 mSignalVerified = true;
182 bool& mSignalVerified;
185 struct TestShaderEffectCallback
187 TestShaderEffectCallback(bool& signalReceived)
188 : mSignalVerified(signalReceived)
191 void operator()(BaseHandle object)
193 tet_infoline("Verifying TestShaderEffectCallback()");
194 ShaderEffect actor = ShaderEffect::DownCast(object);
197 mSignalVerified = true;
200 bool& mSignalVerified;
204 } // anonymous namespace
209 int UtcDaliObjectRegistryGet(void)
211 TestApplication application;
213 ObjectRegistry registry; // like this for ctor code coverage
214 registry= Stage::GetCurrent().GetObjectRegistry();
216 DALI_TEST_CHECK( registry );
222 int UtcDaliObjectRegistrySignalActorCreated(void)
224 tet_infoline("Testing GetObjectRegistry()");
225 TestApplication application;
226 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
227 DALI_TEST_CHECK( registry );
229 bool verified = false;
230 TestActorCallback test(verified);
232 Dali::RefObject* objectPointer = NULL;
233 TestObjectDestroyedCallback test2(verified, objectPointer);
235 registry.ObjectCreatedSignal().Connect(&application, test);
236 registry.ObjectDestroyedSignal().Connect(&application, test2);
239 Actor actor = Actor::New();
240 DALI_TEST_CHECK( test.mSignalVerified );
243 objectPointer = actor.GetObjectPtr();
245 DALI_TEST_CHECK( test.mSignalVerified );
249 int UtcDaliObjectRegistrySignalCameraCreated(void)
251 TestApplication application;
253 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
255 bool verified = false;
256 TestCameraActorCallback test(verified);
258 Dali::RefObject* objectPointer = NULL;
259 TestObjectDestroyedCallback test2(verified, objectPointer);
261 registry.ObjectCreatedSignal().Connect(&application, test);
262 registry.ObjectDestroyedSignal().Connect(&application, test2);
265 CameraActor actor = CameraActor::New();
266 DALI_TEST_CHECK( test.mSignalVerified );
269 objectPointer = actor.GetObjectPtr();
271 DALI_TEST_CHECK( test.mSignalVerified );
275 int UtcDaliObjectRegistrySignalImageActorCreated(void)
277 TestApplication application;
278 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
280 static const char* TestImageFilename = "icon_wrt.png";
281 Image image = ResourceImage::New(TestImageFilename);
283 bool verified = false;
284 TestImageActorCallback test(verified);
286 Dali::RefObject* objectPointer = NULL;
287 TestObjectDestroyedCallback test2(verified, objectPointer);
289 registry.ObjectCreatedSignal().Connect(&application, test);
290 registry.ObjectDestroyedSignal().Connect(&application, test2);
293 ImageActor actor = ImageActor::New(image);
294 DALI_TEST_CHECK( test.mSignalVerified );
297 objectPointer = actor.GetObjectPtr();
299 DALI_TEST_CHECK( test.mSignalVerified );
303 int UtcDaliObjectRegistrySignalLayerCreated(void)
305 TestApplication application;
306 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
308 bool verified = false;
309 TestLayerCallback test(verified);
311 Dali::RefObject* objectPointer = NULL;
312 TestObjectDestroyedCallback test2(verified, objectPointer);
314 registry.ObjectCreatedSignal().Connect(&application, test);
315 registry.ObjectDestroyedSignal().Connect(&application, test2);
318 Layer actor = Layer::New();
319 DALI_TEST_CHECK( test.mSignalVerified );
322 objectPointer = actor.GetObjectPtr();
324 DALI_TEST_CHECK( test.mSignalVerified );
329 int UtcDaliObjectRegistrySignalMeshActorCreated(void)
331 TestApplication application;
332 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
334 bool verified = false;
335 TestMeshActorCallback test(verified);
337 Dali::RefObject* objectPointer = NULL;
338 TestObjectDestroyedCallback test2(verified, objectPointer);
340 registry.ObjectCreatedSignal().Connect(&application, test);
341 registry.ObjectDestroyedSignal().Connect(&application, test2);
343 Mesh mesh = ConstructMesh(60);
346 MeshActor actor = MeshActor::New(mesh);
348 DALI_TEST_CHECK(actor);
349 DALI_TEST_CHECK( test.mSignalVerified );
352 objectPointer = actor.GetObjectPtr();
354 DALI_TEST_CHECK( test.mSignalVerified );
359 int UtcDaliObjectRegistrySignalAnimationCreated(void)
361 TestApplication application;
362 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
364 bool verified = false;
365 TestAnimationCallback test(verified);
367 Dali::RefObject* objectPointer = NULL;
368 TestObjectDestroyedCallback test2(verified, objectPointer);
370 registry.ObjectCreatedSignal().Connect(&application, test);
371 registry.ObjectDestroyedSignal().Connect(&application, test2);
374 Animation animation = Animation::New(1.0f);
375 DALI_TEST_CHECK( test.mSignalVerified );
378 objectPointer = animation.GetObjectPtr();
380 DALI_TEST_CHECK( test.mSignalVerified );
384 int UtcDaliObjectRegistrySignalShaderEffectCreated(void)
386 TestApplication application;
387 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
389 static const char* VertexSource =
392 " gl_Position = uProjection * uModelView * vec4(aPosition, 1.0);\n"
393 " vTexCoord = aTexCoord;\n"
396 static const char* FragmentSource =
399 " gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n"
402 bool verified = false;
403 TestShaderEffectCallback test(verified);
405 Dali::RefObject* objectPointer = NULL;
406 TestObjectDestroyedCallback test2(verified, objectPointer);
408 registry.ObjectCreatedSignal().Connect(&application, test);
409 registry.ObjectDestroyedSignal().Connect(&application, test2);
412 ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
413 DALI_TEST_CHECK( test.mSignalVerified );
416 objectPointer = effect.GetObjectPtr();
418 DALI_TEST_CHECK( test.mSignalVerified );