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 TestTextActorCallback
131 TestTextActorCallback(bool& signalReceived)
132 : mSignalVerified(signalReceived)
135 void operator()(BaseHandle object)
137 tet_infoline("Verifying TestTextActorCallback()");
138 TextActor actor = TextActor::DownCast(object);
141 mSignalVerified = true;
144 bool& mSignalVerified;
147 struct TestAnimationCallback
149 TestAnimationCallback(bool& signalReceived)
150 : mSignalVerified(signalReceived)
153 void operator()(BaseHandle object)
155 tet_infoline("Verifying TestAnimationCallback()");
156 Animation actor = Animation::DownCast(object);
159 mSignalVerified = true;
162 bool& mSignalVerified;
165 struct TestShaderEffectCallback
167 TestShaderEffectCallback(bool& signalReceived)
168 : mSignalVerified(signalReceived)
171 void operator()(BaseHandle object)
173 tet_infoline("Verifying TestShaderEffectCallback()");
174 ShaderEffect actor = ShaderEffect::DownCast(object);
177 mSignalVerified = true;
180 bool& mSignalVerified;
184 } // anonymous namespace
189 int UtcDaliObjectRegistryGet(void)
191 TestApplication application;
193 ObjectRegistry registry; // like this for ctor code coverage
194 registry= Stage::GetCurrent().GetObjectRegistry();
196 DALI_TEST_CHECK( registry );
202 int UtcDaliObjectRegistrySignalActorCreated(void)
204 tet_infoline("Testing GetObjectRegistry()");
205 TestApplication application;
206 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
207 DALI_TEST_CHECK( registry );
209 bool verified = false;
210 TestActorCallback test(verified);
212 Dali::RefObject* objectPointer = NULL;
213 TestObjectDestroyedCallback test2(verified, objectPointer);
215 registry.ObjectCreatedSignal().Connect(&application, test);
216 registry.ObjectDestroyedSignal().Connect(&application, test2);
219 Actor actor = Actor::New();
220 DALI_TEST_CHECK( test.mSignalVerified );
223 objectPointer = actor.GetObjectPtr();
225 DALI_TEST_CHECK( test.mSignalVerified );
229 int UtcDaliObjectRegistrySignalCameraCreated(void)
231 TestApplication application;
233 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
235 bool verified = false;
236 TestCameraActorCallback test(verified);
238 Dali::RefObject* objectPointer = NULL;
239 TestObjectDestroyedCallback test2(verified, objectPointer);
241 registry.ObjectCreatedSignal().Connect(&application, test);
242 registry.ObjectDestroyedSignal().Connect(&application, test2);
245 CameraActor actor = CameraActor::New();
246 DALI_TEST_CHECK( test.mSignalVerified );
249 objectPointer = actor.GetObjectPtr();
251 DALI_TEST_CHECK( test.mSignalVerified );
255 int UtcDaliObjectRegistrySignalImageActorCreated(void)
257 TestApplication application;
258 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
260 static const char* TestImageFilename = "icon_wrt.png";
261 Image image = ResourceImage::New(TestImageFilename);
263 bool verified = false;
264 TestImageActorCallback test(verified);
266 Dali::RefObject* objectPointer = NULL;
267 TestObjectDestroyedCallback test2(verified, objectPointer);
269 registry.ObjectCreatedSignal().Connect(&application, test);
270 registry.ObjectDestroyedSignal().Connect(&application, test2);
273 ImageActor actor = ImageActor::New(image);
274 DALI_TEST_CHECK( test.mSignalVerified );
277 objectPointer = actor.GetObjectPtr();
279 DALI_TEST_CHECK( test.mSignalVerified );
283 int UtcDaliObjectRegistrySignalLayerCreated(void)
285 TestApplication application;
286 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
288 bool verified = false;
289 TestLayerCallback test(verified);
291 Dali::RefObject* objectPointer = NULL;
292 TestObjectDestroyedCallback test2(verified, objectPointer);
294 registry.ObjectCreatedSignal().Connect(&application, test);
295 registry.ObjectDestroyedSignal().Connect(&application, test2);
298 Layer actor = Layer::New();
299 DALI_TEST_CHECK( test.mSignalVerified );
302 objectPointer = actor.GetObjectPtr();
304 DALI_TEST_CHECK( test.mSignalVerified );
308 int UtcDaliObjectRegistrySignalTextActorCreated(void)
310 TestApplication application;
311 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
313 bool verified = false;
314 TestTextActorCallback test(verified);
316 Dali::RefObject* objectPointer = NULL;
317 TestObjectDestroyedCallback test2(verified, objectPointer);
319 registry.ObjectCreatedSignal().Connect(&application, test);
320 registry.ObjectDestroyedSignal().Connect(&application, test2);
323 TextActor actor = TextActor::New("Hello");
324 DALI_TEST_CHECK( test.mSignalVerified );
327 objectPointer = actor.GetObjectPtr();
329 DALI_TEST_CHECK( test.mSignalVerified );
333 int UtcDaliObjectRegistrySignalAnimationCreated(void)
335 TestApplication application;
336 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
338 bool verified = false;
339 TestAnimationCallback test(verified);
341 Dali::RefObject* objectPointer = NULL;
342 TestObjectDestroyedCallback test2(verified, objectPointer);
344 registry.ObjectCreatedSignal().Connect(&application, test);
345 registry.ObjectDestroyedSignal().Connect(&application, test2);
348 Animation animation = Animation::New(1.0f);
349 DALI_TEST_CHECK( test.mSignalVerified );
352 objectPointer = animation.GetObjectPtr();
354 DALI_TEST_CHECK( test.mSignalVerified );
358 int UtcDaliObjectRegistrySignalShaderEffectCreated(void)
360 TestApplication application;
361 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
363 static const char* VertexSource =
366 " gl_Position = uProjection * uModelView * vec4(aPosition, 1.0);\n"
367 " vTexCoord = aTexCoord;\n"
370 static const char* FragmentSource =
373 " gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n"
376 bool verified = false;
377 TestShaderEffectCallback test(verified);
379 Dali::RefObject* objectPointer = NULL;
380 TestObjectDestroyedCallback test2(verified, objectPointer);
382 registry.ObjectCreatedSignal().Connect(&application, test);
383 registry.ObjectDestroyedSignal().Connect(&application, test2);
386 ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
387 DALI_TEST_CHECK( test.mSignalVerified );
390 objectPointer = effect.GetObjectPtr();
392 DALI_TEST_CHECK( test.mSignalVerified );