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 TestAnimationCallback
150 TestAnimationCallback(bool& signalReceived)
151 : mSignalVerified(signalReceived)
154 void operator()(BaseHandle object)
156 tet_infoline("Verifying TestAnimationCallback()");
157 Animation actor = Animation::DownCast(object);
160 mSignalVerified = true;
163 bool& mSignalVerified;
166 struct TestShaderEffectCallback
168 TestShaderEffectCallback(bool& signalReceived)
169 : mSignalVerified(signalReceived)
172 void operator()(BaseHandle object)
174 tet_infoline("Verifying TestShaderEffectCallback()");
175 ShaderEffect actor = ShaderEffect::DownCast(object);
178 mSignalVerified = true;
181 bool& mSignalVerified;
185 } // anonymous namespace
190 int UtcDaliObjectRegistryGet(void)
192 TestApplication application;
194 ObjectRegistry registry; // like this for ctor code coverage
195 registry= Stage::GetCurrent().GetObjectRegistry();
197 DALI_TEST_CHECK( registry );
203 int UtcDaliObjectRegistrySignalActorCreated(void)
205 tet_infoline("Testing GetObjectRegistry()");
206 TestApplication application;
207 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
208 DALI_TEST_CHECK( registry );
210 bool verified = false;
211 TestActorCallback test(verified);
213 Dali::RefObject* objectPointer = NULL;
214 TestObjectDestroyedCallback test2(verified, objectPointer);
216 registry.ObjectCreatedSignal().Connect(&application, test);
217 registry.ObjectDestroyedSignal().Connect(&application, test2);
220 Actor actor = Actor::New();
221 DALI_TEST_CHECK( test.mSignalVerified );
224 objectPointer = actor.GetObjectPtr();
226 DALI_TEST_CHECK( test.mSignalVerified );
230 int UtcDaliObjectRegistrySignalCameraCreated(void)
232 TestApplication application;
234 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
236 bool verified = false;
237 TestCameraActorCallback test(verified);
239 Dali::RefObject* objectPointer = NULL;
240 TestObjectDestroyedCallback test2(verified, objectPointer);
242 registry.ObjectCreatedSignal().Connect(&application, test);
243 registry.ObjectDestroyedSignal().Connect(&application, test2);
246 CameraActor actor = CameraActor::New();
247 DALI_TEST_CHECK( test.mSignalVerified );
250 objectPointer = actor.GetObjectPtr();
252 DALI_TEST_CHECK( test.mSignalVerified );
256 int UtcDaliObjectRegistrySignalImageActorCreated(void)
258 TestApplication application;
259 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
261 static const char* TestImageFilename = "icon_wrt.png";
262 Image image = ResourceImage::New(TestImageFilename);
264 bool verified = false;
265 TestImageActorCallback test(verified);
267 Dali::RefObject* objectPointer = NULL;
268 TestObjectDestroyedCallback test2(verified, objectPointer);
270 registry.ObjectCreatedSignal().Connect(&application, test);
271 registry.ObjectDestroyedSignal().Connect(&application, test2);
274 ImageActor actor = ImageActor::New(image);
275 DALI_TEST_CHECK( test.mSignalVerified );
278 objectPointer = actor.GetObjectPtr();
280 DALI_TEST_CHECK( test.mSignalVerified );
284 int UtcDaliObjectRegistrySignalLayerCreated(void)
286 TestApplication application;
287 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
289 bool verified = false;
290 TestLayerCallback test(verified);
292 Dali::RefObject* objectPointer = NULL;
293 TestObjectDestroyedCallback test2(verified, objectPointer);
295 registry.ObjectCreatedSignal().Connect(&application, test);
296 registry.ObjectDestroyedSignal().Connect(&application, test2);
299 Layer actor = Layer::New();
300 DALI_TEST_CHECK( test.mSignalVerified );
303 objectPointer = actor.GetObjectPtr();
305 DALI_TEST_CHECK( test.mSignalVerified );
310 int UtcDaliObjectRegistrySignalMeshActorCreated(void)
312 TestApplication application;
313 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
315 bool verified = false;
316 TestMeshActorCallback test(verified);
318 Dali::RefObject* objectPointer = NULL;
319 TestObjectDestroyedCallback test2(verified, objectPointer);
321 registry.ObjectCreatedSignal().Connect(&application, test);
322 registry.ObjectDestroyedSignal().Connect(&application, test2);
324 Mesh mesh = ConstructMesh(60);
327 MeshActor actor = MeshActor::New(mesh);
329 DALI_TEST_CHECK(actor);
330 DALI_TEST_CHECK( test.mSignalVerified );
333 objectPointer = actor.GetObjectPtr();
335 DALI_TEST_CHECK( test.mSignalVerified );
340 int UtcDaliObjectRegistrySignalAnimationCreated(void)
342 TestApplication application;
343 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
345 bool verified = false;
346 TestAnimationCallback test(verified);
348 Dali::RefObject* objectPointer = NULL;
349 TestObjectDestroyedCallback test2(verified, objectPointer);
351 registry.ObjectCreatedSignal().Connect(&application, test);
352 registry.ObjectDestroyedSignal().Connect(&application, test2);
355 Animation animation = Animation::New(1.0f);
356 DALI_TEST_CHECK( test.mSignalVerified );
359 objectPointer = animation.GetObjectPtr();
361 DALI_TEST_CHECK( test.mSignalVerified );
365 int UtcDaliObjectRegistrySignalShaderEffectCreated(void)
367 TestApplication application;
368 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
370 static const char* VertexSource =
373 " gl_Position = uProjection * uModelView * vec4(aPosition, 1.0);\n"
374 " vTexCoord = aTexCoord;\n"
377 static const char* FragmentSource =
380 " gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n"
383 bool verified = false;
384 TestShaderEffectCallback test(verified);
386 Dali::RefObject* objectPointer = NULL;
387 TestObjectDestroyedCallback test2(verified, objectPointer);
389 registry.ObjectCreatedSignal().Connect(&application, test);
390 registry.ObjectDestroyedSignal().Connect(&application, test2);
393 ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
394 DALI_TEST_CHECK( test.mSignalVerified );
397 objectPointer = effect.GetObjectPtr();
399 DALI_TEST_CHECK( test.mSignalVerified );