Merge "Introduce WindowData" into devel/master
[platform/core/uifw/dali-adaptor.git] / automated-tests / src / dali-adaptor / utc-Dali-Gl-Window.cpp
1 /*
2  * Copyright (c) 2021 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 <adaptor-test-application.h>
19 #include <dali-test-suite-utils.h>
20 #include <dali/dali.h>
21 #include <dali/devel-api/adaptor-framework/gl-window.h>
22 #include <dali/internal/system/linux/dali-ecore-x.h>
23
24 using namespace Dali;
25
26 void utc_dali_glwindow_startup(void)
27 {
28   test_return_value = TET_UNDEF;
29 }
30
31 void utc_dali_glwindow_cleanup(void)
32 {
33   test_return_value = TET_PASS;
34 }
35
36 int UtcDaliGlWindowConstructorP(void)
37 {
38   Dali::GlWindow window;
39   DALI_TEST_CHECK(!window);
40   END_TEST;
41 }
42
43 int UtcDaliGlWindowCopyConstructorP(void)
44 {
45   Dali::GlWindow window;
46   Dali::GlWindow copy(window);
47   DALI_TEST_CHECK(copy == window);
48
49   END_TEST;
50 }
51
52 int UtcDaliGlWindowConstructorFromInternalPointerN(void)
53 {
54   Internal::Adaptor::GlWindow* internalWindow = NULL;
55   Dali::GlWindow               window(internalWindow);
56   DALI_TEST_CHECK(!window);
57
58   END_TEST;
59 }
60
61 int UtcDaliGlWindowAssignmentOperatorP(void)
62 {
63   const Dali::GlWindow window;
64   Dali::GlWindow       copy;
65   DALI_TEST_CHECK(!copy);
66   copy = window;
67   DALI_TEST_CHECK(copy == window);
68
69   END_TEST;
70 }
71
72 int UtcDaliGlWindowDestructorP(void)
73 {
74   Dali::GlWindow* window = new Dali::GlWindow();
75   delete window;
76
77   DALI_TEST_CHECK(true);
78   END_TEST;
79 }
80
81 int UtcDaliGlWindowNew1(void)
82 {
83   try
84   {
85     PositionSize   windowPosition(0, 0, 10, 10);
86     Dali::GlWindow window = Dali::GlWindow::New(windowPosition, "test-window", "test-window-class", true);
87     tet_result(TET_FAIL);
88   }
89   catch(DaliException& e)
90   {
91     DALI_TEST_ASSERT(e, "Failed to create X window", TEST_LOCATION);
92   }
93
94   END_TEST;
95 }
96
97 int UtcDaliGlWindowNew2(void)
98 {
99   try
100   {
101     PositionSize   windowPosition(20, 10, 10, 10);
102     Dali::GlWindow window = Dali::GlWindow::New(windowPosition, "test-window", "test-window-class", true);
103
104     tet_result(TET_FAIL);
105   }
106   catch(DaliException& e)
107   {
108     DALI_TEST_ASSERT(e, "Failed to create X window", TEST_LOCATION);
109   }
110   END_TEST;
111 }
112
113 int UtcDaliGlWindowSetGraphicsConfigGles20(void)
114 {
115   Dali::GlWindow window;
116   try
117   {
118     window.SetGraphicsConfig(true, true, 0, Dali::GlWindow::GlesVersion::VERSION_2_0);
119
120     DALI_TEST_CHECK(false);
121   }
122   catch(...)
123   {
124     DALI_TEST_CHECK(true);
125   }
126   END_TEST;
127 }
128
129 int UtcDaliGlWindowSetGraphicsConfigGles30(void)
130 {
131   Dali::GlWindow window;
132   try
133   {
134     window.SetGraphicsConfig(true, true, 0, Dali::GlWindow::GlesVersion::VERSION_3_0);
135
136     DALI_TEST_CHECK(false);
137   }
138   catch(...)
139   {
140     DALI_TEST_CHECK(true);
141   }
142   END_TEST;
143 }
144
145 int UtcDaliGlWindowRaise(void)
146 {
147   Dali::GlWindow window;
148
149   try
150   {
151     window.Raise();
152
153     DALI_TEST_CHECK(false);
154   }
155   catch(...)
156   {
157     DALI_TEST_CHECK(true);
158   }
159   END_TEST;
160 }
161
162 int UtcDaliGlWindowLower(void)
163 {
164   Dali::GlWindow window;
165
166   try
167   {
168     window.Lower();
169
170     DALI_TEST_CHECK(false);
171   }
172   catch(...)
173   {
174     DALI_TEST_CHECK(true);
175   }
176   END_TEST;
177 }
178
179 int UtcDaliGlWindowActivate(void)
180 {
181   Dali::GlWindow window;
182
183   try
184   {
185     window.Activate();
186
187     DALI_TEST_CHECK(false);
188   }
189   catch(...)
190   {
191     DALI_TEST_CHECK(true);
192   }
193   END_TEST;
194 }
195
196 int UtcDaliGlWindowShow(void)
197 {
198   Dali::GlWindow window;
199
200   try
201   {
202     window.Show();
203
204     DALI_TEST_CHECK(false);
205   }
206   catch(...)
207   {
208     DALI_TEST_CHECK(true);
209   }
210   END_TEST;
211 }
212
213 int UtcDaliGlWindowHide(void)
214 {
215   Dali::GlWindow window;
216
217   try
218   {
219     window.Hide();
220
221     DALI_TEST_CHECK(false);
222   }
223   catch(...)
224   {
225     DALI_TEST_CHECK(true);
226   }
227   END_TEST;
228 }
229
230 int UtcDaliGlWindowSetGetPositionSize(void)
231 {
232   Dali::GlWindow window;
233
234   try
235   {
236     PositionSize setPositionSize(0, 0, 100, 100);
237     window.SetPositionSize(setPositionSize);
238     PositionSize getPositionSize = window.GetPositionSize();
239     DALI_TEST_CHECK(setPositionSize == getPositionSize);
240
241     setPositionSize.x = 10;
242     setPositionSize.y = 20;
243     window.SetPositionSize(setPositionSize);
244     getPositionSize = window.GetPositionSize();
245     DALI_TEST_CHECK(setPositionSize == getPositionSize);
246
247     setPositionSize.width  = 50;
248     setPositionSize.height = 50;
249     window.SetPositionSize(setPositionSize);
250     getPositionSize = window.GetPositionSize();
251     DALI_TEST_CHECK(setPositionSize == getPositionSize);
252
253     setPositionSize.x      = 0;
254     setPositionSize.y      = 0;
255     setPositionSize.width  = 100;
256     setPositionSize.height = 100;
257     window.SetPositionSize(setPositionSize);
258     getPositionSize = window.GetPositionSize();
259     DALI_TEST_CHECK(setPositionSize == getPositionSize);
260
261     DALI_TEST_CHECK(false);
262   }
263   catch(...)
264   {
265     DALI_TEST_CHECK(true);
266   }
267   END_TEST;
268 }
269
270 int UtcDaliGlWindowSetInputRegion(void)
271 {
272   Dali::GlWindow window;
273
274   try
275   {
276     window.SetInputRegion(Rect<int>(0, 0, 100, 10));
277
278     DALI_TEST_CHECK(false);
279   }
280   catch(...)
281   {
282     DALI_TEST_CHECK(true);
283   }
284   END_TEST;
285 }
286
287 int UtcDaliGlWindowOpaqueState(void)
288 {
289   Dali::GlWindow window;
290
291   try
292   {
293     bool opaquestate = window.IsOpaqueState();
294     DALI_TEST_CHECK(opaquestate == true);
295
296     DALI_TEST_CHECK(false);
297   }
298   catch(...)
299   {
300     DALI_TEST_CHECK(true);
301   }
302   END_TEST;
303 }
304
305 int UtcDaliGlWindowSetAvailableOrientations(void)
306 {
307   Dali::GlWindow window;
308
309   try
310   {
311     Dali::Vector<Dali::WindowOrientation> orientations;
312     orientations.PushBack(Dali::WindowOrientation::PORTRAIT);
313     orientations.PushBack(Dali::WindowOrientation::LANDSCAPE);
314     orientations.PushBack(Dali::WindowOrientation::PORTRAIT_INVERSE);
315     orientations.PushBack(Dali::WindowOrientation::LANDSCAPE_INVERSE);
316     orientations.PushBack(Dali::WindowOrientation::NO_ORIENTATION_PREFERENCE);
317     orientations.PushBack(Dali::WindowOrientation::PORTRAIT);
318     orientations.PushBack(Dali::WindowOrientation::LANDSCAPE);
319     orientations.PushBack(Dali::WindowOrientation::PORTRAIT_INVERSE);
320     window.SetAvailableOrientations(orientations);
321
322     DALI_TEST_CHECK(false);
323   }
324   catch(...)
325   {
326     DALI_TEST_CHECK(true);
327   }
328   END_TEST;
329 }
330
331 int UtcDaliGlWindowSetPreferredOrientation(void)
332 {
333   Dali::GlWindow window;
334
335   try
336   {
337     window.SetPreferredOrientation(Dali::WindowOrientation::PORTRAIT);
338
339     DALI_TEST_CHECK(false);
340   }
341   catch(...)
342   {
343     DALI_TEST_CHECK(true);
344   }
345   END_TEST;
346 }
347
348 int UtcDaliGlWindowSetPreferredOrientation1(void)
349 {
350   Dali::GlWindow window;
351
352   try
353   {
354     window.SetPreferredOrientation(Dali::WindowOrientation::NO_ORIENTATION_PREFERENCE);
355
356     DALI_TEST_CHECK(false);
357   }
358   catch(...)
359   {
360     DALI_TEST_CHECK(true);
361   }
362   END_TEST;
363 }
364
365 int UtcDaliWindowGetCurrentOrientation(void)
366 {
367   Dali::GlWindow window;
368
369   try
370   {
371     Dali::WindowOrientation orientation = window.GetCurrentOrientation();
372     DALI_TEST_CHECK(orientation == Dali::WindowOrientation::PORTRAIT);
373
374     DALI_TEST_CHECK(false);
375   }
376   catch(...)
377   {
378     DALI_TEST_CHECK(true);
379   }
380   END_TEST;
381 }
382
383 // Internal callback function
384 void glInit(void)
385 {
386 }
387
388 int glRenderFrame(void)
389 {
390   static unsigned int retFlag = 0;
391   return retFlag++;
392 }
393
394 void glTerminate(void)
395 {
396 }
397
398 int UtcDaliGlWindowRegisterGlCallbacks(void)
399 {
400   Dali::GlWindow window;
401
402   try
403   {
404     window.RegisterGlCallbacks(Dali::MakeCallback(glInit), Dali::MakeCallback(glRenderFrame), Dali::MakeCallback(glTerminate));
405
406     DALI_TEST_CHECK(false);
407   }
408   catch(...)
409   {
410     DALI_TEST_CHECK(true);
411   }
412   END_TEST;
413 }
414
415 int UtcDaliGlWindowRenderOnce(void)
416 {
417   Dali::GlWindow window;
418
419   try
420   {
421     window.RegisterGlCallbacks(Dali::MakeCallback(glInit), Dali::MakeCallback(glRenderFrame), Dali::MakeCallback(glTerminate));
422     window.RenderOnce();
423
424     DALI_TEST_CHECK(false);
425   }
426   catch(...)
427   {
428     DALI_TEST_CHECK(true);
429   }
430   END_TEST;
431 }
432
433 int UtcDaliGlWindowGetSupportedAuxiliaryHintCount(void)
434 {
435   Dali::GlWindow window;
436
437   try
438   {
439     window.GetSupportedAuxiliaryHintCount();
440
441     DALI_TEST_CHECK(false);
442   }
443   catch(...)
444   {
445     DALI_TEST_CHECK(true);
446   }
447   END_TEST;
448 }
449
450 int UtcDaliGlWindowGetSupportedAuxiliaryHint(void)
451 {
452   Dali::GlWindow window;
453
454   try
455   {
456     window.GetSupportedAuxiliaryHint(0);
457
458     DALI_TEST_CHECK(false);
459   }
460   catch(...)
461   {
462     DALI_TEST_CHECK(true);
463   }
464   END_TEST;
465 }
466
467 int UtcDaliGlWindowAddAuxiliaryHint(void)
468 {
469   Dali::GlWindow window;
470
471   try
472   {
473     window.AddAuxiliaryHint("stack_pop_to", "1");
474
475     DALI_TEST_CHECK(false);
476   }
477   catch(...)
478   {
479     DALI_TEST_CHECK(true);
480   }
481   END_TEST;
482 }
483
484 int UtcDaliGlWindowRemoveAuxiliaryHint(void)
485 {
486   Dali::GlWindow window;
487
488   try
489   {
490     window.RemoveAuxiliaryHint(0);
491
492     DALI_TEST_CHECK(false);
493   }
494   catch(...)
495   {
496     DALI_TEST_CHECK(true);
497   }
498   END_TEST;
499 }
500
501 int UtcDaliGlWindowSetAuxiliaryHintValue(void)
502 {
503   Dali::GlWindow window;
504
505   try
506   {
507     window.SetAuxiliaryHintValue(0, "0");
508
509     DALI_TEST_CHECK(false);
510   }
511   catch(...)
512   {
513     DALI_TEST_CHECK(true);
514   }
515   END_TEST;
516 }
517
518 int UtcDaliGlWindowGetAuxiliaryHintValue(void)
519 {
520   Dali::GlWindow window;
521
522   try
523   {
524     window.GetAuxiliaryHintValue(0);
525
526     DALI_TEST_CHECK(false);
527   }
528   catch(...)
529   {
530     DALI_TEST_CHECK(true);
531   }
532   END_TEST;
533 }
534
535 int UtcDaliGlWindowGetAuxiliaryHintId(void)
536 {
537   Dali::GlWindow window;
538
539   try
540   {
541     window.GetAuxiliaryHintId("0");
542
543     DALI_TEST_CHECK(false);
544   }
545   catch(...)
546   {
547     DALI_TEST_CHECK(true);
548   }
549   END_TEST;
550 }
551
552 int UtcDaliGlWindowFocusChangeSignal(void)
553 {
554   Dali::GlWindow window;
555
556   try
557   {
558     window.FocusChangeSignal();
559
560     DALI_TEST_CHECK(false);
561   }
562   catch(...)
563   {
564     DALI_TEST_CHECK(true);
565   }
566   END_TEST;
567 }
568
569 int UtcDaliGlWindowResizeSignal(void)
570 {
571   Dali::GlWindow window;
572
573   try
574   {
575     window.ResizeSignal();
576
577     DALI_TEST_CHECK(false);
578   }
579   catch(...)
580   {
581     DALI_TEST_CHECK(true);
582   }
583   END_TEST;
584 }
585
586 int UtcDaliGlWindowKeyEventSignal(void)
587 {
588   Dali::GlWindow window;
589
590   try
591   {
592     window.KeyEventSignal();
593
594     DALI_TEST_CHECK(false);
595   }
596   catch(...)
597   {
598     DALI_TEST_CHECK(true);
599   }
600   END_TEST;
601 }
602
603 int UtcDaliGlWindowTouchedSignal(void)
604 {
605   Dali::GlWindow window;
606
607   try
608   {
609     window.TouchedSignal();
610
611     DALI_TEST_CHECK(false);
612   }
613   catch(...)
614   {
615     DALI_TEST_CHECK(true);
616   }
617   END_TEST;
618 }
619
620 int UtcDaliGlWindowVisibilityChangedSignal(void)
621 {
622   Dali::GlWindow window;
623
624   try
625   {
626     window.VisibilityChangedSignal();
627
628     DALI_TEST_CHECK(false);
629   }
630   catch(...)
631   {
632     DALI_TEST_CHECK(true);
633   }
634   END_TEST;
635 }