2 * Copyright (c) 2022 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-test-suite-utils.h>
19 #include <dali/dali.h>
20 #include <dali/devel-api/adaptor-framework/application-devel.h>
25 void utc_dali_application_startup(void)
27 test_return_value = TET_UNDEF;
30 void utc_dali_application_cleanup(void)
32 test_return_value = TET_PASS;
37 struct MyTestApp : public ConnectionTracker
39 MyTestApp(Application& app)
43 application.InitSignal().Connect(this, &MyTestApp::Create);
46 void Create(Application& app)
58 Application& application;
61 void ApplicationSignalCallback(Application& app)
65 void ApplicationControlSignalCallback(Application&, void*)
69 } // unnamed namespace
71 void LowBatterySignalCallback(Dali::DeviceStatus::Battery::Status status)
75 void LowMemorySignalCallback(Dali::DeviceStatus::Memory::Status status)
79 void OnDeviceOrientationChangedSignalCallback(DeviceStatus::Orientation::Status status)
83 int UtcDaliApplicationNew01(void)
85 Application application = Application::New();
87 MyTestApp testApp(application);
89 DALI_TEST_CHECK(application);
94 int UtcDaliApplicationNew02(void)
97 const char* argList[1] = {"program"};
98 char** argv = const_cast<char**>(argList);
100 Application application = Application::New(&argc, &argv);
102 MyTestApp testApp(application);
104 DALI_TEST_CHECK(application);
109 int UtcDaliApplicationNew03(void)
112 const char* argList[1] = {"program"};
113 char** argv = const_cast<char**>(argList);
115 Application application = Application::New(&argc, &argv, "stylesheet");
117 MyTestApp testApp(application);
119 DALI_TEST_CHECK(application);
124 int UtcDaliApplicationNew04(void)
127 const char* argList[1] = {"program"};
128 char** argv = const_cast<char**>(argList);
130 Application application = Application::New(&argc, &argv, "stylesheet", Application::TRANSPARENT);
132 MyTestApp testApp(application);
134 DALI_TEST_CHECK(application);
139 int UtcDaliApplicationNew05(void)
142 const char* argList[1] = {"program"};
143 char** argv = const_cast<char**>(argList);
145 Application application = DevelApplication::New(&argc, &argv, "stylesheet", Application::WINDOW_MODE::OPAQUE, PositionSize(), WindowType::IME);
147 MyTestApp testApp(application);
149 DALI_TEST_CHECK(application);
154 int UtcDaliApplicationNew06P(void)
157 const char* argList[1] = {"program"};
158 char** argv = const_cast<char**>(argList);
160 Application application = Application::New(&argc, &argv, "stylesheet", Application::WINDOW_MODE::OPAQUE, PositionSize(), true);
162 MyTestApp testApp(application);
164 DALI_TEST_CHECK(application);
169 int UtcDaliApplicationNew07P(void)
172 const char* argList[1] = {"program"};
173 char** argv = const_cast<char**>(argList);
175 Application application = Application::New(&argc, &argv, "stylesheet", Application::WINDOW_MODE::OPAQUE, PositionSize());
177 MyTestApp testApp(application);
179 DALI_TEST_CHECK(application);
184 int UtcDaliApplicationCopyAndAssignment(void)
186 Application application = Application::New();
187 Application copy(application);
188 DALI_TEST_CHECK(copy == application);
190 Application assigned;
191 DALI_TEST_CHECK(!assigned);
192 assigned = application;
193 DALI_TEST_CHECK(copy == assigned);
198 int UtcDaliApplicationMoveConstructor(void)
200 Application application = Application::New();
201 DALI_TEST_CHECK(application);
202 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
204 Application moved = std::move(application);
205 DALI_TEST_CHECK(moved);
206 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
207 DALI_TEST_CHECK(!application);
212 int UtcDaliApplicationMoveAssignment(void)
214 Application application = Application::New();
215 DALI_TEST_CHECK(application);
216 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
219 moved = std::move(application);
220 DALI_TEST_CHECK(moved);
221 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
222 DALI_TEST_CHECK(!application);
227 int UtcDaliApplicationMainLoop01N(void)
229 Application application;
233 application.MainLoop();
234 DALI_TEST_CHECK(false); // Should not get here
238 DALI_TEST_CHECK(true);
244 int UtcDaliApplicationLowerN(void)
246 Application application;
251 DALI_TEST_CHECK(false); // Should not get here
255 DALI_TEST_CHECK(true);
261 int UtcDaliApplicationQuitN(void)
263 Application application;
268 DALI_TEST_CHECK(false); // Should not get here
272 DALI_TEST_CHECK(true);
278 int UtcDaliApplicationAddIdleN(void)
280 Application application;
284 CallbackBase* callback = NULL;
285 application.AddIdle(callback);
286 DALI_TEST_CHECK(false); // Should not get here
290 DALI_TEST_CHECK(true);
296 int UtcDaliApplicationGetWindowN(void)
298 Application application;
302 (void)application.GetWindow();
303 DALI_TEST_CHECK(false); // Should not get here
307 DALI_TEST_CHECK(true);
313 int UtcDaliApplicationInitSignalP(void)
315 Application application = Application::New();
316 application.InitSignal().Connect(&ApplicationSignalCallback);
317 DALI_TEST_CHECK(application);
322 int UtcDaliApplicationInitSignalN(void)
324 Application application;
328 application.InitSignal().Connect(&ApplicationSignalCallback);
329 DALI_TEST_CHECK(false); // Should not get here
333 DALI_TEST_CHECK(true);
339 int UtcDaliApplicationTerminateSignalP(void)
341 Application application = Application::New();
342 application.TerminateSignal().Connect(&ApplicationSignalCallback);
343 DALI_TEST_CHECK(application);
348 int UtcDaliApplicationTerminateSignalN(void)
350 Application application;
354 application.TerminateSignal().Connect(&ApplicationSignalCallback);
355 DALI_TEST_CHECK(false); // Should not get here
359 DALI_TEST_CHECK(true);
365 int UtcDaliApplicationPauseSignalP(void)
367 Application application = Application::New();
368 application.PauseSignal().Connect(&ApplicationSignalCallback);
369 DALI_TEST_CHECK(application);
374 int UtcDaliApplicationPauseSignalN(void)
376 Application application;
380 application.PauseSignal().Connect(&ApplicationSignalCallback);
381 DALI_TEST_CHECK(false); // Should not get here
385 DALI_TEST_CHECK(true);
391 int UtcDaliApplicationResumeSignalP(void)
393 Application application = Application::New();
394 application.ResumeSignal().Connect(&ApplicationSignalCallback);
395 DALI_TEST_CHECK(application);
400 int UtcDaliApplicationResumeSignalN(void)
402 Application application;
406 application.ResumeSignal().Connect(&ApplicationSignalCallback);
407 DALI_TEST_CHECK(false); // Should not get here
411 DALI_TEST_CHECK(true);
417 int UtcDaliApplicationResetSignalP(void)
419 Application application = Application::New();
420 application.ResetSignal().Connect(&ApplicationSignalCallback);
421 DALI_TEST_CHECK(application);
426 int UtcDaliApplicationResetSignalN(void)
428 Application application;
432 application.ResetSignal().Connect(&ApplicationSignalCallback);
433 DALI_TEST_CHECK(false); // Should not get here
437 DALI_TEST_CHECK(true);
443 int UtcDaliApplicationlControlSignalP(void)
445 Application application = Application::New();
446 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
447 DALI_TEST_CHECK(application);
452 int UtcDaliApplicationlControlSignalN(void)
454 Application application;
458 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
459 DALI_TEST_CHECK(false); // Should not get here
463 DALI_TEST_CHECK(true);
469 int UtcDaliApplicationLanguageChangedSignalP(void)
471 Application application = Application::New();
472 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
473 DALI_TEST_CHECK(application);
478 int UtcDaliApplicationLanguageChangedSignalN(void)
480 Application application;
484 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
485 DALI_TEST_CHECK(false); // Should not get here
489 DALI_TEST_CHECK(true);
495 int UtcDaliApplicationRegionChangedSignalP(void)
497 Application application = Application::New();
498 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
499 DALI_TEST_CHECK(application);
504 int UtcDaliApplicationRegionChangedSignalN(void)
506 Application application;
510 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
511 DALI_TEST_CHECK(false); // Should not get here
515 DALI_TEST_CHECK(true);
521 int UtcDaliApplicationLowBatterySignalP(void)
523 Application application = Application::New();
524 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
525 DALI_TEST_CHECK(application);
530 int UtcDaliApplicationLowBatterySignalN(void)
532 Application application;
536 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
537 DALI_TEST_CHECK(false); // Should not get here
541 DALI_TEST_CHECK(true);
547 int UtcDaliApplicationLowMemorySignalP(void)
549 Application application = Application::New();
550 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
551 DALI_TEST_CHECK(application);
556 int UtcDaliApplicationLowMemorySignalN(void)
558 Application application;
562 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
563 DALI_TEST_CHECK(false); // Should not get here
567 DALI_TEST_CHECK(true);
573 int UtcDaliApplicationOrientationChangedSignalP(void)
575 Application application = Application::New();
576 application.DeviceOrientationChangedSignal().Connect(&OnDeviceOrientationChangedSignalCallback);
577 DALI_TEST_CHECK(application);
582 int UtcDaliApplicationOrientationChangedSignalN(void)
584 Application application;
588 application.DeviceOrientationChangedSignal().Connect(&OnDeviceOrientationChangedSignalCallback);
589 DALI_TEST_CHECK(false); // Should not get here
593 DALI_TEST_CHECK(true);
599 int UtcDaliApplicationGetResourcePathP(void)
601 Application application = Application::New();
602 std::string result("**invalid path**"); // Calling GetResourcePath should replace this with a system dependent path or "".
603 result = application.GetResourcePath();
604 DALI_TEST_CHECK(result != "**invalid path**");
609 int UtcDaliApplicationGetRegionP(void)
611 Application application = Application::New();
613 result = application.GetRegion();
614 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
619 int UtcDaliApplicationGetLanguageP(void)
621 Application application = Application::New();
623 result = application.GetLanguage();
624 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
629 int UtcDaliApplicationGetObjectRegistryN(void)
631 Application application = Application::New();
632 DALI_TEST_CHECK(!application.GetObjectRegistry());
636 int UtcDaliApplicationAddIdleWithReturnValueN(void)
638 Application application;
642 DevelApplication::AddIdleWithReturnValue(application, nullptr);
643 DALI_TEST_CHECK(false); // Should not get here
647 DALI_TEST_CHECK(true);
653 int UtcDaliApplicationGetDataPathP(void)
655 setenv("DALI_APPLICATION_DATA_DIR", "MyDataPath", 1);
656 std::string dataPath = DevelApplication::GetDataPath();
657 DALI_TEST_EQUALS(dataPath, "MyDataPath", TEST_LOCATION);
661 int UtcDaliApplicationDownCastN(void)
663 Application application = DevelApplication::DownCast(nullptr);
664 DALI_TEST_CHECK(!application);
668 int UtcDaliApplicationTaskInitSignalN(void)
670 Application application;
674 application.TaskInitSignal();
675 DALI_TEST_CHECK(false); // Should not get here
679 DALI_TEST_CHECK(true);
685 int UtcDaliApplicationTaskTerminateSignalN(void)
687 Application application;
691 application.TaskTerminateSignal();
692 DALI_TEST_CHECK(false); // Should not get here
696 DALI_TEST_CHECK(true);
702 int UtcDaliApplicationTaskAppControlSignalN(void)
704 Application application;
708 application.TaskAppControlSignal();
709 DALI_TEST_CHECK(false); // Should not get here
713 DALI_TEST_CHECK(true);
719 int UtcDaliApplicationTaskLanguageChangedSignalN(void)
721 Application application;
725 application.TaskLanguageChangedSignal();
726 DALI_TEST_CHECK(false); // Should not get here
730 DALI_TEST_CHECK(true);
736 int UtcDaliApplicationTaskRegionChangedSignalN(void)
738 Application application;
742 application.TaskRegionChangedSignal();
743 DALI_TEST_CHECK(false); // Should not get here
747 DALI_TEST_CHECK(true);
753 int UtcDaliApplicationTaskLowBatterySignalN(void)
755 Application application;
759 application.TaskLowBatterySignal();
760 DALI_TEST_CHECK(false); // Should not get here
764 DALI_TEST_CHECK(true);
770 int UtcDaliApplicationTaskLowMemorySignalN(void)
772 Application application;
776 application.TaskLowMemorySignal();
777 DALI_TEST_CHECK(false); // Should not get here
781 DALI_TEST_CHECK(true);
787 int UtcDaliApplicationTaskDeviceOrientationChangedSignalN(void)
789 Application application;
793 application.TaskDeviceOrientationChangedSignal();
794 DALI_TEST_CHECK(false); // Should not get here
798 DALI_TEST_CHECK(true);