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 TestLayerCallback
93 TestLayerCallback(bool& signalReceived)
94 : mSignalVerified(signalReceived)
97 void operator()(BaseHandle object)
99 tet_infoline("Verifying TestLayerCallback()");
100 Layer actor = Layer::DownCast(object);
103 mSignalVerified = true;
106 bool& mSignalVerified;
109 struct TestAnimationCallback
111 TestAnimationCallback(bool& signalReceived)
112 : mSignalVerified(signalReceived)
115 void operator()(BaseHandle object)
117 tet_infoline("Verifying TestAnimationCallback()");
118 Animation actor = Animation::DownCast(object);
121 mSignalVerified = true;
124 bool& mSignalVerified;
127 struct TestShaderEffectCallback
129 TestShaderEffectCallback(bool& signalReceived)
130 : mSignalVerified(signalReceived)
133 void operator()(BaseHandle object)
135 tet_infoline("Verifying TestShaderEffectCallback()");
136 ShaderEffect actor = ShaderEffect::DownCast(object);
139 mSignalVerified = true;
142 bool& mSignalVerified;
146 } // anonymous namespace
151 int UtcDaliObjectRegistryGet(void)
153 TestApplication application;
155 ObjectRegistry registry; // like this for ctor code coverage
156 registry= Stage::GetCurrent().GetObjectRegistry();
158 DALI_TEST_CHECK( registry );
162 int UtcDaliObjectRegistryCopyConstructor(void)
164 TestApplication application;
166 ObjectRegistry myRegistry;
167 ObjectRegistry anotherRegistry( myRegistry );
169 DALI_TEST_EQUALS( myRegistry, anotherRegistry, TEST_LOCATION );
173 int UtcDaliObjectRegistrySignalActorCreated(void)
175 tet_infoline("Testing GetObjectRegistry()");
176 TestApplication application;
177 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
178 DALI_TEST_CHECK( registry );
180 bool verified = false;
181 TestActorCallback test(verified);
183 Dali::RefObject* objectPointer = NULL;
184 TestObjectDestroyedCallback test2(verified, objectPointer);
186 registry.ObjectCreatedSignal().Connect(&application, test);
187 registry.ObjectDestroyedSignal().Connect(&application, test2);
190 Actor actor = Actor::New();
191 DALI_TEST_CHECK( test.mSignalVerified );
194 objectPointer = actor.GetObjectPtr();
196 DALI_TEST_CHECK( test.mSignalVerified );
200 int UtcDaliObjectRegistrySignalCameraCreated(void)
202 TestApplication application;
204 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
206 bool verified = false;
207 TestCameraActorCallback test(verified);
209 Dali::RefObject* objectPointer = NULL;
210 TestObjectDestroyedCallback test2(verified, objectPointer);
212 registry.ObjectCreatedSignal().Connect(&application, test);
213 registry.ObjectDestroyedSignal().Connect(&application, test2);
216 CameraActor actor = CameraActor::New();
217 DALI_TEST_CHECK( test.mSignalVerified );
220 objectPointer = actor.GetObjectPtr();
222 DALI_TEST_CHECK( test.mSignalVerified );
226 int UtcDaliObjectRegistrySignalLayerCreated(void)
228 TestApplication application;
229 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
231 bool verified = false;
232 TestLayerCallback test(verified);
234 Dali::RefObject* objectPointer = NULL;
235 TestObjectDestroyedCallback test2(verified, objectPointer);
237 registry.ObjectCreatedSignal().Connect(&application, test);
238 registry.ObjectDestroyedSignal().Connect(&application, test2);
241 Layer actor = Layer::New();
242 DALI_TEST_CHECK( test.mSignalVerified );
245 objectPointer = actor.GetObjectPtr();
247 DALI_TEST_CHECK( test.mSignalVerified );
251 int UtcDaliObjectRegistrySignalAnimationCreated(void)
253 TestApplication application;
254 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
256 bool verified = false;
257 TestAnimationCallback test(verified);
259 Dali::RefObject* objectPointer = NULL;
260 TestObjectDestroyedCallback test2(verified, objectPointer);
262 registry.ObjectCreatedSignal().Connect(&application, test);
263 registry.ObjectDestroyedSignal().Connect(&application, test2);
266 Animation animation = Animation::New(1.0f);
267 DALI_TEST_CHECK( test.mSignalVerified );
270 objectPointer = animation.GetObjectPtr();
272 DALI_TEST_CHECK( test.mSignalVerified );
276 int UtcDaliObjectRegistrySignalShaderEffectCreated(void)
278 TestApplication application;
279 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
281 static const char* VertexSource =
284 " gl_Position = uProjection * uModelView * vec4(aPosition, 1.0);\n"
285 " vTexCoord = aTexCoord;\n"
288 static const char* FragmentSource =
291 " gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n"
294 bool verified = false;
295 TestShaderEffectCallback test(verified);
297 Dali::RefObject* objectPointer = NULL;
298 TestObjectDestroyedCallback test2(verified, objectPointer);
300 registry.ObjectCreatedSignal().Connect(&application, test);
301 registry.ObjectDestroyedSignal().Connect(&application, test2);
304 ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
305 DALI_TEST_CHECK( test.mSignalVerified );
308 objectPointer = effect.GetObjectPtr();
310 DALI_TEST_CHECK( test.mSignalVerified );