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 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 UtcDaliApplicationNew05(void)
138 const char* argList[1] = {"program"};
139 char** argv = const_cast<char**>(argList);
141 Application application = DevelApplication::New(&argc, &argv, "stylesheet", Application::WINDOW_MODE::OPAQUE, PositionSize(), WindowType::IME);
143 MyTestApp testApp(application);
145 DALI_TEST_CHECK(application);
150 int UtcDaliApplicationCopyAndAssignment(void)
152 Application application = Application::New();
153 Application copy(application);
154 DALI_TEST_CHECK(copy == application);
156 Application assigned;
157 DALI_TEST_CHECK(!assigned);
158 assigned = application;
159 DALI_TEST_CHECK(copy == assigned);
164 int UtcDaliApplicationMoveConstructor(void)
166 Application application = Application::New();
167 DALI_TEST_CHECK(application);
168 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
170 Application 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 UtcDaliApplicationMoveAssignment(void)
180 Application application = Application::New();
181 DALI_TEST_CHECK(application);
182 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
185 moved = std::move(application);
186 DALI_TEST_CHECK(moved);
187 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
188 DALI_TEST_CHECK(!application);
193 int UtcDaliApplicationMainLoop01N(void)
195 Application application;
199 application.MainLoop();
200 DALI_TEST_CHECK(false); // Should not get here
204 DALI_TEST_CHECK(true);
210 int UtcDaliApplicationLowerN(void)
212 Application application;
217 DALI_TEST_CHECK(false); // Should not get here
221 DALI_TEST_CHECK(true);
227 int UtcDaliApplicationQuitN(void)
229 Application application;
234 DALI_TEST_CHECK(false); // Should not get here
238 DALI_TEST_CHECK(true);
244 int UtcDaliApplicationAddIdleN(void)
246 Application application;
250 CallbackBase* callback = NULL;
251 application.AddIdle(callback);
252 DALI_TEST_CHECK(false); // Should not get here
256 DALI_TEST_CHECK(true);
262 int UtcDaliApplicationGetWindowN(void)
264 Application application;
268 (void)application.GetWindow();
269 DALI_TEST_CHECK(false); // Should not get here
273 DALI_TEST_CHECK(true);
279 int UtcDaliApplicationInitSignalP(void)
281 Application application = Application::New();
282 application.InitSignal().Connect(&ApplicationSignalCallback);
283 DALI_TEST_CHECK(application);
288 int UtcDaliApplicationInitSignalN(void)
290 Application application;
294 application.InitSignal().Connect(&ApplicationSignalCallback);
295 DALI_TEST_CHECK(false); // Should not get here
299 DALI_TEST_CHECK(true);
305 int UtcDaliApplicationTerminateSignalP(void)
307 Application application = Application::New();
308 application.TerminateSignal().Connect(&ApplicationSignalCallback);
309 DALI_TEST_CHECK(application);
314 int UtcDaliApplicationTerminateSignalN(void)
316 Application application;
320 application.TerminateSignal().Connect(&ApplicationSignalCallback);
321 DALI_TEST_CHECK(false); // Should not get here
325 DALI_TEST_CHECK(true);
331 int UtcDaliApplicationPauseSignalP(void)
333 Application application = Application::New();
334 application.PauseSignal().Connect(&ApplicationSignalCallback);
335 DALI_TEST_CHECK(application);
340 int UtcDaliApplicationPauseSignalN(void)
342 Application application;
346 application.PauseSignal().Connect(&ApplicationSignalCallback);
347 DALI_TEST_CHECK(false); // Should not get here
351 DALI_TEST_CHECK(true);
357 int UtcDaliApplicationResumeSignalP(void)
359 Application application = Application::New();
360 application.ResumeSignal().Connect(&ApplicationSignalCallback);
361 DALI_TEST_CHECK(application);
366 int UtcDaliApplicationResumeSignalN(void)
368 Application application;
372 application.ResumeSignal().Connect(&ApplicationSignalCallback);
373 DALI_TEST_CHECK(false); // Should not get here
377 DALI_TEST_CHECK(true);
383 int UtcDaliApplicationResetSignalP(void)
385 Application application = Application::New();
386 application.ResetSignal().Connect(&ApplicationSignalCallback);
387 DALI_TEST_CHECK(application);
392 int UtcDaliApplicationResetSignalN(void)
394 Application application;
398 application.ResetSignal().Connect(&ApplicationSignalCallback);
399 DALI_TEST_CHECK(false); // Should not get here
403 DALI_TEST_CHECK(true);
409 int UtcDaliApplicationlControlSignalP(void)
411 Application application = Application::New();
412 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
413 DALI_TEST_CHECK(application);
418 int UtcDaliApplicationlControlSignalN(void)
420 Application application;
424 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
425 DALI_TEST_CHECK(false); // Should not get here
429 DALI_TEST_CHECK(true);
435 int UtcDaliApplicationLanguageChangedSignalP(void)
437 Application application = Application::New();
438 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
439 DALI_TEST_CHECK(application);
444 int UtcDaliApplicationLanguageChangedSignalN(void)
446 Application application;
450 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
451 DALI_TEST_CHECK(false); // Should not get here
455 DALI_TEST_CHECK(true);
461 int UtcDaliApplicationRegionChangedSignalP(void)
463 Application application = Application::New();
464 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
465 DALI_TEST_CHECK(application);
470 int UtcDaliApplicationRegionChangedSignalN(void)
472 Application application;
476 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
477 DALI_TEST_CHECK(false); // Should not get here
481 DALI_TEST_CHECK(true);
487 int UtcDaliApplicationLowBatterySignalP(void)
489 Application application = Application::New();
490 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
491 DALI_TEST_CHECK(application);
496 int UtcDaliApplicationLowBatterySignalN(void)
498 Application application;
502 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
503 DALI_TEST_CHECK(false); // Should not get here
507 DALI_TEST_CHECK(true);
513 int UtcDaliApplicationLowMemorySignalP(void)
515 Application application = Application::New();
516 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
517 DALI_TEST_CHECK(application);
522 int UtcDaliApplicationLowMemorySignalN(void)
524 Application application;
528 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
529 DALI_TEST_CHECK(false); // Should not get here
533 DALI_TEST_CHECK(true);
539 int UtcDaliApplicationGetResourcePathP(void)
541 Application application = Application::New();
542 std::string result("**invalid path**"); // Calling GetResourcePath should replace this with a system dependent path or "".
543 result = application.GetResourcePath();
544 DALI_TEST_CHECK(result != "**invalid path**");
549 int UtcDaliApplicationGetRegionP(void)
551 Application application = Application::New();
553 result = application.GetRegion();
554 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
559 int UtcDaliApplicationGetLanguageP(void)
561 Application application = Application::New();
563 result = application.GetLanguage();
564 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
569 int UtcDaliApplicationGetObjectRegistryN(void)
571 Application application = Application::New();
572 DALI_TEST_CHECK(!application.GetObjectRegistry());
576 int UtcDaliApplicationAddIdleWithReturnValueN(void)
578 Application application;
582 DevelApplication::AddIdleWithReturnValue(application, nullptr);
583 DALI_TEST_CHECK(false); // Should not get here
587 DALI_TEST_CHECK(true);
593 int UtcDaliApplicationGetDataPathP(void)
595 setenv("DALI_APPLICATION_DATA_DIR", "MyDataPath", 1);
596 std::string dataPath = DevelApplication::GetDataPath();
597 DALI_TEST_EQUALS(dataPath, "MyDataPath", TEST_LOCATION);
601 int UtcDaliApplicationDownCastN(void)
603 Application application = DevelApplication::DownCast(nullptr);
604 DALI_TEST_CHECK(!application);