2 * Copyright (c) 2021 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.
19 #include <dali-test-suite-utils.h>
20 #include <dali/dali.h>
21 #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 int UtcDaliApplicationNew01(void)
81 Application application = Application::New();
83 MyTestApp testApp(application);
85 DALI_TEST_CHECK(application);
90 int UtcDaliApplicationNew02(void)
93 const char* argList[1] = {"program"};
94 char** argv = const_cast<char**>(argList);
96 Application application = Application::New(&argc, &argv);
98 MyTestApp testApp(application);
100 DALI_TEST_CHECK(application);
105 int UtcDaliApplicationNew03(void)
108 const char* argList[1] = {"program"};
109 char** argv = const_cast<char**>(argList);
111 Application application = Application::New(&argc, &argv, "stylesheet");
113 MyTestApp testApp(application);
115 DALI_TEST_CHECK(application);
120 int UtcDaliApplicationNew04(void)
123 const char* argList[1] = {"program"};
124 char** argv = const_cast<char**>(argList);
126 Application application = Application::New(&argc, &argv, "stylesheet", Application::TRANSPARENT);
128 MyTestApp testApp(application);
130 DALI_TEST_CHECK(application);
135 int UtcDaliApplicationCopyAndAssignment(void)
137 Application application = Application::New();
138 Application copy(application);
139 DALI_TEST_CHECK(copy == application);
141 Application assigned;
142 DALI_TEST_CHECK(!assigned);
143 assigned = application;
144 DALI_TEST_CHECK(copy == assigned);
149 int UtcDaliApplicationMoveConstructor(void)
151 Application application = Application::New();
152 DALI_TEST_CHECK(application);
153 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
155 Application moved = std::move(application);
156 DALI_TEST_CHECK(moved);
157 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
158 DALI_TEST_CHECK(!application);
163 int UtcDaliApplicationMoveAssignment(void)
165 Application application = Application::New();
166 DALI_TEST_CHECK(application);
167 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
170 moved = std::move(application);
171 DALI_TEST_CHECK(moved);
172 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
173 DALI_TEST_CHECK(!application);
178 int UtcDaliApplicationMainLoop01N(void)
180 Application application;
184 application.MainLoop();
185 DALI_TEST_CHECK(false); // Should not get here
189 DALI_TEST_CHECK(true);
195 int UtcDaliApplicationLowerN(void)
197 Application application;
202 DALI_TEST_CHECK(false); // Should not get here
206 DALI_TEST_CHECK(true);
212 int UtcDaliApplicationQuitN(void)
214 Application application;
219 DALI_TEST_CHECK(false); // Should not get here
223 DALI_TEST_CHECK(true);
229 int UtcDaliApplicationAddIdleN(void)
231 Application application;
235 CallbackBase* callback = NULL;
236 application.AddIdle(callback);
237 DALI_TEST_CHECK(false); // Should not get here
241 DALI_TEST_CHECK(true);
247 int UtcDaliApplicationGetWindowN(void)
249 Application application;
253 (void)application.GetWindow();
254 DALI_TEST_CHECK(false); // Should not get here
258 DALI_TEST_CHECK(true);
264 int UtcDaliApplicationInitSignalP(void)
266 Application application = Application::New();
267 application.InitSignal().Connect(&ApplicationSignalCallback);
268 DALI_TEST_CHECK(application);
273 int UtcDaliApplicationInitSignalN(void)
275 Application application;
279 application.InitSignal().Connect(&ApplicationSignalCallback);
280 DALI_TEST_CHECK(false); // Should not get here
284 DALI_TEST_CHECK(true);
290 int UtcDaliApplicationTerminateSignalP(void)
292 Application application = Application::New();
293 application.TerminateSignal().Connect(&ApplicationSignalCallback);
294 DALI_TEST_CHECK(application);
299 int UtcDaliApplicationTerminateSignalN(void)
301 Application application;
305 application.TerminateSignal().Connect(&ApplicationSignalCallback);
306 DALI_TEST_CHECK(false); // Should not get here
310 DALI_TEST_CHECK(true);
316 int UtcDaliApplicationPauseSignalP(void)
318 Application application = Application::New();
319 application.PauseSignal().Connect(&ApplicationSignalCallback);
320 DALI_TEST_CHECK(application);
325 int UtcDaliApplicationPauseSignalN(void)
327 Application application;
331 application.PauseSignal().Connect(&ApplicationSignalCallback);
332 DALI_TEST_CHECK(false); // Should not get here
336 DALI_TEST_CHECK(true);
342 int UtcDaliApplicationResumeSignalP(void)
344 Application application = Application::New();
345 application.ResumeSignal().Connect(&ApplicationSignalCallback);
346 DALI_TEST_CHECK(application);
351 int UtcDaliApplicationResumeSignalN(void)
353 Application application;
357 application.ResumeSignal().Connect(&ApplicationSignalCallback);
358 DALI_TEST_CHECK(false); // Should not get here
362 DALI_TEST_CHECK(true);
368 int UtcDaliApplicationResetSignalP(void)
370 Application application = Application::New();
371 application.ResetSignal().Connect(&ApplicationSignalCallback);
372 DALI_TEST_CHECK(application);
377 int UtcDaliApplicationResetSignalN(void)
379 Application application;
383 application.ResetSignal().Connect(&ApplicationSignalCallback);
384 DALI_TEST_CHECK(false); // Should not get here
388 DALI_TEST_CHECK(true);
394 int UtcDaliApplicationlControlSignalP(void)
396 Application application = Application::New();
397 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
398 DALI_TEST_CHECK(application);
403 int UtcDaliApplicationlControlSignalN(void)
405 Application application;
409 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
410 DALI_TEST_CHECK(false); // Should not get here
414 DALI_TEST_CHECK(true);
420 int UtcDaliApplicationLanguageChangedSignalP(void)
422 Application application = Application::New();
423 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
424 DALI_TEST_CHECK(application);
429 int UtcDaliApplicationLanguageChangedSignalN(void)
431 Application application;
435 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
436 DALI_TEST_CHECK(false); // Should not get here
440 DALI_TEST_CHECK(true);
446 int UtcDaliApplicationRegionChangedSignalP(void)
448 Application application = Application::New();
449 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
450 DALI_TEST_CHECK(application);
455 int UtcDaliApplicationRegionChangedSignalN(void)
457 Application application;
461 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
462 DALI_TEST_CHECK(false); // Should not get here
466 DALI_TEST_CHECK(true);
472 int UtcDaliApplicationLowBatterySignalP(void)
474 Application application = Application::New();
475 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
476 DALI_TEST_CHECK(application);
481 int UtcDaliApplicationLowBatterySignalN(void)
483 Application application;
487 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
488 DALI_TEST_CHECK(false); // Should not get here
492 DALI_TEST_CHECK(true);
498 int UtcDaliApplicationLowMemorySignalP(void)
500 Application application = Application::New();
501 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
502 DALI_TEST_CHECK(application);
507 int UtcDaliApplicationLowMemorySignalN(void)
509 Application application;
513 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
514 DALI_TEST_CHECK(false); // Should not get here
518 DALI_TEST_CHECK(true);
524 int UtcDaliApplicationGetResourcePathP(void)
526 Application application = Application::New();
527 std::string result("**invalid path**"); // Calling GetResourcePath should replace this with a system dependent path or "".
528 result = application.GetResourcePath();
529 DALI_TEST_CHECK(result != "**invalid path**");
534 int UtcDaliApplicationGetRegionP(void)
536 Application application = Application::New();
538 result = application.GetRegion();
539 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
544 int UtcDaliApplicationGetLanguageP(void)
546 Application application = Application::New();
548 result = application.GetLanguage();
549 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
554 int UtcDaliApplicationGetObjectRegistryN(void)
556 Application application = Application::New();
557 DALI_TEST_CHECK(!application.GetObjectRegistry());
561 int UtcDaliApplicationGetControllerN(void)
563 Application application;
567 application.GetController();
568 DALI_TEST_CHECK(false); // Should not get here
572 DALI_TEST_CHECK(true);
578 int UtcDaliApplicationAddIdleWithReturnValueN(void)
580 Application application;
584 DevelApplication::AddIdleWithReturnValue(application, nullptr);
585 DALI_TEST_CHECK(false); // Should not get here
589 DALI_TEST_CHECK(true);
595 int UtcDaliApplicationGetDataPathP(void)
597 setenv( "DALI_APPLICATION_DATA_DIR", "MyDataPath", 1);
598 std::string dataPath = DevelApplication::GetDataPath();
599 DALI_TEST_EQUALS(dataPath, "MyDataPath", TEST_LOCATION);
603 int UtcDaliApplicationDownCastN(void)
605 Application application = DevelApplication::DownCast(nullptr);
606 DALI_TEST_CHECK(!application);