2 * Copyright (c) 2020 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.
18 #include <dali/dali.h>
19 #include <dali-test-suite-utils.h>
23 void utc_dali_application_startup(void)
25 test_return_value = TET_UNDEF;
28 void utc_dali_application_cleanup(void)
30 test_return_value = TET_PASS;
36 struct MyTestApp : public ConnectionTracker
38 MyTestApp( Application& app)
39 : initCalled( false ),
42 application.InitSignal().Connect( this, &MyTestApp::Create );
45 void Create(Application& app)
57 Application& application;
60 void ApplicationSignalCallback( Application& app )
64 void ApplicationControlSignalCallback(Application&, void *)
68 } // unnamed namespace
70 void LowBatterySignalCallback( Dali::DeviceStatus::Battery::Status status )
74 void LowMemorySignalCallback( Dali::DeviceStatus::Memory::Status status )
78 int UtcDaliApplicationNew01(void)
80 Application application = Application::New();
82 MyTestApp testApp( application );
84 DALI_TEST_CHECK( application );
89 int UtcDaliApplicationNew02(void)
92 const char* argList[1] = { "program" };
93 char** argv = const_cast<char**>(argList);
95 Application application = Application::New( &argc, &argv );
97 MyTestApp testApp( application );
99 DALI_TEST_CHECK( application );
104 int UtcDaliApplicationNew03(void)
107 const char* argList[1] = { "program" };
108 char** argv = const_cast<char**>(argList);
110 Application application = Application::New( &argc, &argv, "stylesheet" );
112 MyTestApp testApp( application );
114 DALI_TEST_CHECK( application );
119 int UtcDaliApplicationNew04(void)
122 const char* argList[1] = { "program" };
123 char** argv = const_cast<char**>(argList);
125 Application application = Application::New( &argc, &argv, "stylesheet", Application::TRANSPARENT );
127 MyTestApp testApp( application );
129 DALI_TEST_CHECK( application );
134 int UtcDaliApplicationCopyAndAssignment(void)
136 Application application = Application::New();
137 Application copy( application );
138 DALI_TEST_CHECK( copy == application );
140 Application assigned;
141 DALI_TEST_CHECK( !assigned );
142 assigned = application;
143 DALI_TEST_CHECK( copy == assigned );
148 int UtcDaliApplicationMoveConstructor(void)
150 Application application = Application::New();
151 DALI_TEST_CHECK( application );
152 DALI_TEST_EQUALS( 1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION );
154 Application moved = std::move( application );
155 DALI_TEST_CHECK( moved );
156 DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
157 DALI_TEST_CHECK( !application );
162 int UtcDaliApplicationMoveAssignment(void)
164 Application application = Application::New();
165 DALI_TEST_CHECK( application );
166 DALI_TEST_EQUALS( 1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION );
169 moved = std::move( application );
170 DALI_TEST_CHECK( moved );
171 DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
172 DALI_TEST_CHECK( !application );
177 int UtcDaliApplicationMainLoop01N(void)
179 Application application;
183 application.MainLoop();
184 DALI_TEST_CHECK( false ); // Should not get here
188 DALI_TEST_CHECK( true );
195 int UtcDaliApplicationLowerN(void)
197 Application application;
202 DALI_TEST_CHECK( false ); // Should not get here
206 DALI_TEST_CHECK( true );
212 int UtcDaliApplicationQuitN(void)
214 Application application;
219 DALI_TEST_CHECK( false ); // Should not get here
223 DALI_TEST_CHECK( true );
229 int UtcDaliApplicationAddIdleN(void)
231 Application application;
235 CallbackBase* callback = NULL;
236 application.AddIdle( callback );
237 DALI_TEST_CHECK( false ); // Should not get here
241 DALI_TEST_CHECK( true );
247 int UtcDaliApplicationGetWindowN(void)
249 Application application;
253 (void) application.GetWindow();
254 DALI_TEST_CHECK( false ); // Should not get here
258 DALI_TEST_CHECK( true );
264 int UtcDaliApplicationInitSignalP(void)
266 Application application = Application::New();
267 application.InitSignal().Connect( &ApplicationSignalCallback );
268 DALI_TEST_CHECK( application );
273 int UtcDaliApplicationInitSignalN(void)
275 Application application;
279 application.InitSignal().Connect( &ApplicationSignalCallback );
280 DALI_TEST_CHECK( false ); // Should not get here
284 DALI_TEST_CHECK( true );
290 int UtcDaliApplicationTerminateSignalP(void)
292 Application application = Application::New();
293 application.TerminateSignal().Connect( &ApplicationSignalCallback );
294 DALI_TEST_CHECK( application );
299 int UtcDaliApplicationTerminateSignalN(void)
301 Application application;
305 application.TerminateSignal().Connect( &ApplicationSignalCallback );
306 DALI_TEST_CHECK( false ); // Should not get here
310 DALI_TEST_CHECK( true );
316 int UtcDaliApplicationPauseSignalP(void)
318 Application application = Application::New();
319 application.PauseSignal().Connect( &ApplicationSignalCallback );
320 DALI_TEST_CHECK( application );
325 int UtcDaliApplicationPauseSignalN(void)
327 Application application;
331 application.PauseSignal().Connect( &ApplicationSignalCallback );
332 DALI_TEST_CHECK( false ); // Should not get here
336 DALI_TEST_CHECK( true );
342 int UtcDaliApplicationResumeSignalP(void)
344 Application application = Application::New();
345 application.ResumeSignal().Connect( &ApplicationSignalCallback );
346 DALI_TEST_CHECK( application );
351 int UtcDaliApplicationResumeSignalN(void)
353 Application application;
357 application.ResumeSignal().Connect( &ApplicationSignalCallback );
358 DALI_TEST_CHECK( false ); // Should not get here
362 DALI_TEST_CHECK( true );
368 int UtcDaliApplicationResetSignalP(void)
370 Application application = Application::New();
371 application.ResetSignal().Connect( &ApplicationSignalCallback );
372 DALI_TEST_CHECK( application );
377 int UtcDaliApplicationResetSignalN(void)
379 Application application;
383 application.ResetSignal().Connect( &ApplicationSignalCallback );
384 DALI_TEST_CHECK( false ); // Should not get here
388 DALI_TEST_CHECK( true );
394 int UtcDaliApplicationlControlSignalP(void)
396 Application application = Application::New();
397 application.AppControlSignal().Connect( &ApplicationControlSignalCallback );
398 DALI_TEST_CHECK( application );
403 int UtcDaliApplicationlControlSignalN(void)
405 Application application;
409 application.AppControlSignal().Connect( &ApplicationControlSignalCallback );
410 DALI_TEST_CHECK( false ); // Should not get here
414 DALI_TEST_CHECK( true );
420 int UtcDaliApplicationLanguageChangedSignalP(void)
422 Application application = Application::New();
423 application.LanguageChangedSignal().Connect( &ApplicationSignalCallback );
424 DALI_TEST_CHECK( application );
429 int UtcDaliApplicationLanguageChangedSignalN(void)
431 Application application;
435 application.LanguageChangedSignal().Connect( &ApplicationSignalCallback );
436 DALI_TEST_CHECK( false ); // Should not get here
440 DALI_TEST_CHECK( true );
446 int UtcDaliApplicationRegionChangedSignalP(void)
448 Application application = Application::New();
449 application.RegionChangedSignal().Connect( &ApplicationSignalCallback );
450 DALI_TEST_CHECK( application );
455 int UtcDaliApplicationRegionChangedSignalN(void)
457 Application application;
461 application.RegionChangedSignal().Connect( &ApplicationSignalCallback );
462 DALI_TEST_CHECK( false ); // Should not get here
466 DALI_TEST_CHECK( true );
472 int UtcDaliApplicationLowBatterySignalP(void)
474 Application application = Application::New();
475 application.LowBatterySignal().Connect( &LowBatterySignalCallback );
476 DALI_TEST_CHECK( application );
481 int UtcDaliApplicationLowBatterySignalN(void)
483 Application application;
487 application.LowBatterySignal().Connect( &LowBatterySignalCallback );
488 DALI_TEST_CHECK( false ); // Should not get here
492 DALI_TEST_CHECK( true );
498 int UtcDaliApplicationLowMemorySignalP(void)
500 Application application = Application::New();
501 application.LowMemorySignal().Connect( &LowMemorySignalCallback );
502 DALI_TEST_CHECK( application );
507 int UtcDaliApplicationLowMemorySignalN(void)
509 Application application;
513 application.LowMemorySignal().Connect( &LowMemorySignalCallback );
514 DALI_TEST_CHECK( false ); // Should not get here
518 DALI_TEST_CHECK( true );
524 int UtcDaliApplicationGetResourcePathP(void)
526 Application application = Application::New();
527 std::string result ("**invalid path**"); // Calling GetResourcePath should replace this with a system dependent path or "".
528 result = application.GetResourcePath();
529 DALI_TEST_CHECK( result !="**invalid path**" );
534 int UtcDaliApplicationGetRegionP(void)
536 Application application = Application::New();
538 result = application.GetRegion();
539 DALI_TEST_CHECK( result == "NOT_SUPPORTED" ); // Not supported in UBUNTU
544 int UtcDaliApplicationGetLanguageP(void)
546 Application application = Application::New();
548 result = application.GetLanguage();
549 DALI_TEST_CHECK( result == "NOT_SUPPORTED" ); // Not supported in UBUNTU
554 int UtcDaliApplicationGetObjectRegistryN(void)
556 Application application = Application::New();
557 DALI_TEST_CHECK( !application.GetObjectRegistry() );