2 * Copyright (c) 2020 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>
23 void utc_dali_application_startup(void)
25 test_return_value = TET_UNDEF;
28 void utc_dali_application_cleanup(void)
30 test_return_value = TET_PASS;
35 struct MyTestApp : public ConnectionTracker
37 MyTestApp(Application& app)
41 application.InitSignal().Connect(this, &MyTestApp::Create);
44 void Create(Application& app)
56 Application& application;
59 void ApplicationSignalCallback(Application& app)
63 void ApplicationControlSignalCallback(Application&, void*)
67 } // unnamed namespace
69 void LowBatterySignalCallback(Dali::DeviceStatus::Battery::Status status)
73 void LowMemorySignalCallback(Dali::DeviceStatus::Memory::Status status)
77 int UtcDaliApplicationNew01(void)
79 Application application = Application::New();
81 MyTestApp testApp(application);
83 DALI_TEST_CHECK(application);
88 int UtcDaliApplicationNew02(void)
91 const char* argList[1] = {"program"};
92 char** argv = const_cast<char**>(argList);
94 Application application = Application::New(&argc, &argv);
96 MyTestApp testApp(application);
98 DALI_TEST_CHECK(application);
103 int UtcDaliApplicationNew03(void)
106 const char* argList[1] = {"program"};
107 char** argv = const_cast<char**>(argList);
109 Application application = Application::New(&argc, &argv, "stylesheet");
111 MyTestApp testApp(application);
113 DALI_TEST_CHECK(application);
118 int UtcDaliApplicationNew04(void)
121 const char* argList[1] = {"program"};
122 char** argv = const_cast<char**>(argList);
124 Application application = Application::New(&argc, &argv, "stylesheet", Application::TRANSPARENT);
126 MyTestApp testApp(application);
128 DALI_TEST_CHECK(application);
133 int UtcDaliApplicationCopyAndAssignment(void)
135 Application application = Application::New();
136 Application copy(application);
137 DALI_TEST_CHECK(copy == application);
139 Application assigned;
140 DALI_TEST_CHECK(!assigned);
141 assigned = application;
142 DALI_TEST_CHECK(copy == assigned);
147 int UtcDaliApplicationMoveConstructor(void)
149 Application application = Application::New();
150 DALI_TEST_CHECK(application);
151 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
153 Application moved = std::move(application);
154 DALI_TEST_CHECK(moved);
155 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
156 DALI_TEST_CHECK(!application);
161 int UtcDaliApplicationMoveAssignment(void)
163 Application application = Application::New();
164 DALI_TEST_CHECK(application);
165 DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
168 moved = std::move(application);
169 DALI_TEST_CHECK(moved);
170 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
171 DALI_TEST_CHECK(!application);
176 int UtcDaliApplicationMainLoop01N(void)
178 Application application;
182 application.MainLoop();
183 DALI_TEST_CHECK(false); // Should not get here
187 DALI_TEST_CHECK(true);
193 int UtcDaliApplicationLowerN(void)
195 Application application;
200 DALI_TEST_CHECK(false); // Should not get here
204 DALI_TEST_CHECK(true);
210 int UtcDaliApplicationQuitN(void)
212 Application application;
217 DALI_TEST_CHECK(false); // Should not get here
221 DALI_TEST_CHECK(true);
227 int UtcDaliApplicationAddIdleN(void)
229 Application application;
233 CallbackBase* callback = NULL;
234 application.AddIdle(callback);
235 DALI_TEST_CHECK(false); // Should not get here
239 DALI_TEST_CHECK(true);
245 int UtcDaliApplicationGetWindowN(void)
247 Application application;
251 (void)application.GetWindow();
252 DALI_TEST_CHECK(false); // Should not get here
256 DALI_TEST_CHECK(true);
262 int UtcDaliApplicationInitSignalP(void)
264 Application application = Application::New();
265 application.InitSignal().Connect(&ApplicationSignalCallback);
266 DALI_TEST_CHECK(application);
271 int UtcDaliApplicationInitSignalN(void)
273 Application application;
277 application.InitSignal().Connect(&ApplicationSignalCallback);
278 DALI_TEST_CHECK(false); // Should not get here
282 DALI_TEST_CHECK(true);
288 int UtcDaliApplicationTerminateSignalP(void)
290 Application application = Application::New();
291 application.TerminateSignal().Connect(&ApplicationSignalCallback);
292 DALI_TEST_CHECK(application);
297 int UtcDaliApplicationTerminateSignalN(void)
299 Application application;
303 application.TerminateSignal().Connect(&ApplicationSignalCallback);
304 DALI_TEST_CHECK(false); // Should not get here
308 DALI_TEST_CHECK(true);
314 int UtcDaliApplicationPauseSignalP(void)
316 Application application = Application::New();
317 application.PauseSignal().Connect(&ApplicationSignalCallback);
318 DALI_TEST_CHECK(application);
323 int UtcDaliApplicationPauseSignalN(void)
325 Application application;
329 application.PauseSignal().Connect(&ApplicationSignalCallback);
330 DALI_TEST_CHECK(false); // Should not get here
334 DALI_TEST_CHECK(true);
340 int UtcDaliApplicationResumeSignalP(void)
342 Application application = Application::New();
343 application.ResumeSignal().Connect(&ApplicationSignalCallback);
344 DALI_TEST_CHECK(application);
349 int UtcDaliApplicationResumeSignalN(void)
351 Application application;
355 application.ResumeSignal().Connect(&ApplicationSignalCallback);
356 DALI_TEST_CHECK(false); // Should not get here
360 DALI_TEST_CHECK(true);
366 int UtcDaliApplicationResetSignalP(void)
368 Application application = Application::New();
369 application.ResetSignal().Connect(&ApplicationSignalCallback);
370 DALI_TEST_CHECK(application);
375 int UtcDaliApplicationResetSignalN(void)
377 Application application;
381 application.ResetSignal().Connect(&ApplicationSignalCallback);
382 DALI_TEST_CHECK(false); // Should not get here
386 DALI_TEST_CHECK(true);
392 int UtcDaliApplicationlControlSignalP(void)
394 Application application = Application::New();
395 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
396 DALI_TEST_CHECK(application);
401 int UtcDaliApplicationlControlSignalN(void)
403 Application application;
407 application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
408 DALI_TEST_CHECK(false); // Should not get here
412 DALI_TEST_CHECK(true);
418 int UtcDaliApplicationLanguageChangedSignalP(void)
420 Application application = Application::New();
421 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
422 DALI_TEST_CHECK(application);
427 int UtcDaliApplicationLanguageChangedSignalN(void)
429 Application application;
433 application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
434 DALI_TEST_CHECK(false); // Should not get here
438 DALI_TEST_CHECK(true);
444 int UtcDaliApplicationRegionChangedSignalP(void)
446 Application application = Application::New();
447 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
448 DALI_TEST_CHECK(application);
453 int UtcDaliApplicationRegionChangedSignalN(void)
455 Application application;
459 application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
460 DALI_TEST_CHECK(false); // Should not get here
464 DALI_TEST_CHECK(true);
470 int UtcDaliApplicationLowBatterySignalP(void)
472 Application application = Application::New();
473 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
474 DALI_TEST_CHECK(application);
479 int UtcDaliApplicationLowBatterySignalN(void)
481 Application application;
485 application.LowBatterySignal().Connect(&LowBatterySignalCallback);
486 DALI_TEST_CHECK(false); // Should not get here
490 DALI_TEST_CHECK(true);
496 int UtcDaliApplicationLowMemorySignalP(void)
498 Application application = Application::New();
499 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
500 DALI_TEST_CHECK(application);
505 int UtcDaliApplicationLowMemorySignalN(void)
507 Application application;
511 application.LowMemorySignal().Connect(&LowMemorySignalCallback);
512 DALI_TEST_CHECK(false); // Should not get here
516 DALI_TEST_CHECK(true);
522 int UtcDaliApplicationGetResourcePathP(void)
524 Application application = Application::New();
525 std::string result("**invalid path**"); // Calling GetResourcePath should replace this with a system dependent path or "".
526 result = application.GetResourcePath();
527 DALI_TEST_CHECK(result != "**invalid path**");
532 int UtcDaliApplicationGetRegionP(void)
534 Application application = Application::New();
536 result = application.GetRegion();
537 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
542 int UtcDaliApplicationGetLanguageP(void)
544 Application application = Application::New();
546 result = application.GetLanguage();
547 DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
552 int UtcDaliApplicationGetObjectRegistryN(void)
554 Application application = Application::New();
555 DALI_TEST_CHECK(!application.GetObjectRegistry());