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 UtcDaliApplicationCopyAndAssignment(void)
156 Application application = Application::New();
157 Application copy(application);
158 DALI_TEST_CHECK(copy == application);
160 Application assigned;
161 DALI_TEST_CHECK(!assigned);
162 assigned = application;
163 DALI_TEST_CHECK(copy == assigned);
168 int UtcDaliApplicationMoveConstructor(void)
170 Application application = Application::New();
171 DALI_TEST_CHECK(application);
172 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
174 Application moved = std::move(application);
175 DALI_TEST_CHECK(moved);
176 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
177 DALI_TEST_CHECK(!application);
182 int UtcDaliApplicationMoveAssignment(void)
184 Application application = Application::New();
185 DALI_TEST_CHECK(application);
186 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
189 moved = std::move(application);
190 DALI_TEST_CHECK(moved);
191 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
192 DALI_TEST_CHECK(!application);
197 int UtcDaliApplicationMainLoop01N(void)
199 Application application;
203 application.MainLoop();
204 DALI_TEST_CHECK(false); // Should not get here
208 DALI_TEST_CHECK(true);
214 int UtcDaliApplicationLowerN(void)
216 Application application;
221 DALI_TEST_CHECK(false); // Should not get here
225 DALI_TEST_CHECK(true);
231 int UtcDaliApplicationQuitN(void)
233 Application application;
238 DALI_TEST_CHECK(false); // Should not get here
242 DALI_TEST_CHECK(true);
248 int UtcDaliApplicationAddIdleN(void)
250 Application application;
254 CallbackBase* callback = NULL;
255 application.AddIdle(callback);
256 DALI_TEST_CHECK(false); // Should not get here
260 DALI_TEST_CHECK(true);
266 int UtcDaliApplicationGetWindowN(void)
268 Application application;
272 (void)application.GetWindow();
273 DALI_TEST_CHECK(false); // Should not get here
277 DALI_TEST_CHECK(true);
283 int UtcDaliApplicationInitSignalP(void)
285 Application application = Application::New();
286 application.InitSignal().Connect(&ApplicationSignalCallback);
287 DALI_TEST_CHECK(application);
292 int UtcDaliApplicationInitSignalN(void)
294 Application application;
298 application.InitSignal().Connect(&ApplicationSignalCallback);
299 DALI_TEST_CHECK(false); // Should not get here
303 DALI_TEST_CHECK(true);
309 int UtcDaliApplicationTerminateSignalP(void)
311 Application application = Application::New();
312 application.TerminateSignal().Connect(&ApplicationSignalCallback);
313 DALI_TEST_CHECK(application);
318 int UtcDaliApplicationTerminateSignalN(void)
320 Application application;
324 application.TerminateSignal().Connect(&ApplicationSignalCallback);
325 DALI_TEST_CHECK(false); // Should not get here
329 DALI_TEST_CHECK(true);
335 int UtcDaliApplicationPauseSignalP(void)
337 Application application = Application::New();
338 application.PauseSignal().Connect(&ApplicationSignalCallback);
339 DALI_TEST_CHECK(application);
344 int UtcDaliApplicationPauseSignalN(void)
346 Application application;
350 application.PauseSignal().Connect(&ApplicationSignalCallback);
351 DALI_TEST_CHECK(false); // Should not get here
355 DALI_TEST_CHECK(true);
361 int UtcDaliApplicationResumeSignalP(void)
363 Application application = Application::New();
364 application.ResumeSignal().Connect(&ApplicationSignalCallback);
365 DALI_TEST_CHECK(application);
370 int UtcDaliApplicationResumeSignalN(void)
372 Application application;
376 application.ResumeSignal().Connect(&ApplicationSignalCallback);
377 DALI_TEST_CHECK(false); // Should not get here
381 DALI_TEST_CHECK(true);
387 int UtcDaliApplicationResetSignalP(void)
389 Application application = Application::New();
390 application.ResetSignal().Connect(&ApplicationSignalCallback);
391 DALI_TEST_CHECK(application);
396 int UtcDaliApplicationResetSignalN(void)
398 Application application;
402 application.ResetSignal().Connect(&ApplicationSignalCallback);
403 DALI_TEST_CHECK(false); // Should not get here
407 DALI_TEST_CHECK(true);
413 int UtcDaliApplicationlControlSignalP(void)
415 Application application = Application::New();
416 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
417 DALI_TEST_CHECK(application);
422 int UtcDaliApplicationlControlSignalN(void)
424 Application application;
428 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
429 DALI_TEST_CHECK(false); // Should not get here
433 DALI_TEST_CHECK(true);
439 int UtcDaliApplicationLanguageChangedSignalP(void)
441 Application application = Application::New();
442 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
443 DALI_TEST_CHECK(application);
448 int UtcDaliApplicationLanguageChangedSignalN(void)
450 Application application;
454 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
455 DALI_TEST_CHECK(false); // Should not get here
459 DALI_TEST_CHECK(true);
465 int UtcDaliApplicationRegionChangedSignalP(void)
467 Application application = Application::New();
468 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
469 DALI_TEST_CHECK(application);
474 int UtcDaliApplicationRegionChangedSignalN(void)
476 Application application;
480 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
481 DALI_TEST_CHECK(false); // Should not get here
485 DALI_TEST_CHECK(true);
491 int UtcDaliApplicationLowBatterySignalP(void)
493 Application application = Application::New();
494 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
495 DALI_TEST_CHECK(application);
500 int UtcDaliApplicationLowBatterySignalN(void)
502 Application application;
506 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
507 DALI_TEST_CHECK(false); // Should not get here
511 DALI_TEST_CHECK(true);
517 int UtcDaliApplicationLowMemorySignalP(void)
519 Application application = Application::New();
520 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
521 DALI_TEST_CHECK(application);
526 int UtcDaliApplicationLowMemorySignalN(void)
528 Application application;
532 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
533 DALI_TEST_CHECK(false); // Should not get here
537 DALI_TEST_CHECK(true);
543 int UtcDaliApplicationOrientationChangedSignalP(void)
545 Application application = Application::New();
546 application.DeviceOrientationChangedSignal().Connect(&OnDeviceOrientationChangedSignalCallback);
547 DALI_TEST_CHECK(application);
552 int UtcDaliApplicationOrientationChangedSignalN(void)
554 Application application;
558 application.DeviceOrientationChangedSignal().Connect(&OnDeviceOrientationChangedSignalCallback);
559 DALI_TEST_CHECK(false); // Should not get here
563 DALI_TEST_CHECK(true);
569 int UtcDaliApplicationGetResourcePathP(void)
571 Application application = Application::New();
572 std::string result("**invalid path**"); // Calling GetResourcePath should replace this with a system dependent path or "".
573 result = application.GetResourcePath();
574 DALI_TEST_CHECK(result != "**invalid path**");
579 int UtcDaliApplicationGetRegionP(void)
581 Application application = Application::New();
583 result = application.GetRegion();
584 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
589 int UtcDaliApplicationGetLanguageP(void)
591 Application application = Application::New();
593 result = application.GetLanguage();
594 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
599 int UtcDaliApplicationGetObjectRegistryN(void)
601 Application application = Application::New();
602 DALI_TEST_CHECK(!application.GetObjectRegistry());
606 int UtcDaliApplicationAddIdleWithReturnValueN(void)
608 Application application;
612 DevelApplication::AddIdleWithReturnValue(application, nullptr);
613 DALI_TEST_CHECK(false); // Should not get here
617 DALI_TEST_CHECK(true);
623 int UtcDaliApplicationGetDataPathP(void)
625 setenv("DALI_APPLICATION_DATA_DIR", "MyDataPath", 1);
626 std::string dataPath = DevelApplication::GetDataPath();
627 DALI_TEST_EQUALS(dataPath, "MyDataPath", TEST_LOCATION);
631 int UtcDaliApplicationDownCastN(void)
633 Application application = DevelApplication::DownCast(nullptr);
634 DALI_TEST_CHECK(!application);