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 );
194 int UtcDaliApplicationMainLoop02N(void)
196 Application application;
200 application.MainLoop( Configuration::APPLICATION_DOES_NOT_HANDLE_CONTEXT_LOSS );
201 DALI_TEST_CHECK( false ); // Should not get here
205 DALI_TEST_CHECK( true );
211 int UtcDaliApplicationLowerN(void)
213 Application application;
218 DALI_TEST_CHECK( false ); // Should not get here
222 DALI_TEST_CHECK( true );
228 int UtcDaliApplicationQuitN(void)
230 Application application;
235 DALI_TEST_CHECK( false ); // Should not get here
239 DALI_TEST_CHECK( true );
245 int UtcDaliApplicationAddIdleN(void)
247 Application application;
251 CallbackBase* callback = NULL;
252 application.AddIdle( callback );
253 DALI_TEST_CHECK( false ); // Should not get here
257 DALI_TEST_CHECK( true );
263 int UtcDaliApplicationGetWindowN(void)
265 Application application;
269 (void) application.GetWindow();
270 DALI_TEST_CHECK( false ); // Should not get here
274 DALI_TEST_CHECK( true );
280 int UtcDaliApplicationInitSignalP(void)
282 Application application = Application::New();
283 application.InitSignal().Connect( &ApplicationSignalCallback );
284 DALI_TEST_CHECK( application );
289 int UtcDaliApplicationInitSignalN(void)
291 Application application;
295 application.InitSignal().Connect( &ApplicationSignalCallback );
296 DALI_TEST_CHECK( false ); // Should not get here
300 DALI_TEST_CHECK( true );
306 int UtcDaliApplicationTerminateSignalP(void)
308 Application application = Application::New();
309 application.TerminateSignal().Connect( &ApplicationSignalCallback );
310 DALI_TEST_CHECK( application );
315 int UtcDaliApplicationTerminateSignalN(void)
317 Application application;
321 application.TerminateSignal().Connect( &ApplicationSignalCallback );
322 DALI_TEST_CHECK( false ); // Should not get here
326 DALI_TEST_CHECK( true );
332 int UtcDaliApplicationPauseSignalP(void)
334 Application application = Application::New();
335 application.PauseSignal().Connect( &ApplicationSignalCallback );
336 DALI_TEST_CHECK( application );
341 int UtcDaliApplicationPauseSignalN(void)
343 Application application;
347 application.PauseSignal().Connect( &ApplicationSignalCallback );
348 DALI_TEST_CHECK( false ); // Should not get here
352 DALI_TEST_CHECK( true );
358 int UtcDaliApplicationResumeSignalP(void)
360 Application application = Application::New();
361 application.ResumeSignal().Connect( &ApplicationSignalCallback );
362 DALI_TEST_CHECK( application );
367 int UtcDaliApplicationResumeSignalN(void)
369 Application application;
373 application.ResumeSignal().Connect( &ApplicationSignalCallback );
374 DALI_TEST_CHECK( false ); // Should not get here
378 DALI_TEST_CHECK( true );
384 int UtcDaliApplicationResetSignalP(void)
386 Application application = Application::New();
387 application.ResetSignal().Connect( &ApplicationSignalCallback );
388 DALI_TEST_CHECK( application );
393 int UtcDaliApplicationResetSignalN(void)
395 Application application;
399 application.ResetSignal().Connect( &ApplicationSignalCallback );
400 DALI_TEST_CHECK( false ); // Should not get here
404 DALI_TEST_CHECK( true );
410 int UtcDaliApplicationlControlSignalP(void)
412 Application application = Application::New();
413 application.AppControlSignal().Connect( &ApplicationControlSignalCallback );
414 DALI_TEST_CHECK( application );
419 int UtcDaliApplicationlControlSignalN(void)
421 Application application;
425 application.AppControlSignal().Connect( &ApplicationControlSignalCallback );
426 DALI_TEST_CHECK( false ); // Should not get here
430 DALI_TEST_CHECK( true );
436 int UtcDaliApplicationLanguageChangedSignalP(void)
438 Application application = Application::New();
439 application.LanguageChangedSignal().Connect( &ApplicationSignalCallback );
440 DALI_TEST_CHECK( application );
445 int UtcDaliApplicationLanguageChangedSignalN(void)
447 Application application;
451 application.LanguageChangedSignal().Connect( &ApplicationSignalCallback );
452 DALI_TEST_CHECK( false ); // Should not get here
456 DALI_TEST_CHECK( true );
462 int UtcDaliApplicationRegionChangedSignalP(void)
464 Application application = Application::New();
465 application.RegionChangedSignal().Connect( &ApplicationSignalCallback );
466 DALI_TEST_CHECK( application );
471 int UtcDaliApplicationRegionChangedSignalN(void)
473 Application application;
477 application.RegionChangedSignal().Connect( &ApplicationSignalCallback );
478 DALI_TEST_CHECK( false ); // Should not get here
482 DALI_TEST_CHECK( true );
488 int UtcDaliApplicationLowBatterySignalP(void)
490 Application application = Application::New();
491 application.LowBatterySignal().Connect( &LowBatterySignalCallback );
492 DALI_TEST_CHECK( application );
497 int UtcDaliApplicationLowBatterySignalN(void)
499 Application application;
503 application.LowBatterySignal().Connect( &LowBatterySignalCallback );
504 DALI_TEST_CHECK( false ); // Should not get here
508 DALI_TEST_CHECK( true );
514 int UtcDaliApplicationLowMemorySignalP(void)
516 Application application = Application::New();
517 application.LowMemorySignal().Connect( &LowMemorySignalCallback );
518 DALI_TEST_CHECK( application );
523 int UtcDaliApplicationLowMemorySignalN(void)
525 Application application;
529 application.LowMemorySignal().Connect( &LowMemorySignalCallback );
530 DALI_TEST_CHECK( false ); // Should not get here
534 DALI_TEST_CHECK( true );
540 int UtcDaliApplicationGetResourcePathP(void)
542 Application application = Application::New();
543 std::string result ("**invalid path**"); // Calling GetResourcePath should replace this with a system dependent path or "".
544 result = application.GetResourcePath();
545 DALI_TEST_CHECK( result !="**invalid path**" );
550 int UtcDaliApplicationGetRegionP(void)
552 Application application = Application::New();
554 result = application.GetRegion();
555 DALI_TEST_CHECK( result == "NOT_SUPPORTED" ); // Not supported in UBUNTU
560 int UtcDaliApplicationGetLanguageP(void)
562 Application application = Application::New();
564 result = application.GetLanguage();
565 DALI_TEST_CHECK( result == "NOT_SUPPORTED" ); // Not supported in UBUNTU
570 int UtcDaliApplicationGetObjectRegistryN(void)
572 Application application = Application::New();
573 DALI_TEST_CHECK( !application.GetObjectRegistry() );