Merge "Support multiple surfaces for partial update" into devel/master
[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 UtcDaliApplicationMoveConstructor(void)
149 {
150   Application application = Application::New();
151   DALI_TEST_CHECK( application );
152   DALI_TEST_EQUALS( 1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION );
153
154   Application moved = std::move( application );
155   DALI_TEST_CHECK( moved );
156   DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
157   DALI_TEST_CHECK( !application );
158
159   END_TEST;
160 }
161
162 int UtcDaliApplicationMoveAssignment(void)
163 {
164   Application application = Application::New();
165   DALI_TEST_CHECK( application );
166   DALI_TEST_EQUALS( 1, application.GetBaseObject().ReferenceCount(), TEST_LOCATION );
167
168   Application moved;
169   moved = std::move( application );
170   DALI_TEST_CHECK( moved );
171   DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
172   DALI_TEST_CHECK( !application );
173
174   END_TEST;
175 }
176
177 int UtcDaliApplicationMainLoop01N(void)
178 {
179   Application application;
180
181   try
182   {
183     application.MainLoop();
184     DALI_TEST_CHECK( false ); // Should not get here
185   }
186   catch( ... )
187   {
188     DALI_TEST_CHECK( true );
189   }
190
191   END_TEST;
192 }
193
194
195 int UtcDaliApplicationLowerN(void)
196 {
197   Application application;
198
199   try
200   {
201     application.Lower();
202     DALI_TEST_CHECK( false ); // Should not get here
203   }
204   catch( ... )
205   {
206     DALI_TEST_CHECK( true );
207   }
208
209   END_TEST;
210 }
211
212 int UtcDaliApplicationQuitN(void)
213 {
214   Application application;
215
216   try
217   {
218     application.Quit();
219     DALI_TEST_CHECK( false ); // Should not get here
220   }
221   catch( ... )
222   {
223     DALI_TEST_CHECK( true );
224   }
225
226   END_TEST;
227 }
228
229 int UtcDaliApplicationAddIdleN(void)
230 {
231   Application application;
232
233   try
234   {
235     CallbackBase* callback = NULL;
236     application.AddIdle( callback );
237     DALI_TEST_CHECK( false ); // Should not get here
238   }
239   catch( ... )
240   {
241     DALI_TEST_CHECK( true );
242   }
243
244   END_TEST;
245 }
246
247 int UtcDaliApplicationGetWindowN(void)
248 {
249   Application application;
250
251   try
252   {
253     (void) application.GetWindow();
254     DALI_TEST_CHECK( false ); // Should not get here
255   }
256   catch( ... )
257   {
258     DALI_TEST_CHECK( true );
259   }
260
261   END_TEST;
262 }
263
264 int UtcDaliApplicationInitSignalP(void)
265 {
266   Application application = Application::New();
267   application.InitSignal().Connect( &ApplicationSignalCallback );
268   DALI_TEST_CHECK( application );
269
270   END_TEST;
271 }
272
273 int UtcDaliApplicationInitSignalN(void)
274 {
275   Application application;
276
277   try
278   {
279     application.InitSignal().Connect( &ApplicationSignalCallback );
280     DALI_TEST_CHECK( false ); // Should not get here
281   }
282   catch( ... )
283   {
284     DALI_TEST_CHECK( true );
285   }
286
287   END_TEST;
288 }
289
290 int UtcDaliApplicationTerminateSignalP(void)
291 {
292   Application application = Application::New();
293   application.TerminateSignal().Connect( &ApplicationSignalCallback );
294   DALI_TEST_CHECK( application );
295
296   END_TEST;
297 }
298
299 int UtcDaliApplicationTerminateSignalN(void)
300 {
301   Application application;
302
303   try
304   {
305     application.TerminateSignal().Connect( &ApplicationSignalCallback );
306     DALI_TEST_CHECK( false ); // Should not get here
307   }
308   catch( ... )
309   {
310     DALI_TEST_CHECK( true );
311   }
312
313   END_TEST;
314 }
315
316 int UtcDaliApplicationPauseSignalP(void)
317 {
318   Application application = Application::New();
319   application.PauseSignal().Connect( &ApplicationSignalCallback );
320   DALI_TEST_CHECK( application );
321
322   END_TEST;
323 }
324
325 int UtcDaliApplicationPauseSignalN(void)
326 {
327   Application application;
328
329   try
330   {
331     application.PauseSignal().Connect( &ApplicationSignalCallback );
332     DALI_TEST_CHECK( false ); // Should not get here
333   }
334   catch( ... )
335   {
336     DALI_TEST_CHECK( true );
337   }
338
339   END_TEST;
340 }
341
342 int UtcDaliApplicationResumeSignalP(void)
343 {
344   Application application = Application::New();
345   application.ResumeSignal().Connect( &ApplicationSignalCallback );
346   DALI_TEST_CHECK( application );
347
348   END_TEST;
349 }
350
351 int UtcDaliApplicationResumeSignalN(void)
352 {
353   Application application;
354
355   try
356   {
357     application.ResumeSignal().Connect( &ApplicationSignalCallback );
358     DALI_TEST_CHECK( false ); // Should not get here
359   }
360   catch( ... )
361   {
362     DALI_TEST_CHECK( true );
363   }
364
365   END_TEST;
366 }
367
368 int UtcDaliApplicationResetSignalP(void)
369 {
370   Application application = Application::New();
371   application.ResetSignal().Connect( &ApplicationSignalCallback );
372   DALI_TEST_CHECK( application );
373
374   END_TEST;
375 }
376
377 int UtcDaliApplicationResetSignalN(void)
378 {
379   Application application;
380
381   try
382   {
383     application.ResetSignal().Connect( &ApplicationSignalCallback );
384     DALI_TEST_CHECK( false ); // Should not get here
385   }
386   catch( ... )
387   {
388     DALI_TEST_CHECK( true );
389   }
390
391   END_TEST;
392 }
393
394 int UtcDaliApplicationlControlSignalP(void)
395 {
396   Application application = Application::New();
397   application.AppControlSignal().Connect( &ApplicationControlSignalCallback );
398   DALI_TEST_CHECK( application );
399
400   END_TEST;
401 }
402
403 int UtcDaliApplicationlControlSignalN(void)
404 {
405   Application application;
406
407   try
408   {
409     application.AppControlSignal().Connect( &ApplicationControlSignalCallback );
410     DALI_TEST_CHECK( false ); // Should not get here
411   }
412   catch( ... )
413   {
414     DALI_TEST_CHECK( true );
415   }
416
417   END_TEST;
418 }
419
420 int UtcDaliApplicationLanguageChangedSignalP(void)
421 {
422   Application application = Application::New();
423   application.LanguageChangedSignal().Connect( &ApplicationSignalCallback );
424   DALI_TEST_CHECK( application );
425
426   END_TEST;
427 }
428
429 int UtcDaliApplicationLanguageChangedSignalN(void)
430 {
431   Application application;
432
433   try
434   {
435     application.LanguageChangedSignal().Connect( &ApplicationSignalCallback );
436     DALI_TEST_CHECK( false ); // Should not get here
437   }
438   catch( ... )
439   {
440     DALI_TEST_CHECK( true );
441   }
442
443   END_TEST;
444 }
445
446 int UtcDaliApplicationRegionChangedSignalP(void)
447 {
448   Application application = Application::New();
449   application.RegionChangedSignal().Connect( &ApplicationSignalCallback );
450   DALI_TEST_CHECK( application );
451
452   END_TEST;
453 }
454
455 int UtcDaliApplicationRegionChangedSignalN(void)
456 {
457   Application application;
458
459   try
460   {
461     application.RegionChangedSignal().Connect( &ApplicationSignalCallback );
462     DALI_TEST_CHECK( false ); // Should not get here
463   }
464   catch( ... )
465   {
466     DALI_TEST_CHECK( true );
467   }
468
469   END_TEST;
470 }
471
472 int UtcDaliApplicationLowBatterySignalP(void)
473 {
474   Application application = Application::New();
475   application.LowBatterySignal().Connect( &LowBatterySignalCallback );
476   DALI_TEST_CHECK( application );
477
478   END_TEST;
479 }
480
481 int UtcDaliApplicationLowBatterySignalN(void)
482 {
483   Application application;
484
485   try
486   {
487     application.LowBatterySignal().Connect( &LowBatterySignalCallback );
488     DALI_TEST_CHECK( false ); // Should not get here
489   }
490   catch( ... )
491   {
492     DALI_TEST_CHECK( true );
493   }
494
495   END_TEST;
496 }
497
498 int UtcDaliApplicationLowMemorySignalP(void)
499 {
500   Application application = Application::New();
501   application.LowMemorySignal().Connect( &LowMemorySignalCallback );
502   DALI_TEST_CHECK( application );
503
504   END_TEST;
505 }
506
507 int UtcDaliApplicationLowMemorySignalN(void)
508 {
509   Application application;
510
511   try
512   {
513     application.LowMemorySignal().Connect( &LowMemorySignalCallback );
514     DALI_TEST_CHECK( false ); // Should not get here
515   }
516   catch( ... )
517   {
518     DALI_TEST_CHECK( true );
519   }
520
521   END_TEST;
522 }
523
524 int UtcDaliApplicationGetResourcePathP(void)
525 {
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**" );
530
531   END_TEST;
532 }
533
534 int UtcDaliApplicationGetRegionP(void)
535 {
536   Application application = Application::New();
537   std::string result;
538   result = application.GetRegion();
539   DALI_TEST_CHECK( result == "NOT_SUPPORTED" ); // Not supported in UBUNTU
540
541   END_TEST;
542 }
543
544 int UtcDaliApplicationGetLanguageP(void)
545 {
546   Application application = Application::New();
547   std::string result;
548   result = application.GetLanguage();
549   DALI_TEST_CHECK( result == "NOT_SUPPORTED" ); // Not supported in UBUNTU
550
551   END_TEST;
552 }
553
554 int UtcDaliApplicationGetObjectRegistryN(void)
555 {
556   Application application = Application::New();
557   DALI_TEST_CHECK( !application.GetObjectRegistry() );
558   END_TEST;
559 }