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;
148 struct TestTextActorCallback
150 TestTextActorCallback(bool& signalReceived)
151 : mSignalVerified(signalReceived)
154 void operator()(BaseHandle object)
156 tet_infoline("Verifying TestTextActorCallback()");
157 TextActor actor = TextActor::DownCast(object);
160 mSignalVerified = true;
163 bool& mSignalVerified;
166 struct TestAnimationCallback
168 TestAnimationCallback(bool& signalReceived)
169 : mSignalVerified(signalReceived)
172 void operator()(BaseHandle object)
174 tet_infoline("Verifying TestAnimationCallback()");
175 Animation actor = Animation::DownCast(object);
178 mSignalVerified = true;
181 bool& mSignalVerified;
184 struct TestShaderEffectCallback
186 TestShaderEffectCallback(bool& signalReceived)
187 : mSignalVerified(signalReceived)
190 void operator()(BaseHandle object)
192 tet_infoline("Verifying TestShaderEffectCallback()");
193 ShaderEffect actor = ShaderEffect::DownCast(object);
196 mSignalVerified = true;
199 bool& mSignalVerified;
203 } // anonymous namespace
208 int UtcDaliObjectRegistryGet(void)
210 TestApplication application;
212 ObjectRegistry registry; // like this for ctor code coverage
213 registry= Stage::GetCurrent().GetObjectRegistry();
215 DALI_TEST_CHECK( registry );
221 int UtcDaliObjectRegistrySignalActorCreated(void)
223 tet_infoline("Testing GetObjectRegistry()");
224 TestApplication application;
225 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
226 DALI_TEST_CHECK( registry );
228 bool verified = false;
229 TestActorCallback test(verified);
231 Dali::RefObject* objectPointer = NULL;
232 TestObjectDestroyedCallback test2(verified, objectPointer);
234 registry.ObjectCreatedSignal().Connect(&application, test);
235 registry.ObjectDestroyedSignal().Connect(&application, test2);
238 Actor actor = Actor::New();
239 DALI_TEST_CHECK( test.mSignalVerified );
242 objectPointer = actor.GetObjectPtr();
244 DALI_TEST_CHECK( test.mSignalVerified );
248 int UtcDaliObjectRegistrySignalCameraCreated(void)
250 TestApplication application;
252 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
254 bool verified = false;
255 TestCameraActorCallback test(verified);
257 Dali::RefObject* objectPointer = NULL;
258 TestObjectDestroyedCallback test2(verified, objectPointer);
260 registry.ObjectCreatedSignal().Connect(&application, test);
261 registry.ObjectDestroyedSignal().Connect(&application, test2);
264 CameraActor actor = CameraActor::New();
265 DALI_TEST_CHECK( test.mSignalVerified );
268 objectPointer = actor.GetObjectPtr();
270 DALI_TEST_CHECK( test.mSignalVerified );
274 int UtcDaliObjectRegistrySignalImageActorCreated(void)
276 TestApplication application;
277 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
279 static const char* TestImageFilename = "icon_wrt.png";
280 Image image = ResourceImage::New(TestImageFilename);
282 bool verified = false;
283 TestImageActorCallback test(verified);
285 Dali::RefObject* objectPointer = NULL;
286 TestObjectDestroyedCallback test2(verified, objectPointer);
288 registry.ObjectCreatedSignal().Connect(&application, test);
289 registry.ObjectDestroyedSignal().Connect(&application, test2);
292 ImageActor actor = ImageActor::New(image);
293 DALI_TEST_CHECK( test.mSignalVerified );
296 objectPointer = actor.GetObjectPtr();
298 DALI_TEST_CHECK( test.mSignalVerified );
302 int UtcDaliObjectRegistrySignalLayerCreated(void)
304 TestApplication application;
305 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
307 bool verified = false;
308 TestLayerCallback test(verified);
310 Dali::RefObject* objectPointer = NULL;
311 TestObjectDestroyedCallback test2(verified, objectPointer);
313 registry.ObjectCreatedSignal().Connect(&application, test);
314 registry.ObjectDestroyedSignal().Connect(&application, test2);
317 Layer actor = Layer::New();
318 DALI_TEST_CHECK( test.mSignalVerified );
321 objectPointer = actor.GetObjectPtr();
323 DALI_TEST_CHECK( test.mSignalVerified );
328 int UtcDaliObjectRegistrySignalMeshActorCreated(void)
330 TestApplication application;
331 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
333 bool verified = false;
334 TestMeshActorCallback test(verified);
336 Dali::RefObject* objectPointer = NULL;
337 TestObjectDestroyedCallback test2(verified, objectPointer);
339 registry.ObjectCreatedSignal().Connect(&application, test);
340 registry.ObjectDestroyedSignal().Connect(&application, test2);
342 Mesh mesh = ConstructMesh(60);
345 MeshActor actor = MeshActor::New(mesh);
347 DALI_TEST_CHECK(actor);
348 DALI_TEST_CHECK( test.mSignalVerified );
351 objectPointer = actor.GetObjectPtr();
353 DALI_TEST_CHECK( test.mSignalVerified );
358 int UtcDaliObjectRegistrySignalTextActorCreated(void)
360 TestApplication application;
361 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
363 bool verified = false;
364 TestTextActorCallback test(verified);
366 Dali::RefObject* objectPointer = NULL;
367 TestObjectDestroyedCallback test2(verified, objectPointer);
369 registry.ObjectCreatedSignal().Connect(&application, test);
370 registry.ObjectDestroyedSignal().Connect(&application, test2);
373 TextActor actor = TextActor::New("Hello");
374 DALI_TEST_CHECK( test.mSignalVerified );
377 objectPointer = actor.GetObjectPtr();
379 DALI_TEST_CHECK( test.mSignalVerified );
383 int UtcDaliObjectRegistrySignalAnimationCreated(void)
385 TestApplication application;
386 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
388 bool verified = false;
389 TestAnimationCallback test(verified);
391 Dali::RefObject* objectPointer = NULL;
392 TestObjectDestroyedCallback test2(verified, objectPointer);
394 registry.ObjectCreatedSignal().Connect(&application, test);
395 registry.ObjectDestroyedSignal().Connect(&application, test2);
398 Animation animation = Animation::New(1.0f);
399 DALI_TEST_CHECK( test.mSignalVerified );
402 objectPointer = animation.GetObjectPtr();
404 DALI_TEST_CHECK( test.mSignalVerified );
408 int UtcDaliObjectRegistrySignalShaderEffectCreated(void)
410 TestApplication application;
411 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
413 static const char* VertexSource =
416 " gl_Position = uProjection * uModelView * vec4(aPosition, 1.0);\n"
417 " vTexCoord = aTexCoord;\n"
420 static const char* FragmentSource =
423 " gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n"
426 bool verified = false;
427 TestShaderEffectCallback test(verified);
429 Dali::RefObject* objectPointer = NULL;
430 TestObjectDestroyedCallback test2(verified, objectPointer);
432 registry.ObjectCreatedSignal().Connect(&application, test);
433 registry.ObjectDestroyedSignal().Connect(&application, test2);
436 ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
437 DALI_TEST_CHECK( test.mSignalVerified );
440 objectPointer = effect.GetObjectPtr();
442 DALI_TEST_CHECK( test.mSignalVerified );