2 * Copyright (c) 2020 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 <dali/dali.h>
19 #include <dali/devel-api/adaptor-framework/gl-window.h>
20 #include <dali/internal/system/linux/dali-ecore-x.h>
21 #include <dali-test-suite-utils.h>
22 #include <adaptor-test-application.h>
27 void utc_dali_glwindow_startup(void)
29 test_return_value = TET_UNDEF;
32 void utc_dali_glwindow_cleanup(void)
34 test_return_value = TET_PASS;
37 int UtcDaliGlWindowConstructorP(void)
39 Dali::GlWindow window;
40 DALI_TEST_CHECK( !window );
44 int UtcDaliGlWindowCopyConstructorP(void)
46 Dali::GlWindow window;
47 Dali::GlWindow copy( window );
48 DALI_TEST_CHECK( copy == window );
53 int UtcDaliGlWindowConstructorFromInternalPointerN(void)
55 Internal::Adaptor::GlWindow* internalWindow = NULL;
56 Dali::GlWindow window(internalWindow);
57 DALI_TEST_CHECK( !window );
62 int UtcDaliGlWindowAssignmentOperatorP(void)
64 const Dali::GlWindow window;
66 DALI_TEST_CHECK( ! copy );
68 DALI_TEST_CHECK( copy == window );
73 int UtcDaliGlWindowDestructorP(void)
75 Dali::GlWindow* window = new Dali::GlWindow();
78 DALI_TEST_CHECK( true );
82 int UtcDaliGlWindowNew1(void)
86 PositionSize windowPosition(0, 0, 10, 10);
87 Dali::GlWindow window = Dali::GlWindow::New( windowPosition, "test-window", "test-window-class", true );
88 tet_result( TET_FAIL );
90 catch ( DaliException& e )
92 DALI_TEST_ASSERT( e, "Failed to create X window", TEST_LOCATION );
98 int UtcDaliGlWindowNew2(void)
102 PositionSize windowPosition(20, 10, 10, 10);
103 Dali::GlWindow window = Dali::GlWindow::New( windowPosition, "test-window", "test-window-class", true );
105 tet_result( TET_FAIL );
107 catch ( DaliException& e )
109 DALI_TEST_ASSERT( e, "Failed to create X window", TEST_LOCATION );
114 int UtcDaliGlWindowSetEglConfigGles20(void)
116 Dali::GlWindow window;
119 window.SetEglConfig( true, true, 0, Dali::GlWindow::GlesVersion::VERSION_2_0 );
121 DALI_TEST_CHECK( false);
125 DALI_TEST_CHECK( true );
130 int UtcDaliGlWindowSetEglConfigGles30(void)
132 Dali::GlWindow window;
135 window.SetEglConfig( true, true, 0, Dali::GlWindow::GlesVersion::VERSION_3_0 );
137 DALI_TEST_CHECK( false );
141 DALI_TEST_CHECK( true );
146 int UtcDaliGlWindowRaise(void)
148 Dali::GlWindow window;
154 DALI_TEST_CHECK( false );
158 DALI_TEST_CHECK( true );
163 int UtcDaliGlWindowLower(void)
165 Dali::GlWindow window;
171 DALI_TEST_CHECK( false );
175 DALI_TEST_CHECK( true );
180 int UtcDaliGlWindowActivate(void)
182 Dali::GlWindow window;
188 DALI_TEST_CHECK( false );
192 DALI_TEST_CHECK( true );
197 int UtcDaliGlWindowShow(void)
199 Dali::GlWindow window;
205 DALI_TEST_CHECK( false );
209 DALI_TEST_CHECK( true );
214 int UtcDaliGlWindowHide(void)
216 Dali::GlWindow window;
222 DALI_TEST_CHECK( false );
226 DALI_TEST_CHECK( true );
231 int UtcDaliGlWindowSetGetPositionSize(void)
233 Dali::GlWindow window;
237 PositionSize setPositionSize( 0, 0, 100, 100);
238 window.SetPositionSize( setPositionSize );
239 PositionSize getPositionSize = window.GetPositionSize();
240 DALI_TEST_CHECK( setPositionSize == getPositionSize );
242 setPositionSize.x = 10;
243 setPositionSize.y = 20;
244 window.SetPositionSize( setPositionSize );
245 getPositionSize = window.GetPositionSize();
246 DALI_TEST_CHECK( setPositionSize == getPositionSize );
248 setPositionSize.width = 50;
249 setPositionSize.height = 50;
250 window.SetPositionSize( setPositionSize );
251 getPositionSize = window.GetPositionSize();
252 DALI_TEST_CHECK( setPositionSize == getPositionSize );
254 setPositionSize.x = 0;
255 setPositionSize.y = 0;
256 setPositionSize.width = 100;
257 setPositionSize.height = 100;
258 window.SetPositionSize( setPositionSize );
259 getPositionSize = window.GetPositionSize();
260 DALI_TEST_CHECK( setPositionSize == getPositionSize );
262 DALI_TEST_CHECK( false );
266 DALI_TEST_CHECK( true );
271 int UtcDaliGlWindowSetInputRegion(void)
273 Dali::GlWindow window;
277 window.SetInputRegion( Rect< int >( 0, 0, 100, 10 ) );
279 DALI_TEST_CHECK( false );
283 DALI_TEST_CHECK( true );
288 int UtcDaliGlWindowOpaqueState(void)
290 Dali::GlWindow window;
294 bool opaquestate = window.IsOpaqueState();
295 DALI_TEST_CHECK( opaquestate == true );
297 DALI_TEST_CHECK( false );
301 DALI_TEST_CHECK( true );
306 int UtcDaliGlWindowSetAvailableOrientations(void)
308 Dali::GlWindow window;
312 Dali::Vector< Dali::GlWindow::GlWindowOrientation> orientations;
313 orientations.PushBack( Dali::GlWindow::GlWindowOrientation::PORTRAIT );
314 orientations.PushBack( Dali::GlWindow::GlWindowOrientation::LANDSCAPE );
315 orientations.PushBack( Dali::GlWindow::GlWindowOrientation::PORTRAIT_INVERSE );
316 orientations.PushBack( Dali::GlWindow::GlWindowOrientation::LANDSCAPE_INVERSE );
317 orientations.PushBack( Dali::GlWindow::GlWindowOrientation::NO_ORIENTATION_PREFERENCE );
318 orientations.PushBack( Dali::GlWindow::GlWindowOrientation::PORTRAIT );
319 orientations.PushBack( Dali::GlWindow::GlWindowOrientation::LANDSCAPE );
320 orientations.PushBack( Dali::GlWindow::GlWindowOrientation::PORTRAIT_INVERSE );
321 window.SetAvailableOrientations(orientations);
323 DALI_TEST_CHECK( false );
327 DALI_TEST_CHECK( true );
332 int UtcDaliGlWindowSetPreferredOrientation(void)
334 Dali::GlWindow window;
338 window.SetPreferredOrientation(Dali::GlWindow::GlWindowOrientation::PORTRAIT);
340 DALI_TEST_CHECK( false );
344 DALI_TEST_CHECK( true );
349 int UtcDaliGlWindowSetPreferredOrientation1(void)
351 Dali::GlWindow window;
355 window.SetPreferredOrientation(Dali::GlWindow::GlWindowOrientation::NO_ORIENTATION_PREFERENCE);
357 DALI_TEST_CHECK( false );
361 DALI_TEST_CHECK( true );
366 int UtcDaliWindowGetCurrentOrientation(void)
368 Dali::GlWindow window;
372 Dali::GlWindow::GlWindowOrientation orientation = window.GetCurrentOrientation();
373 DALI_TEST_CHECK( orientation == Dali::GlWindow::GlWindowOrientation::PORTRAIT );
375 DALI_TEST_CHECK( false );
379 DALI_TEST_CHECK( true );
384 // Internal callback function
397 int UtcDaliGlWindowRegisterGlCallback(void)
399 Dali::GlWindow window;
403 window.RegisterGlCallback( glInit, glRenderFrame, glTerminate );
405 DALI_TEST_CHECK( false );
409 DALI_TEST_CHECK( true );
414 int UtcDaliGlWindowRenderOnce(void)
416 Dali::GlWindow window;
420 window.RegisterGlCallback( glInit, glRenderFrame, glTerminate );
423 DALI_TEST_CHECK( false );
427 DALI_TEST_CHECK( true );
432 int UtcDaliGlWindowGetSupportedAuxiliaryHintCount(void)
434 Dali::GlWindow window;
438 window.GetSupportedAuxiliaryHintCount();
440 DALI_TEST_CHECK( false );
444 DALI_TEST_CHECK( true );
449 int UtcDaliGlWindowGetSupportedAuxiliaryHint(void)
451 Dali::GlWindow window;
455 window.GetSupportedAuxiliaryHint( 0 );
457 DALI_TEST_CHECK( false );
461 DALI_TEST_CHECK( true );
466 int UtcDaliGlWindowAddAuxiliaryHint(void)
468 Dali::GlWindow window;
472 window.AddAuxiliaryHint( "stack_pop_to", "1" );
474 DALI_TEST_CHECK( false );
478 DALI_TEST_CHECK( true );
483 int UtcDaliGlWindowRemoveAuxiliaryHint(void)
485 Dali::GlWindow window;
489 window.RemoveAuxiliaryHint( 0 );
491 DALI_TEST_CHECK( false );
495 DALI_TEST_CHECK( true );
500 int UtcDaliGlWindowSetAuxiliaryHintValue(void)
502 Dali::GlWindow window;
506 window.SetAuxiliaryHintValue( 0, "0" );
508 DALI_TEST_CHECK( false );
512 DALI_TEST_CHECK( true );
517 int UtcDaliGlWindowGetAuxiliaryHintValue(void)
519 Dali::GlWindow window;
523 window.GetAuxiliaryHintValue( 0 );
525 DALI_TEST_CHECK( false );
529 DALI_TEST_CHECK( true );
534 int UtcDaliGlWindowGetAuxiliaryHintId(void)
536 Dali::GlWindow window;
540 window.GetAuxiliaryHintId( "0" );
542 DALI_TEST_CHECK( false );
546 DALI_TEST_CHECK( true );
551 int UtcDaliGlWindowFocusChangeSignal(void)
553 Dali::GlWindow window;
557 window.FocusChangeSignal();
559 DALI_TEST_CHECK( false );
563 DALI_TEST_CHECK( true );
568 int UtcDaliGlWindowResizeSignal(void)
570 Dali::GlWindow window;
574 window.ResizeSignal();
576 DALI_TEST_CHECK( false );
580 DALI_TEST_CHECK( true );
585 int UtcDaliGlWindowKeyEventSignal(void)
587 Dali::GlWindow window;
591 window.KeyEventSignal();
593 DALI_TEST_CHECK( false );
597 DALI_TEST_CHECK( true );
602 int UtcDaliGlWindowTouchedSignal(void)
604 Dali::GlWindow window;
608 window.TouchedSignal();
610 DALI_TEST_CHECK( false );
614 DALI_TEST_CHECK( true );
619 int UtcDaliGlWindowVisibilityChangedSignal(void)
621 Dali::GlWindow window;
625 window.VisibilityChangedSignal();
627 DALI_TEST_CHECK( false );
631 DALI_TEST_CHECK( true );