Formatting automated-tests
[platform/core/uifw/dali-adaptor.git] / automated-tests / src / dali-adaptor / utc-Dali-Application.cpp
1 /*
2  * Copyright (c) 2020 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 #include <dali-test-suite-utils.h>
19 #include <dali/dali.h>
20
21 using namespace Dali;
22
23 void utc_dali_application_startup(void)
24 {
25   test_return_value = TET_UNDEF;
26 }
27
28 void utc_dali_application_cleanup(void)
29 {
30   test_return_value = TET_PASS;
31 }
32
33 namespace
34 {
35 struct MyTestApp : public ConnectionTracker
36 {
37   MyTestApp(Application& app)
38   : initCalled(false),
39     application(app)
40   {
41     application.InitSignal().Connect(this, &MyTestApp::Create);
42   }
43
44   void Create(Application& app)
45   {
46     initCalled = true;
47   }
48
49   void Quit()
50   {
51     application.Quit();
52   }
53
54   // Data
55   bool         initCalled;
56   Application& application;
57 };
58
59 void ApplicationSignalCallback(Application& app)
60 {
61 }
62
63 void ApplicationControlSignalCallback(Application&, void*)
64 {
65 }
66
67 } // unnamed namespace
68
69 void LowBatterySignalCallback(Dali::DeviceStatus::Battery::Status status)
70 {
71 }
72
73 void LowMemorySignalCallback(Dali::DeviceStatus::Memory::Status status)
74 {
75 }
76
77 int UtcDaliApplicationNew01(void)
78 {
79   Application application = Application::New();
80
81   MyTestApp testApp(application);
82
83   DALI_TEST_CHECK(application);
84
85   END_TEST;
86 }
87
88 int UtcDaliApplicationNew02(void)
89 {
90   int         argc(1);
91   const char* argList[1] = {"program"};
92   char**      argv       = const_cast<char**>(argList);
93
94   Application application = Application::New(&argc, &argv);
95
96   MyTestApp testApp(application);
97
98   DALI_TEST_CHECK(application);
99
100   END_TEST;
101 }
102
103 int UtcDaliApplicationNew03(void)
104 {
105   int         argc(1);
106   const char* argList[1] = {"program"};
107   char**      argv       = const_cast<char**>(argList);
108
109   Application application = Application::New(&argc, &argv, "stylesheet");
110
111   MyTestApp testApp(application);
112
113   DALI_TEST_CHECK(application);
114
115   END_TEST;
116 }
117
118 int UtcDaliApplicationNew04(void)
119 {
120   int         argc(1);
121   const char* argList[1] = {"program"};
122   char**      argv       = const_cast<char**>(argList);
123
124   Application application = Application::New(&argc, &argv, "stylesheet", Application::TRANSPARENT);
125
126   MyTestApp testApp(application);
127
128   DALI_TEST_CHECK(application);
129
130   END_TEST;
131 }
132
133 int UtcDaliApplicationCopyAndAssignment(void)
134 {
135   Application application = Application::New();
136   Application copy(application);
137   DALI_TEST_CHECK(copy == application);
138
139   Application assigned;
140   DALI_TEST_CHECK(!assigned);
141   assigned = application;
142   DALI_TEST_CHECK(copy == assigned);
143
144   END_TEST;
145 }
146
147 int UtcDaliApplicationMoveConstructor(void)
148 {
149   Application application = Application::New();
150   DALI_TEST_CHECK(application);
151   DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
152
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);
157
158   END_TEST;
159 }
160
161 int UtcDaliApplicationMoveAssignment(void)
162 {
163   Application application = Application::New();
164   DALI_TEST_CHECK(application);
165   DALI_TEST_EQUALS(1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION);
166
167   Application moved;
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);
172
173   END_TEST;
174 }
175
176 int UtcDaliApplicationMainLoop01N(void)
177 {
178   Application application;
179
180   try
181   {
182     application.MainLoop();
183     DALI_TEST_CHECK(false); // Should not get here
184   }
185   catch(...)
186   {
187     DALI_TEST_CHECK(true);
188   }
189
190   END_TEST;
191 }
192
193 int UtcDaliApplicationLowerN(void)
194 {
195   Application application;
196
197   try
198   {
199     application.Lower();
200     DALI_TEST_CHECK(false); // Should not get here
201   }
202   catch(...)
203   {
204     DALI_TEST_CHECK(true);
205   }
206
207   END_TEST;
208 }
209
210 int UtcDaliApplicationQuitN(void)
211 {
212   Application application;
213
214   try
215   {
216     application.Quit();
217     DALI_TEST_CHECK(false); // Should not get here
218   }
219   catch(...)
220   {
221     DALI_TEST_CHECK(true);
222   }
223
224   END_TEST;
225 }
226
227 int UtcDaliApplicationAddIdleN(void)
228 {
229   Application application;
230
231   try
232   {
233     CallbackBase* callback = NULL;
234     application.AddIdle(callback);
235     DALI_TEST_CHECK(false); // Should not get here
236   }
237   catch(...)
238   {
239     DALI_TEST_CHECK(true);
240   }
241
242   END_TEST;
243 }
244
245 int UtcDaliApplicationGetWindowN(void)
246 {
247   Application application;
248
249   try
250   {
251     (void)application.GetWindow();
252     DALI_TEST_CHECK(false); // Should not get here
253   }
254   catch(...)
255   {
256     DALI_TEST_CHECK(true);
257   }
258
259   END_TEST;
260 }
261
262 int UtcDaliApplicationInitSignalP(void)
263 {
264   Application application = Application::New();
265   application.InitSignal().Connect(&ApplicationSignalCallback);
266   DALI_TEST_CHECK(application);
267
268   END_TEST;
269 }
270
271 int UtcDaliApplicationInitSignalN(void)
272 {
273   Application application;
274
275   try
276   {
277     application.InitSignal().Connect(&ApplicationSignalCallback);
278     DALI_TEST_CHECK(false); // Should not get here
279   }
280   catch(...)
281   {
282     DALI_TEST_CHECK(true);
283   }
284
285   END_TEST;
286 }
287
288 int UtcDaliApplicationTerminateSignalP(void)
289 {
290   Application application = Application::New();
291   application.TerminateSignal().Connect(&ApplicationSignalCallback);
292   DALI_TEST_CHECK(application);
293
294   END_TEST;
295 }
296
297 int UtcDaliApplicationTerminateSignalN(void)
298 {
299   Application application;
300
301   try
302   {
303     application.TerminateSignal().Connect(&ApplicationSignalCallback);
304     DALI_TEST_CHECK(false); // Should not get here
305   }
306   catch(...)
307   {
308     DALI_TEST_CHECK(true);
309   }
310
311   END_TEST;
312 }
313
314 int UtcDaliApplicationPauseSignalP(void)
315 {
316   Application application = Application::New();
317   application.PauseSignal().Connect(&ApplicationSignalCallback);
318   DALI_TEST_CHECK(application);
319
320   END_TEST;
321 }
322
323 int UtcDaliApplicationPauseSignalN(void)
324 {
325   Application application;
326
327   try
328   {
329     application.PauseSignal().Connect(&ApplicationSignalCallback);
330     DALI_TEST_CHECK(false); // Should not get here
331   }
332   catch(...)
333   {
334     DALI_TEST_CHECK(true);
335   }
336
337   END_TEST;
338 }
339
340 int UtcDaliApplicationResumeSignalP(void)
341 {
342   Application application = Application::New();
343   application.ResumeSignal().Connect(&ApplicationSignalCallback);
344   DALI_TEST_CHECK(application);
345
346   END_TEST;
347 }
348
349 int UtcDaliApplicationResumeSignalN(void)
350 {
351   Application application;
352
353   try
354   {
355     application.ResumeSignal().Connect(&ApplicationSignalCallback);
356     DALI_TEST_CHECK(false); // Should not get here
357   }
358   catch(...)
359   {
360     DALI_TEST_CHECK(true);
361   }
362
363   END_TEST;
364 }
365
366 int UtcDaliApplicationResetSignalP(void)
367 {
368   Application application = Application::New();
369   application.ResetSignal().Connect(&ApplicationSignalCallback);
370   DALI_TEST_CHECK(application);
371
372   END_TEST;
373 }
374
375 int UtcDaliApplicationResetSignalN(void)
376 {
377   Application application;
378
379   try
380   {
381     application.ResetSignal().Connect(&ApplicationSignalCallback);
382     DALI_TEST_CHECK(false); // Should not get here
383   }
384   catch(...)
385   {
386     DALI_TEST_CHECK(true);
387   }
388
389   END_TEST;
390 }
391
392 int UtcDaliApplicationlControlSignalP(void)
393 {
394   Application application = Application::New();
395   application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
396   DALI_TEST_CHECK(application);
397
398   END_TEST;
399 }
400
401 int UtcDaliApplicationlControlSignalN(void)
402 {
403   Application application;
404
405   try
406   {
407     application.AppControlSignal().Connect(&ApplicationControlSignalCallback);
408     DALI_TEST_CHECK(false); // Should not get here
409   }
410   catch(...)
411   {
412     DALI_TEST_CHECK(true);
413   }
414
415   END_TEST;
416 }
417
418 int UtcDaliApplicationLanguageChangedSignalP(void)
419 {
420   Application application = Application::New();
421   application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
422   DALI_TEST_CHECK(application);
423
424   END_TEST;
425 }
426
427 int UtcDaliApplicationLanguageChangedSignalN(void)
428 {
429   Application application;
430
431   try
432   {
433     application.LanguageChangedSignal().Connect(&ApplicationSignalCallback);
434     DALI_TEST_CHECK(false); // Should not get here
435   }
436   catch(...)
437   {
438     DALI_TEST_CHECK(true);
439   }
440
441   END_TEST;
442 }
443
444 int UtcDaliApplicationRegionChangedSignalP(void)
445 {
446   Application application = Application::New();
447   application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
448   DALI_TEST_CHECK(application);
449
450   END_TEST;
451 }
452
453 int UtcDaliApplicationRegionChangedSignalN(void)
454 {
455   Application application;
456
457   try
458   {
459     application.RegionChangedSignal().Connect(&ApplicationSignalCallback);
460     DALI_TEST_CHECK(false); // Should not get here
461   }
462   catch(...)
463   {
464     DALI_TEST_CHECK(true);
465   }
466
467   END_TEST;
468 }
469
470 int UtcDaliApplicationLowBatterySignalP(void)
471 {
472   Application application = Application::New();
473   application.LowBatterySignal().Connect(&LowBatterySignalCallback);
474   DALI_TEST_CHECK(application);
475
476   END_TEST;
477 }
478
479 int UtcDaliApplicationLowBatterySignalN(void)
480 {
481   Application application;
482
483   try
484   {
485     application.LowBatterySignal().Connect(&LowBatterySignalCallback);
486     DALI_TEST_CHECK(false); // Should not get here
487   }
488   catch(...)
489   {
490     DALI_TEST_CHECK(true);
491   }
492
493   END_TEST;
494 }
495
496 int UtcDaliApplicationLowMemorySignalP(void)
497 {
498   Application application = Application::New();
499   application.LowMemorySignal().Connect(&LowMemorySignalCallback);
500   DALI_TEST_CHECK(application);
501
502   END_TEST;
503 }
504
505 int UtcDaliApplicationLowMemorySignalN(void)
506 {
507   Application application;
508
509   try
510   {
511     application.LowMemorySignal().Connect(&LowMemorySignalCallback);
512     DALI_TEST_CHECK(false); // Should not get here
513   }
514   catch(...)
515   {
516     DALI_TEST_CHECK(true);
517   }
518
519   END_TEST;
520 }
521
522 int UtcDaliApplicationGetResourcePathP(void)
523 {
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**");
528
529   END_TEST;
530 }
531
532 int UtcDaliApplicationGetRegionP(void)
533 {
534   Application application = Application::New();
535   std::string result;
536   result = application.GetRegion();
537   DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
538
539   END_TEST;
540 }
541
542 int UtcDaliApplicationGetLanguageP(void)
543 {
544   Application application = Application::New();
545   std::string result;
546   result = application.GetLanguage();
547   DALI_TEST_CHECK(result == "NOT_SUPPORTED"); // Not supported in UBUNTU
548
549   END_TEST;
550 }
551
552 int UtcDaliApplicationGetObjectRegistryN(void)
553 {
554   Application application = Application::New();
555   DALI_TEST_CHECK(!application.GetObjectRegistry());
556   END_TEST;
557 }