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