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>
29 // Functors to test whether Object created/destroyed signal is emitted for different types of Objects
31 struct TestObjectDestroyedCallback
33 TestObjectDestroyedCallback(bool& signalReceived, Dali::RefObject*& objectPointer)
34 : mSignalVerified(signalReceived),
35 mObjectPointer(objectPointer)
39 void operator()(const Dali::RefObject* objectPointer)
41 tet_infoline("Verifying TestObjectDestroyedCallback()");
43 if(objectPointer == mObjectPointer)
45 mSignalVerified = true;
49 bool& mSignalVerified;
50 Dali::RefObject*& mObjectPointer;
53 struct TestActorCallback
55 TestActorCallback(bool& signalReceived)
56 : mSignalVerified(signalReceived)
60 void operator()(BaseHandle object)
62 tet_infoline("Verifying TestActorCallback()");
63 Actor actor = Actor::DownCast(object);
66 mSignalVerified = true;
70 bool& mSignalVerified;
73 struct TestCameraActorCallback
75 TestCameraActorCallback(bool& signalReceived)
76 : mSignalVerified(signalReceived)
79 void operator()(BaseHandle object)
81 tet_infoline("Verifying TestCameraActorCallback()");
82 CameraActor actor = CameraActor::DownCast(object);
85 mSignalVerified = true;
88 bool& mSignalVerified;
91 struct TestImageActorCallback
93 TestImageActorCallback(bool& signalReceived)
94 : mSignalVerified(signalReceived)
97 void operator()(BaseHandle object)
99 tet_infoline("Verifying TestImageActorCallback()");
100 ImageActor actor = ImageActor::DownCast(object);
103 mSignalVerified = true;
106 bool& mSignalVerified;
109 struct TestLayerCallback
111 TestLayerCallback(bool& signalReceived)
112 : mSignalVerified(signalReceived)
115 void operator()(BaseHandle object)
117 tet_infoline("Verifying TestLayerCallback()");
118 Layer actor = Layer::DownCast(object);
121 mSignalVerified = true;
124 bool& mSignalVerified;
127 struct TestAnimationCallback
129 TestAnimationCallback(bool& signalReceived)
130 : mSignalVerified(signalReceived)
133 void operator()(BaseHandle object)
135 tet_infoline("Verifying TestAnimationCallback()");
136 Animation actor = Animation::DownCast(object);
139 mSignalVerified = true;
142 bool& mSignalVerified;
145 struct TestShaderEffectCallback
147 TestShaderEffectCallback(bool& signalReceived)
148 : mSignalVerified(signalReceived)
151 void operator()(BaseHandle object)
153 tet_infoline("Verifying TestShaderEffectCallback()");
154 ShaderEffect actor = ShaderEffect::DownCast(object);
157 mSignalVerified = true;
160 bool& mSignalVerified;
164 } // anonymous namespace
169 int UtcDaliObjectRegistryGet(void)
171 TestApplication application;
173 ObjectRegistry registry; // like this for ctor code coverage
174 registry= Stage::GetCurrent().GetObjectRegistry();
176 DALI_TEST_CHECK( registry );
180 int UtcDaliObjectRegistryCopyConstructor(void)
182 TestApplication application;
184 ObjectRegistry myRegistry;
185 ObjectRegistry anotherRegistry( myRegistry );
187 DALI_TEST_EQUALS( myRegistry, anotherRegistry, TEST_LOCATION );
191 int UtcDaliObjectRegistrySignalActorCreated(void)
193 tet_infoline("Testing GetObjectRegistry()");
194 TestApplication application;
195 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
196 DALI_TEST_CHECK( registry );
198 bool verified = false;
199 TestActorCallback test(verified);
201 Dali::RefObject* objectPointer = NULL;
202 TestObjectDestroyedCallback test2(verified, objectPointer);
204 registry.ObjectCreatedSignal().Connect(&application, test);
205 registry.ObjectDestroyedSignal().Connect(&application, test2);
208 Actor actor = Actor::New();
209 DALI_TEST_CHECK( test.mSignalVerified );
212 objectPointer = actor.GetObjectPtr();
214 DALI_TEST_CHECK( test.mSignalVerified );
218 int UtcDaliObjectRegistrySignalCameraCreated(void)
220 TestApplication application;
222 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
224 bool verified = false;
225 TestCameraActorCallback test(verified);
227 Dali::RefObject* objectPointer = NULL;
228 TestObjectDestroyedCallback test2(verified, objectPointer);
230 registry.ObjectCreatedSignal().Connect(&application, test);
231 registry.ObjectDestroyedSignal().Connect(&application, test2);
234 CameraActor actor = CameraActor::New();
235 DALI_TEST_CHECK( test.mSignalVerified );
238 objectPointer = actor.GetObjectPtr();
240 DALI_TEST_CHECK( test.mSignalVerified );
244 int UtcDaliObjectRegistrySignalImageActorCreated(void)
246 TestApplication application;
247 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
249 static const char* TestImageFilename = "icon_wrt.png";
250 Image image = ResourceImage::New(TestImageFilename);
252 bool verified = false;
253 TestImageActorCallback test(verified);
255 Dali::RefObject* objectPointer = NULL;
256 TestObjectDestroyedCallback test2(verified, objectPointer);
258 registry.ObjectCreatedSignal().Connect(&application, test);
259 registry.ObjectDestroyedSignal().Connect(&application, test2);
262 ImageActor actor = ImageActor::New(image);
263 DALI_TEST_CHECK( test.mSignalVerified );
266 objectPointer = actor.GetObjectPtr();
268 DALI_TEST_CHECK( test.mSignalVerified );
272 int UtcDaliObjectRegistrySignalLayerCreated(void)
274 TestApplication application;
275 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
277 bool verified = false;
278 TestLayerCallback test(verified);
280 Dali::RefObject* objectPointer = NULL;
281 TestObjectDestroyedCallback test2(verified, objectPointer);
283 registry.ObjectCreatedSignal().Connect(&application, test);
284 registry.ObjectDestroyedSignal().Connect(&application, test2);
287 Layer actor = Layer::New();
288 DALI_TEST_CHECK( test.mSignalVerified );
291 objectPointer = actor.GetObjectPtr();
293 DALI_TEST_CHECK( test.mSignalVerified );
297 int UtcDaliObjectRegistrySignalAnimationCreated(void)
299 TestApplication application;
300 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
302 bool verified = false;
303 TestAnimationCallback test(verified);
305 Dali::RefObject* objectPointer = NULL;
306 TestObjectDestroyedCallback test2(verified, objectPointer);
308 registry.ObjectCreatedSignal().Connect(&application, test);
309 registry.ObjectDestroyedSignal().Connect(&application, test2);
312 Animation animation = Animation::New(1.0f);
313 DALI_TEST_CHECK( test.mSignalVerified );
316 objectPointer = animation.GetObjectPtr();
318 DALI_TEST_CHECK( test.mSignalVerified );
322 int UtcDaliObjectRegistrySignalShaderEffectCreated(void)
324 TestApplication application;
325 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
327 static const char* VertexSource =
330 " gl_Position = uProjection * uModelView * vec4(aPosition, 1.0);\n"
331 " vTexCoord = aTexCoord;\n"
334 static const char* FragmentSource =
337 " gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n"
340 bool verified = false;
341 TestShaderEffectCallback test(verified);
343 Dali::RefObject* objectPointer = NULL;
344 TestObjectDestroyedCallback test2(verified, objectPointer);
346 registry.ObjectCreatedSignal().Connect(&application, test);
347 registry.ObjectDestroyedSignal().Connect(&application, test2);
350 ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
351 DALI_TEST_CHECK( test.mSignalVerified );
354 objectPointer = effect.GetObjectPtr();
356 DALI_TEST_CHECK( test.mSignalVerified );