2 * Copyright (c) 2021 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 <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>
26 void utc_dali_glwindow_startup(void)
28 test_return_value = TET_UNDEF;
31 void utc_dali_glwindow_cleanup(void)
33 test_return_value = TET_PASS;
36 int UtcDaliGlWindowConstructorP(void)
38 Dali::GlWindow window;
39 DALI_TEST_CHECK(!window);
43 int UtcDaliGlWindowCopyConstructorP(void)
45 Dali::GlWindow window;
46 Dali::GlWindow copy(window);
47 DALI_TEST_CHECK(copy == window);
52 int UtcDaliGlWindowConstructorFromInternalPointerN(void)
54 Internal::Adaptor::GlWindow* internalWindow = NULL;
55 Dali::GlWindow window(internalWindow);
56 DALI_TEST_CHECK(!window);
61 int UtcDaliGlWindowAssignmentOperatorP(void)
63 const Dali::GlWindow window;
65 DALI_TEST_CHECK(!copy);
67 DALI_TEST_CHECK(copy == window);
72 int UtcDaliGlWindowDestructorP(void)
74 Dali::GlWindow* window = new Dali::GlWindow();
77 DALI_TEST_CHECK(true);
81 int UtcDaliGlWindowNew1(void)
85 PositionSize windowPosition(0, 0, 10, 10);
86 Dali::GlWindow window = Dali::GlWindow::New(windowPosition, "test-window", "test-window-class", true);
89 catch(DaliException& e)
91 DALI_TEST_ASSERT(e, "Failed to create X window", TEST_LOCATION);
97 int UtcDaliGlWindowNew2(void)
101 PositionSize windowPosition(20, 10, 10, 10);
102 Dali::GlWindow window = Dali::GlWindow::New(windowPosition, "test-window", "test-window-class", true);
104 tet_result(TET_FAIL);
106 catch(DaliException& e)
108 DALI_TEST_ASSERT(e, "Failed to create X window", TEST_LOCATION);
113 int UtcDaliGlWindowSetGraphicsConfigGles20(void)
115 Dali::GlWindow window;
118 window.SetGraphicsConfig(true, true, 0, Dali::GlWindow::GlesVersion::VERSION_2_0);
120 DALI_TEST_CHECK(false);
124 DALI_TEST_CHECK(true);
129 int UtcDaliGlWindowSetGraphicsConfigGles30(void)
131 Dali::GlWindow window;
134 window.SetGraphicsConfig(true, true, 0, Dali::GlWindow::GlesVersion::VERSION_3_0);
136 DALI_TEST_CHECK(false);
140 DALI_TEST_CHECK(true);
145 int UtcDaliGlWindowRaise(void)
147 Dali::GlWindow window;
153 DALI_TEST_CHECK(false);
157 DALI_TEST_CHECK(true);
162 int UtcDaliGlWindowLower(void)
164 Dali::GlWindow window;
170 DALI_TEST_CHECK(false);
174 DALI_TEST_CHECK(true);
179 int UtcDaliGlWindowActivate(void)
181 Dali::GlWindow window;
187 DALI_TEST_CHECK(false);
191 DALI_TEST_CHECK(true);
196 int UtcDaliGlWindowShow(void)
198 Dali::GlWindow window;
204 DALI_TEST_CHECK(false);
208 DALI_TEST_CHECK(true);
213 int UtcDaliGlWindowHide(void)
215 Dali::GlWindow window;
221 DALI_TEST_CHECK(false);
225 DALI_TEST_CHECK(true);
230 int UtcDaliGlWindowSetGetPositionSize(void)
232 Dali::GlWindow window;
236 PositionSize setPositionSize(0, 0, 100, 100);
237 window.SetPositionSize(setPositionSize);
238 PositionSize getPositionSize = window.GetPositionSize();
239 DALI_TEST_CHECK(setPositionSize == getPositionSize);
241 setPositionSize.x = 10;
242 setPositionSize.y = 20;
243 window.SetPositionSize(setPositionSize);
244 getPositionSize = window.GetPositionSize();
245 DALI_TEST_CHECK(setPositionSize == getPositionSize);
247 setPositionSize.width = 50;
248 setPositionSize.height = 50;
249 window.SetPositionSize(setPositionSize);
250 getPositionSize = window.GetPositionSize();
251 DALI_TEST_CHECK(setPositionSize == getPositionSize);
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);
261 DALI_TEST_CHECK(false);
265 DALI_TEST_CHECK(true);
270 int UtcDaliGlWindowSetInputRegion(void)
272 Dali::GlWindow window;
276 window.SetInputRegion(Rect<int>(0, 0, 100, 10));
278 DALI_TEST_CHECK(false);
282 DALI_TEST_CHECK(true);
287 int UtcDaliGlWindowOpaqueState(void)
289 Dali::GlWindow window;
293 bool opaquestate = window.IsOpaqueState();
294 DALI_TEST_CHECK(opaquestate == true);
296 DALI_TEST_CHECK(false);
300 DALI_TEST_CHECK(true);
305 int UtcDaliGlWindowSetAvailableOrientations(void)
307 Dali::GlWindow window;
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);
322 DALI_TEST_CHECK(false);
326 DALI_TEST_CHECK(true);
331 int UtcDaliGlWindowSetPreferredOrientation(void)
333 Dali::GlWindow window;
337 window.SetPreferredOrientation(Dali::WindowOrientation::PORTRAIT);
339 DALI_TEST_CHECK(false);
343 DALI_TEST_CHECK(true);
348 int UtcDaliGlWindowSetPreferredOrientation1(void)
350 Dali::GlWindow window;
354 window.SetPreferredOrientation(Dali::WindowOrientation::NO_ORIENTATION_PREFERENCE);
356 DALI_TEST_CHECK(false);
360 DALI_TEST_CHECK(true);
365 int UtcDaliWindowGetCurrentOrientation(void)
367 Dali::GlWindow window;
371 Dali::WindowOrientation orientation = window.GetCurrentOrientation();
372 DALI_TEST_CHECK(orientation == Dali::WindowOrientation::PORTRAIT);
374 DALI_TEST_CHECK(false);
378 DALI_TEST_CHECK(true);
383 // Internal callback function
388 int glRenderFrame(void)
390 static unsigned int retFlag = 0;
394 void glTerminate(void)
398 int UtcDaliGlWindowRegisterGlCallbacks(void)
400 Dali::GlWindow window;
404 window.RegisterGlCallbacks(Dali::MakeCallback(glInit), Dali::MakeCallback(glRenderFrame), Dali::MakeCallback(glTerminate));
406 DALI_TEST_CHECK(false);
410 DALI_TEST_CHECK(true);
415 int UtcDaliGlWindowRenderOnce(void)
417 Dali::GlWindow window;
421 window.RegisterGlCallbacks(Dali::MakeCallback(glInit), Dali::MakeCallback(glRenderFrame), Dali::MakeCallback(glTerminate));
424 DALI_TEST_CHECK(false);
428 DALI_TEST_CHECK(true);
433 int UtcDaliGlWindowGetSupportedAuxiliaryHintCount(void)
435 Dali::GlWindow window;
439 window.GetSupportedAuxiliaryHintCount();
441 DALI_TEST_CHECK(false);
445 DALI_TEST_CHECK(true);
450 int UtcDaliGlWindowGetSupportedAuxiliaryHint(void)
452 Dali::GlWindow window;
456 window.GetSupportedAuxiliaryHint(0);
458 DALI_TEST_CHECK(false);
462 DALI_TEST_CHECK(true);
467 int UtcDaliGlWindowAddAuxiliaryHint(void)
469 Dali::GlWindow window;
473 window.AddAuxiliaryHint("stack_pop_to", "1");
475 DALI_TEST_CHECK(false);
479 DALI_TEST_CHECK(true);
484 int UtcDaliGlWindowRemoveAuxiliaryHint(void)
486 Dali::GlWindow window;
490 window.RemoveAuxiliaryHint(0);
492 DALI_TEST_CHECK(false);
496 DALI_TEST_CHECK(true);
501 int UtcDaliGlWindowSetAuxiliaryHintValue(void)
503 Dali::GlWindow window;
507 window.SetAuxiliaryHintValue(0, "0");
509 DALI_TEST_CHECK(false);
513 DALI_TEST_CHECK(true);
518 int UtcDaliGlWindowGetAuxiliaryHintValue(void)
520 Dali::GlWindow window;
524 window.GetAuxiliaryHintValue(0);
526 DALI_TEST_CHECK(false);
530 DALI_TEST_CHECK(true);
535 int UtcDaliGlWindowGetAuxiliaryHintId(void)
537 Dali::GlWindow window;
541 window.GetAuxiliaryHintId("0");
543 DALI_TEST_CHECK(false);
547 DALI_TEST_CHECK(true);
552 int UtcDaliGlWindowFocusChangeSignal(void)
554 Dali::GlWindow window;
558 window.FocusChangeSignal();
560 DALI_TEST_CHECK(false);
564 DALI_TEST_CHECK(true);
569 int UtcDaliGlWindowResizeSignal(void)
571 Dali::GlWindow window;
575 window.ResizeSignal();
577 DALI_TEST_CHECK(false);
581 DALI_TEST_CHECK(true);
586 int UtcDaliGlWindowKeyEventSignal(void)
588 Dali::GlWindow window;
592 window.KeyEventSignal();
594 DALI_TEST_CHECK(false);
598 DALI_TEST_CHECK(true);
603 int UtcDaliGlWindowTouchedSignal(void)
605 Dali::GlWindow window;
609 window.TouchedSignal();
611 DALI_TEST_CHECK(false);
615 DALI_TEST_CHECK(true);
620 int UtcDaliGlWindowVisibilityChangedSignal(void)
622 Dali::GlWindow window;
626 window.VisibilityChangedSignal();
628 DALI_TEST_CHECK(false);
632 DALI_TEST_CHECK(true);