2 * Copyright (c) 2023 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 UtcDaliApplicationNew08P(void)
187 const char* argList[1] = {"program"};
188 char** argv = const_cast<char**>(argList);
189 WindowData windowData;
191 Application application = Application::New(&argc, &argv, "stylesheet", false, windowData);
193 MyTestApp testApp(application);
195 DALI_TEST_CHECK(application);
200 int UtcDaliApplicationCopyAndAssignment(void)
202 Application application = Application::New();
203 Application copy(application);
204 DALI_TEST_CHECK(copy == application);
206 Application assigned;
207 DALI_TEST_CHECK(!assigned);
208 assigned = application;
209 DALI_TEST_CHECK(copy == assigned);
214 int UtcDaliApplicationMoveConstructor(void)
216 Application application = Application::New();
217 DALI_TEST_CHECK(application);
218 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
220 Application moved = std::move(application);
221 DALI_TEST_CHECK(moved);
222 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
223 DALI_TEST_CHECK(!application);
228 int UtcDaliApplicationMoveAssignment(void)
230 Application application = Application::New();
231 DALI_TEST_CHECK(application);
232 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
235 moved = std::move(application);
236 DALI_TEST_CHECK(moved);
237 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
238 DALI_TEST_CHECK(!application);
243 int UtcDaliApplicationMainLoop01N(void)
245 Application application;
249 application.MainLoop();
250 DALI_TEST_CHECK(false); // Should not get here
254 DALI_TEST_CHECK(true);
260 int UtcDaliApplicationLowerN(void)
262 Application application;
267 DALI_TEST_CHECK(false); // Should not get here
271 DALI_TEST_CHECK(true);
277 int UtcDaliApplicationQuitN(void)
279 Application application;
284 DALI_TEST_CHECK(false); // Should not get here
288 DALI_TEST_CHECK(true);
294 int UtcDaliApplicationAddIdleN(void)
296 Application application;
300 CallbackBase* callback = NULL;
301 application.AddIdle(callback);
302 DALI_TEST_CHECK(false); // Should not get here
306 DALI_TEST_CHECK(true);
312 int UtcDaliApplicationGetWindowN(void)
314 Application application;
318 (void)application.GetWindow();
319 DALI_TEST_CHECK(false); // Should not get here
323 DALI_TEST_CHECK(true);
329 int UtcDaliApplicationInitSignalP(void)
331 Application application = Application::New();
332 application.InitSignal().Connect(&ApplicationSignalCallback);
333 DALI_TEST_CHECK(application);
338 int UtcDaliApplicationInitSignalN(void)
340 Application application;
344 application.InitSignal().Connect(&ApplicationSignalCallback);
345 DALI_TEST_CHECK(false); // Should not get here
349 DALI_TEST_CHECK(true);
355 int UtcDaliApplicationTerminateSignalP(void)
357 Application application = Application::New();
358 application.TerminateSignal().Connect(&ApplicationSignalCallback);
359 DALI_TEST_CHECK(application);
364 int UtcDaliApplicationTerminateSignalN(void)
366 Application application;
370 application.TerminateSignal().Connect(&ApplicationSignalCallback);
371 DALI_TEST_CHECK(false); // Should not get here
375 DALI_TEST_CHECK(true);
381 int UtcDaliApplicationPauseSignalP(void)
383 Application application = Application::New();
384 application.PauseSignal().Connect(&ApplicationSignalCallback);
385 DALI_TEST_CHECK(application);
390 int UtcDaliApplicationPauseSignalN(void)
392 Application application;
396 application.PauseSignal().Connect(&ApplicationSignalCallback);
397 DALI_TEST_CHECK(false); // Should not get here
401 DALI_TEST_CHECK(true);
407 int UtcDaliApplicationResumeSignalP(void)
409 Application application = Application::New();
410 application.ResumeSignal().Connect(&ApplicationSignalCallback);
411 DALI_TEST_CHECK(application);
416 int UtcDaliApplicationResumeSignalN(void)
418 Application application;
422 application.ResumeSignal().Connect(&ApplicationSignalCallback);
423 DALI_TEST_CHECK(false); // Should not get here
427 DALI_TEST_CHECK(true);
433 int UtcDaliApplicationResetSignalP(void)
435 Application application = Application::New();
436 application.ResetSignal().Connect(&ApplicationSignalCallback);
437 DALI_TEST_CHECK(application);
442 int UtcDaliApplicationResetSignalN(void)
444 Application application;
448 application.ResetSignal().Connect(&ApplicationSignalCallback);
449 DALI_TEST_CHECK(false); // Should not get here
453 DALI_TEST_CHECK(true);
459 int UtcDaliApplicationlControlSignalP(void)
461 Application application = Application::New();
462 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
463 DALI_TEST_CHECK(application);
468 int UtcDaliApplicationlControlSignalN(void)
470 Application application;
474 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
475 DALI_TEST_CHECK(false); // Should not get here
479 DALI_TEST_CHECK(true);
485 int UtcDaliApplicationLanguageChangedSignalP(void)
487 Application application = Application::New();
488 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
489 DALI_TEST_CHECK(application);
494 int UtcDaliApplicationLanguageChangedSignalN(void)
496 Application application;
500 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
501 DALI_TEST_CHECK(false); // Should not get here
505 DALI_TEST_CHECK(true);
511 int UtcDaliApplicationRegionChangedSignalP(void)
513 Application application = Application::New();
514 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
515 DALI_TEST_CHECK(application);
520 int UtcDaliApplicationRegionChangedSignalN(void)
522 Application application;
526 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
527 DALI_TEST_CHECK(false); // Should not get here
531 DALI_TEST_CHECK(true);
537 int UtcDaliApplicationLowBatterySignalP(void)
539 Application application = Application::New();
540 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
541 DALI_TEST_CHECK(application);
546 int UtcDaliApplicationLowBatterySignalN(void)
548 Application application;
552 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
553 DALI_TEST_CHECK(false); // Should not get here
557 DALI_TEST_CHECK(true);
563 int UtcDaliApplicationLowMemorySignalP(void)
565 Application application = Application::New();
566 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
567 DALI_TEST_CHECK(application);
572 int UtcDaliApplicationLowMemorySignalN(void)
574 Application application;
578 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
579 DALI_TEST_CHECK(false); // Should not get here
583 DALI_TEST_CHECK(true);
589 int UtcDaliApplicationOrientationChangedSignalP(void)
591 Application application = Application::New();
592 application.DeviceOrientationChangedSignal().Connect(&OnDeviceOrientationChangedSignalCallback);
593 DALI_TEST_CHECK(application);
598 int UtcDaliApplicationOrientationChangedSignalN(void)
600 Application application;
604 application.DeviceOrientationChangedSignal().Connect(&OnDeviceOrientationChangedSignalCallback);
605 DALI_TEST_CHECK(false); // Should not get here
609 DALI_TEST_CHECK(true);
615 int UtcDaliApplicationGetResourcePathP(void)
617 Application application = Application::New();
618 std::string result("**invalid path**"); // Calling GetResourcePath should replace this with a system dependent path or "".
619 result = application.GetResourcePath();
620 DALI_TEST_CHECK(result != "**invalid path**");
625 int UtcDaliApplicationGetRegionP(void)
627 Application application = Application::New();
629 result = application.GetRegion();
630 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
635 int UtcDaliApplicationGetLanguageP(void)
637 Application application = Application::New();
639 result = application.GetLanguage();
640 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
645 int UtcDaliApplicationGetObjectRegistryN(void)
647 Application application = Application::New();
648 DALI_TEST_CHECK(!application.GetObjectRegistry());
652 int UtcDaliApplicationAddIdleWithReturnValueN(void)
654 Application application;
658 DevelApplication::AddIdleWithReturnValue(application, nullptr);
659 DALI_TEST_CHECK(false); // Should not get here
663 DALI_TEST_CHECK(true);
669 int UtcDaliApplicationGetDataPathP(void)
671 setenv("DALI_APPLICATION_DATA_DIR", "MyDataPath", 1);
672 std::string dataPath = DevelApplication::GetDataPath();
673 DALI_TEST_EQUALS(dataPath, "MyDataPath", TEST_LOCATION);
677 int UtcDaliApplicationDownCastN(void)
679 Application application = DevelApplication::DownCast(nullptr);
680 DALI_TEST_CHECK(!application);
684 int UtcDaliApplicationTaskInitSignalN(void)
686 Application application;
690 application.TaskInitSignal();
691 DALI_TEST_CHECK(false); // Should not get here
695 DALI_TEST_CHECK(true);
701 int UtcDaliApplicationTaskTerminateSignalN(void)
703 Application application;
707 application.TaskTerminateSignal();
708 DALI_TEST_CHECK(false); // Should not get here
712 DALI_TEST_CHECK(true);
718 int UtcDaliApplicationTaskAppControlSignalN(void)
720 Application application;
724 application.TaskAppControlSignal();
725 DALI_TEST_CHECK(false); // Should not get here
729 DALI_TEST_CHECK(true);
735 int UtcDaliApplicationTaskLanguageChangedSignalN(void)
737 Application application;
741 application.TaskLanguageChangedSignal();
742 DALI_TEST_CHECK(false); // Should not get here
746 DALI_TEST_CHECK(true);
752 int UtcDaliApplicationTaskRegionChangedSignalN(void)
754 Application application;
758 application.TaskRegionChangedSignal();
759 DALI_TEST_CHECK(false); // Should not get here
763 DALI_TEST_CHECK(true);
769 int UtcDaliApplicationTaskLowBatterySignalN(void)
771 Application application;
775 application.TaskLowBatterySignal();
776 DALI_TEST_CHECK(false); // Should not get here
780 DALI_TEST_CHECK(true);
786 int UtcDaliApplicationTaskLowMemorySignalN(void)
788 Application application;
792 application.TaskLowMemorySignal();
793 DALI_TEST_CHECK(false); // Should not get here
797 DALI_TEST_CHECK(true);
803 int UtcDaliApplicationTaskDeviceOrientationChangedSignalN(void)
805 Application application;
809 application.TaskDeviceOrientationChangedSignal();
810 DALI_TEST_CHECK(false); // Should not get here
814 DALI_TEST_CHECK(true);