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 UtcDaliApplicationMainLoop01N(void)
150 Application application;
154 application.MainLoop();
155 DALI_TEST_CHECK( false ); // Should not get here
159 DALI_TEST_CHECK( true );
165 int UtcDaliApplicationMainLoop02N(void)
167 Application application;
171 application.MainLoop( Configuration::APPLICATION_DOES_NOT_HANDLE_CONTEXT_LOSS );
172 DALI_TEST_CHECK( false ); // Should not get here
176 DALI_TEST_CHECK( true );
182 int UtcDaliApplicationLowerN(void)
184 Application application;
189 DALI_TEST_CHECK( false ); // Should not get here
193 DALI_TEST_CHECK( true );
199 int UtcDaliApplicationQuitN(void)
201 Application application;
206 DALI_TEST_CHECK( false ); // Should not get here
210 DALI_TEST_CHECK( true );
216 int UtcDaliApplicationAddIdleN(void)
218 Application application;
222 CallbackBase* callback = NULL;
223 application.AddIdle( callback );
224 DALI_TEST_CHECK( false ); // Should not get here
228 DALI_TEST_CHECK( true );
234 int UtcDaliApplicationGetWindowN(void)
236 Application application;
240 (void) application.GetWindow();
241 DALI_TEST_CHECK( false ); // Should not get here
245 DALI_TEST_CHECK( true );
251 int UtcDaliApplicationInitSignalP(void)
253 Application application = Application::New();
254 application.InitSignal().Connect( &ApplicationSignalCallback );
255 DALI_TEST_CHECK( application );
260 int UtcDaliApplicationInitSignalN(void)
262 Application application;
266 application.InitSignal().Connect( &ApplicationSignalCallback );
267 DALI_TEST_CHECK( false ); // Should not get here
271 DALI_TEST_CHECK( true );
277 int UtcDaliApplicationTerminateSignalP(void)
279 Application application = Application::New();
280 application.TerminateSignal().Connect( &ApplicationSignalCallback );
281 DALI_TEST_CHECK( application );
286 int UtcDaliApplicationTerminateSignalN(void)
288 Application application;
292 application.TerminateSignal().Connect( &ApplicationSignalCallback );
293 DALI_TEST_CHECK( false ); // Should not get here
297 DALI_TEST_CHECK( true );
303 int UtcDaliApplicationPauseSignalP(void)
305 Application application = Application::New();
306 application.PauseSignal().Connect( &ApplicationSignalCallback );
307 DALI_TEST_CHECK( application );
312 int UtcDaliApplicationPauseSignalN(void)
314 Application application;
318 application.PauseSignal().Connect( &ApplicationSignalCallback );
319 DALI_TEST_CHECK( false ); // Should not get here
323 DALI_TEST_CHECK( true );
329 int UtcDaliApplicationResumeSignalP(void)
331 Application application = Application::New();
332 application.ResumeSignal().Connect( &ApplicationSignalCallback );
333 DALI_TEST_CHECK( application );
338 int UtcDaliApplicationResumeSignalN(void)
340 Application application;
344 application.ResumeSignal().Connect( &ApplicationSignalCallback );
345 DALI_TEST_CHECK( false ); // Should not get here
349 DALI_TEST_CHECK( true );
355 int UtcDaliApplicationResetSignalP(void)
357 Application application = Application::New();
358 application.ResetSignal().Connect( &ApplicationSignalCallback );
359 DALI_TEST_CHECK( application );
364 int UtcDaliApplicationResetSignalN(void)
366 Application application;
370 application.ResetSignal().Connect( &ApplicationSignalCallback );
371 DALI_TEST_CHECK( false ); // Should not get here
375 DALI_TEST_CHECK( true );
381 int UtcDaliApplicationlControlSignalP(void)
383 Application application = Application::New();
384 application.AppControlSignal().Connect( &ApplicationControlSignalCallback );
385 DALI_TEST_CHECK( application );
390 int UtcDaliApplicationlControlSignalN(void)
392 Application application;
396 application.AppControlSignal().Connect( &ApplicationControlSignalCallback );
397 DALI_TEST_CHECK( false ); // Should not get here
401 DALI_TEST_CHECK( true );
407 int UtcDaliApplicationLanguageChangedSignalP(void)
409 Application application = Application::New();
410 application.LanguageChangedSignal().Connect( &ApplicationSignalCallback );
411 DALI_TEST_CHECK( application );
416 int UtcDaliApplicationLanguageChangedSignalN(void)
418 Application application;
422 application.LanguageChangedSignal().Connect( &ApplicationSignalCallback );
423 DALI_TEST_CHECK( false ); // Should not get here
427 DALI_TEST_CHECK( true );
433 int UtcDaliApplicationRegionChangedSignalP(void)
435 Application application = Application::New();
436 application.RegionChangedSignal().Connect( &ApplicationSignalCallback );
437 DALI_TEST_CHECK( application );
442 int UtcDaliApplicationRegionChangedSignalN(void)
444 Application application;
448 application.RegionChangedSignal().Connect( &ApplicationSignalCallback );
449 DALI_TEST_CHECK( false ); // Should not get here
453 DALI_TEST_CHECK( true );
459 int UtcDaliApplicationLowBatterySignalP(void)
461 Application application = Application::New();
462 application.LowBatterySignal().Connect( &LowBatterySignalCallback );
463 DALI_TEST_CHECK( application );
468 int UtcDaliApplicationLowBatterySignalN(void)
470 Application application;
474 application.LowBatterySignal().Connect( &LowBatterySignalCallback );
475 DALI_TEST_CHECK( false ); // Should not get here
479 DALI_TEST_CHECK( true );
485 int UtcDaliApplicationLowMemorySignalP(void)
487 Application application = Application::New();
488 application.LowMemorySignal().Connect( &LowMemorySignalCallback );
489 DALI_TEST_CHECK( application );
494 int UtcDaliApplicationLowMemorySignalN(void)
496 Application application;
500 application.LowMemorySignal().Connect( &LowMemorySignalCallback );
501 DALI_TEST_CHECK( false ); // Should not get here
505 DALI_TEST_CHECK( true );
511 int UtcDaliApplicationGetResourcePathP(void)
513 Application application = Application::New();
514 std::string result ("**invalid path**"); // Calling GetResourcePath should replace this with a system dependent path or "".
515 result = application.GetResourcePath();
516 DALI_TEST_CHECK( result !="**invalid path**" );
521 int UtcDaliApplicationGetRegionP(void)
523 Application application = Application::New();
525 result = application.GetRegion();
526 DALI_TEST_CHECK( result == "NOT_SUPPORTED" ); // Not supported in UBUNTU
531 int UtcDaliApplicationGetLanguageP(void)
533 Application application = Application::New();
535 result = application.GetLanguage();
536 DALI_TEST_CHECK( result == "NOT_SUPPORTED" ); // Not supported in UBUNTU
541 int UtcDaliApplicationGetObjectRegistryN(void)
543 Application application = Application::New();
544 DALI_TEST_CHECK( !application.GetObjectRegistry() );