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.
20 #include <dali-toolkit-test-suite-utils.h>
21 #include <dali-toolkit/dali-toolkit.h>
22 #include <dali-toolkit/public-api/controls/video-view/video-view.h>
23 #include <dali-toolkit/devel-api/controls/video-view/video-view-devel.h>
24 #include <dali/devel-api/adaptor-framework/window-devel.h>
25 #include <dali/devel-api/adaptor-framework/video-sync-mode.h>
28 using namespace Dali::Toolkit;
32 const char* const TEST_FILE( "test.mp4" );
33 const char* const VOLUME_LEFT( "volumeLeft" );
34 const char* const VOLUME_RIGHT( "volumeRight" );
35 const char* const RENDERING_TYPE( "renderingTarget" );
36 const char* const DUMMY_STRING( "dummy string" );
38 const char* VERTEX_SHADER = DALI_COMPOSE_SHADER(
39 attribute mediump vec2 aPosition;\n
40 varying mediump vec2 vTexCoord;\n
41 uniform mediump mat4 uMvpMatrix;\n
42 uniform mediump vec3 uSize;\n
46 mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);\n
47 vertexPosition.xyz *= uSize;\n
48 vertexPosition = uMvpMatrix * vertexPosition;\n
50 vTexCoord = aPosition + vec2(0.5);\n
51 gl_Position = vertexPosition;\n
55 const char* fragmentShaderPrefix( "#extension GL_OES_EGL_image_external:require\n" );
56 const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER(
57 varying mediump vec2 vTexCoord;\n
58 uniform samplerExternalOES sTexture;\n
59 uniform lowp vec4 uColor;\n
63 gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n
69 void video_view_startup(void)
71 test_return_value = TET_UNDEF;
74 void video_view_cleanup(void)
76 test_return_value = TET_PASS;
79 // Negative test case for a method
80 int UtcDaliVideoViewUninitialized(void)
82 ToolkitTestApplication application;
83 tet_infoline(" UtcDaliVideoViewUninitialized");
85 Toolkit::VideoView view;
89 // New() must be called to create a VideoView or it wont be valid.
90 Actor a = Actor::New();
92 DALI_TEST_CHECK( false );
94 catch (Dali::DaliException& e)
96 // Tests that a negative test of an assertion succeeds
97 DALI_TEST_PRINT_ASSERT( e );
98 DALI_TEST_CHECK(!view);
103 // Positive test case for a method
104 int UtcDaliVideoViewNew(void)
106 ToolkitTestApplication application;
107 tet_infoline(" UtcDaliVideoViewNew");
109 Toolkit::VideoView view = Toolkit::VideoView::New();
110 DALI_TEST_CHECK( view );
112 const std::string url( DUMMY_STRING );
113 Toolkit::VideoView view2 = Toolkit::VideoView::New( url );
114 DALI_TEST_CHECK( view2 );
118 // Positive test case for a method
119 int UtcDaliVideoViewDownCast(void)
121 ToolkitTestApplication application;
122 tet_infoline(" UtcDaliVideoViewDownCast");
124 Toolkit::VideoView view = Toolkit::VideoView::New();
125 BaseHandle handle(view);
127 Toolkit::VideoView view2 = Toolkit::VideoView::DownCast( handle );
128 DALI_TEST_CHECK( view );
129 DALI_TEST_CHECK( view2 );
130 DALI_TEST_CHECK( view == view2 );
134 // Positive test case for a method
135 int UtcDaliVideoViewProperty1(void)
137 ToolkitTestApplication application;
138 tet_infoline(" UtcDaliVideoViewProperty1");
140 Toolkit::VideoView view = Toolkit::VideoView::New();
141 DALI_TEST_CHECK( view );
144 view.SetProperty( VideoView::Property::VIDEO, TEST_FILE );
145 Property::Value val = view.GetProperty( VideoView::Property::VIDEO );
146 DALI_TEST_CHECK( val.Get( file ) );
147 DALI_TEST_CHECK( file == TEST_FILE );
151 // Positive test case for a method
152 int UtcDaliVideoViewProperty1b(void)
154 ToolkitTestApplication application;
155 tet_infoline(" UtcDaliVideoViewProperty1");
157 Toolkit::VideoView view = Toolkit::VideoView::New();
158 DALI_TEST_CHECK( view );
159 Integration::Scene stage = application.GetScene();
164 view.SetProperty( VideoView::Property::VIDEO, Property::Map()
165 .Add("rendererType", "IMAGE")
166 .Add("url", "video.mpg") // Note, videoView doesn't use this url
167 .Add("RENDERING_TARGET", "windowSurfaceTarget" )
169 .Add("height", 100) );
173 Property::Value val = view.GetProperty( VideoView::Property::VIDEO );
174 Property::Map* resultMap = val.GetMap();
176 DALI_TEST_CHECK( resultMap );
177 Property::Value* value = resultMap->Find("url");
178 DALI_TEST_CHECK( value );
179 DALI_TEST_EQUALS( value->Get<std::string>(), "video.mpg", TEST_LOCATION );
181 stage.Remove( view );
186 int UtcDaliVideoViewProperty2(void)
188 ToolkitTestApplication application;
189 tet_infoline(" UtcDaliVideoViewProperty2");
191 Toolkit::VideoView view = Toolkit::VideoView::New();
192 DALI_TEST_CHECK( view );
195 Property::Value val = view.GetProperty( VideoView::Property::LOOPING );
196 DALI_TEST_CHECK( val.Get( looping ) );
197 DALI_TEST_CHECK( !looping );
199 view.SetProperty( VideoView::Property::LOOPING, true );
200 val = view.GetProperty( VideoView::Property::LOOPING );
201 DALI_TEST_CHECK( val.Get( looping ) );
202 DALI_TEST_CHECK( looping );
206 int UtcDaliVideoViewProperty3(void)
208 ToolkitTestApplication application;
209 tet_infoline(" UtcDaliVideoViewProperty3");
211 Toolkit::VideoView view = Toolkit::VideoView::New();
212 DALI_TEST_CHECK( view );
215 Property::Value val = view.GetProperty( VideoView::Property::MUTED );
216 DALI_TEST_CHECK( val.Get( muted ) );
217 DALI_TEST_CHECK( !muted );
219 view.SetProperty( VideoView::Property::MUTED, true );
220 val = view.GetProperty( VideoView::Property::MUTED );
221 DALI_TEST_CHECK( val.Get( muted ) );
222 DALI_TEST_CHECK( muted );
227 int UtcDaliVideoViewProperty4(void)
229 ToolkitTestApplication application;
230 tet_infoline(" UtcDaliVideoViewProperty4");
232 Toolkit::VideoView view = Toolkit::VideoView::New();
233 DALI_TEST_CHECK( view );
239 map.Insert( VOLUME_LEFT, 0.5f );
240 map.Insert( VOLUME_RIGHT, 0.5f );
242 view.SetProperty( VideoView::Property::VOLUME, map );
243 Property::Value val = view.GetProperty( VideoView::Property::VOLUME );
246 DALI_TEST_CHECK( val.Get( map2 ) );
248 Property::Value* volumeLeft = map2.Find( VOLUME_LEFT );
249 Property::Value* volumeRight = map2.Find( VOLUME_RIGHT );
251 DALI_TEST_CHECK( volumeLeft && volumeLeft->Get( left ) );
252 DALI_TEST_CHECK( volumeRight && volumeRight->Get( right ) );
253 DALI_TEST_CHECK( left == 0.5f );
254 DALI_TEST_CHECK( right == 0.5f );
259 int UtcDaliVideoViewCopyAndAssignment(void)
261 ToolkitTestApplication application;
263 VideoView view = Toolkit::VideoView::New();
264 DALI_TEST_CHECK( view );
266 VideoView copy( view );
267 DALI_TEST_CHECK( view == copy );
270 DALI_TEST_CHECK( !assign );
273 DALI_TEST_CHECK( assign == view );
278 int UtcDaliVideoViewMoveConstructor(void)
280 ToolkitTestApplication application;
282 VideoView view = Toolkit::VideoView::New();
283 DALI_TEST_EQUALS( 1, view.GetBaseObject().ReferenceCount(), TEST_LOCATION );
284 view.SetProperty( VideoView::Property::LOOPING, true );
285 DALI_TEST_CHECK( view.GetProperty<bool>( VideoView::Property::LOOPING ) );
287 VideoView moved = std::move( view );
288 DALI_TEST_CHECK( moved );
289 DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
290 DALI_TEST_CHECK( moved.GetProperty<bool>( VideoView::Property::LOOPING ) );
291 DALI_TEST_CHECK( !view );
296 int UtcDaliVideoViewMoveAssignment(void)
298 ToolkitTestApplication application;
300 VideoView view = Toolkit::VideoView::New();
301 DALI_TEST_EQUALS( 1, view.GetBaseObject().ReferenceCount(), TEST_LOCATION );
302 view.SetProperty( VideoView::Property::LOOPING, true );
303 DALI_TEST_CHECK( view.GetProperty<bool>( VideoView::Property::LOOPING ) );
306 moved = std::move( view );
307 DALI_TEST_CHECK( moved );
308 DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
309 DALI_TEST_CHECK( moved.GetProperty<bool>( VideoView::Property::LOOPING ) );
310 DALI_TEST_CHECK( !view );
315 int UtcDaliVideoViewTypeRegistry(void)
317 ToolkitTestApplication application;
319 TypeRegistry typeRegistry = TypeRegistry::Get();
320 DALI_TEST_CHECK( typeRegistry );
322 TypeInfo typeInfo = typeRegistry.GetTypeInfo( "VideoView" );
323 DALI_TEST_CHECK( typeInfo );
325 BaseHandle handle = typeInfo.CreateInstance();
326 DALI_TEST_CHECK( handle );
328 VideoView view = VideoView::DownCast( handle );
329 DALI_TEST_CHECK( view );
334 int UtcDaliVideoViewMethodsForCoverage(void)
336 ToolkitTestApplication application;
338 VideoView videoView = VideoView::New();
339 DALI_TEST_CHECK( videoView );
344 videoView.Forward(10);
345 videoView.Backward(10);
347 Toolkit::DevelVideoView::GetMediaPlayer( videoView );
349 VideoView::VideoViewSignalType& signal = videoView.FinishedSignal();
350 DALI_TEST_EQUALS( 0, signal.GetConnectionCount(), TEST_LOCATION );
355 int UtcDaliVideoViewMethodsForRenderType(void)
357 ToolkitTestApplication application;
358 VideoView videoView = VideoView::New();
359 DALI_TEST_CHECK( videoView );
361 Property::Map windowSurfaceTarget;
362 Property::Map nativeImageTarget;
364 windowSurfaceTarget.Insert( RENDERING_TYPE, "windowSurfaceTarget" );
365 nativeImageTarget.Insert( RENDERING_TYPE, "nativeImageTarget" );
368 Property::Value value;
369 videoView.SetProperty( VideoView::Property::VIDEO, windowSurfaceTarget );
371 value = videoView.GetProperty( VideoView::Property::VIDEO );
372 DALI_TEST_CHECK( value.Get( map ) );
374 Property::Value* type = map.Find( RENDERING_TYPE );
375 DALI_TEST_CHECK( type );
376 DALI_TEST_EQUALS( "windowSurfaceTarget", type->Get<std::string>(), TEST_LOCATION );
378 videoView.SetProperty( VideoView::Property::VIDEO, nativeImageTarget );
380 value = videoView.GetProperty( VideoView::Property::VIDEO );
381 DALI_TEST_CHECK( value.Get( map ) );
382 type = map.Find( RENDERING_TYPE );
384 DALI_TEST_CHECK( type );
385 DALI_TEST_EQUALS( "nativeImageTarget", type->Get<std::string>(), TEST_LOCATION );
390 int UtcDaliVideoViewCustomShaderForCoverage(void)
392 ToolkitTestApplication application;
393 VideoView videoView = VideoView::New();
394 DALI_TEST_CHECK( videoView );
396 ToolkitApplication::DECODED_IMAGES_SUPPORTED = true;
398 videoView.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false );
399 bool isUnderlay = videoView.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >();
400 DALI_TEST_CHECK( !isUnderlay );
402 application.GetScene().Add( videoView );
403 videoView.SetProperty( VideoView::Property::VIDEO, "testvideo" );
405 Property::Map customShader;
406 customShader.Insert( "vertexShader", VERTEX_SHADER );
407 customShader.Insert( "fragmentShader", FRAGMENT_SHADER );
410 map.Insert( "shader", customShader );
412 videoView.SetProperty( VideoView::Property::VIDEO, map );
415 Property::Value value = videoView.GetProperty( VideoView::Property::VIDEO );
417 DALI_TEST_CHECK( !value.Get( map2 ) );
421 int UtcDaliVideoViewMethodsForCoverage2(void)
423 ToolkitTestApplication application;
424 VideoView videoView = VideoView::New();
425 DALI_TEST_CHECK( videoView );
427 Property::Map windowSurfaceTarget;
429 windowSurfaceTarget.Insert( RENDERING_TYPE, "windowSurfaceTarget" );
431 application.GetScene().Add( videoView );
433 application.SendNotification();
434 application.Render();
437 Property::Value value;
438 videoView.SetProperty( VideoView::Property::VIDEO, windowSurfaceTarget );
440 value = videoView.GetProperty( VideoView::Property::VIDEO );
441 DALI_TEST_CHECK( value.Get( map ) );
443 Property::Value* type = map.Find( RENDERING_TYPE );
444 DALI_TEST_CHECK( type );
445 DALI_TEST_EQUALS( "windowSurfaceTarget", type->Get<std::string>(), TEST_LOCATION );
447 Vector3 vector(100.0f, 100.0f, 0.0f);
449 DALI_TEST_CHECK(vector != videoView.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ));
450 videoView.SetProperty( Actor::Property::SIZE, vector );
452 application.SendNotification();
453 application.Render();
455 // Check the size in the new frame
456 DALI_TEST_CHECK(vector == videoView.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ));
461 int UtcDaliVideoViewPropertyUnderlay(void)
463 ToolkitTestApplication application;
464 tet_infoline("UtcDaliVideoViewPropertyUnderlay");
465 ToolkitApplication::DECODED_IMAGES_SUPPORTED = true;
467 VideoView view = VideoView::New();
468 DALI_TEST_CHECK( view );
470 application.GetScene().Add( view );
473 application.SendNotification();
474 application.Render();
476 bool isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >();
477 DALI_TEST_CHECK( isUnderlay );
480 view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false );
481 isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >();
482 DALI_TEST_CHECK( !isUnderlay );
485 view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, true );
486 isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >();
487 DALI_TEST_CHECK( isUnderlay );
489 // If platform api doesn't provide any API or feature for decoded images of video,
490 // UNDERLAY should be true
491 ToolkitApplication::DECODED_IMAGES_SUPPORTED = false;
493 view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false );
494 isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >();
495 DALI_TEST_CHECK( isUnderlay );
498 ToolkitApplication::DECODED_IMAGES_SUPPORTED = true;
500 view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, true );
501 view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false );
502 isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >();
503 DALI_TEST_CHECK( !isUnderlay );
510 int UtcDaliVideoViewPropertyPlayPosition(void)
512 ToolkitTestApplication application;
513 tet_infoline("UtcDaliVideoViewPropertyPlayPosition");
515 VideoView view = VideoView::New();
516 DALI_TEST_CHECK( view );
518 application.GetScene().Add( view );
521 application.SendNotification();
522 application.Render();
524 int playPos = view.GetProperty( Toolkit::VideoView::Property::PLAY_POSITION ).Get< int >();
525 DALI_TEST_CHECK( playPos == 0 );
527 view.SetProperty( Toolkit::VideoView::Property::PLAY_POSITION, 10 );
528 playPos = view.GetProperty( Toolkit::VideoView::Property::PLAY_POSITION ).Get< int >();
529 // Actually setting play position will be async
530 // Actual platform result may be different.
531 DALI_TEST_CHECK( playPos == 10 );
537 int UtcDaliVideoViewNew2(void)
539 ToolkitTestApplication application;
540 tet_infoline("UtcDaliVideoViewNew2");
542 VideoView view = VideoView::New( true );
543 DALI_TEST_CHECK( view );
545 application.GetScene().Add( view );
548 application.SendNotification();
549 application.Render();
551 VideoView view2 = VideoView::New( "", false );
552 DALI_TEST_CHECK( view2 );
554 application.GetScene().Add( view2 );
557 application.SendNotification();
558 application.Render();
563 int UtcDaliVideoViewPropertyDisplayMode(void)
565 ToolkitTestApplication application;
566 tet_infoline("UtcDaliVideoViewPropertyDisplayMode");
568 VideoView view = VideoView::New();
569 DALI_TEST_CHECK( view );
571 application.GetScene().Add( view );
574 application.SendNotification();
575 application.Render();
577 view.SetProperty( Toolkit::VideoView::Property::DISPLAY_MODE, Toolkit::VideoView::DisplayMode::DST_ROI );
578 int displayMode = view.GetProperty( Toolkit::VideoView::Property::DISPLAY_MODE ).Get< int >();
579 DALI_TEST_CHECK( displayMode == Toolkit::VideoView::DisplayMode::DST_ROI );
585 int UtcDaliVideoViewCustomShader(void)
587 ToolkitTestApplication application;
588 tet_infoline( "VideoView with custom shader" );
590 VideoView view = VideoView::New( false );
591 DALI_TEST_CHECK( view );
593 ToolkitApplication::DECODED_IMAGES_SUPPORTED = true;
595 view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false );
596 bool isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >();
597 DALI_TEST_CHECK( !isUnderlay );
599 application.GetScene().Add( view );
600 view.SetProperty( VideoView::Property::VIDEO, "testvideo" );
602 /* insert custom shader */
603 Property::Map customShader;
604 std::string fragmentShaderString;
605 fragmentShaderString.reserve( strlen( fragmentShaderPrefix ) + strlen( FRAGMENT_SHADER ) );
606 fragmentShaderString.append( fragmentShaderPrefix );
607 fragmentShaderString.append( FRAGMENT_SHADER );
608 customShader.Insert( "vertexShader", VERTEX_SHADER );
609 customShader.Insert( "fragmentShader", fragmentShaderString );
612 map.Insert( "shader", customShader );
614 view.SetProperty( VideoView::Property::VIDEO, map );
616 /* do render for check custom shader */
617 application.GetScene().Add( view );
620 application.SendNotification();
621 application.Render();
624 DALI_TEST_CHECK( view.GetRendererCount() == 1u );
625 Renderer renderer = view.GetRendererAt( 0 );
626 Shader shader = renderer.GetShader();
627 DALI_TEST_CHECK( shader );
629 Property::Value value = shader.GetProperty(Shader::Property::PROGRAM);
630 Property::Map* shaderMap = value.GetMap();
631 DALI_TEST_CHECK( shaderMap );
633 Property::Value* fragment = shaderMap->Find( "fragment" ); // fragment key name from shader-impl.cpp
634 DALI_TEST_EQUALS( fragmentShaderString, fragment->Get<std::string>(), TEST_LOCATION );
636 Property::Value* vertex = shaderMap->Find( "vertex" ); // vertex key name from shader-impl.cpp
637 DALI_TEST_EQUALS( VERTEX_SHADER, vertex->Get<std::string>(), TEST_LOCATION );
642 // Functor to test whether a Finish signal is emitted
643 struct AnimationFinishCheck
645 AnimationFinishCheck(bool& signalReceived)
646 : mSignalReceived(signalReceived)
650 void operator()(Animation& animation)
652 mSignalReceived = true;
657 mSignalReceived = false;
660 void CheckSignalReceived()
662 if (!mSignalReceived)
664 tet_printf("Expected Finish signal was not received\n");
665 tet_result(TET_FAIL);
669 tet_result(TET_PASS);
673 void CheckSignalNotReceived()
677 tet_printf("Unexpected Finish signal was received\n");
678 tet_result(TET_FAIL);
682 tet_result(TET_PASS);
686 bool& mSignalReceived; // owned by individual tests
689 int UtcDaliVideoViewSyncAniamtionForCoverage(void)
691 ToolkitTestApplication application;
693 VideoView videoView = DevelVideoView::New( Dali::VideoSyncMode::ENABLED );
694 DALI_TEST_CHECK( videoView );
696 application.GetScene().Add( videoView );
698 // Build the animation
699 float durationSeconds(1.0f);
700 Animation animation = Animation::New(durationSeconds);
702 // Start the animation
703 Vector3 targetPosition(10.0f, 10.0f, 10.0f);
704 animation.AnimateTo(Property(videoView, Actor::Property::POSITION), targetPosition, AlphaFunction::LINEAR);
705 DevelVideoView::PlayAnimation( videoView, animation );
707 bool signalReceived(false);
708 AnimationFinishCheck finishCheck(signalReceived);
709 animation.FinishedSignal().Connect(&application, finishCheck);
711 application.SendNotification();
712 application.Render(static_cast<unsigned int>(durationSeconds*1000.0f) - 1u/*just less than the animation duration*/);
714 // We didn't expect the animation to finish yet
715 application.SendNotification();
716 finishCheck.CheckSignalNotReceived();
718 application.Render(2u/*just beyond the animation duration*/);
720 // We did expect the animation to finish
721 application.SendNotification();
722 finishCheck.CheckSignalReceived();
723 DALI_TEST_EQUALS( targetPosition, videoView.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), TEST_LOCATION );
725 // Restart the animation, with a different duration
731 int UtcDaliVideoViewASyncAniamtionForCoverage(void)
733 ToolkitTestApplication application;
735 VideoView videoView = DevelVideoView::New( Dali::VideoSyncMode::DISABLED );
736 DALI_TEST_CHECK( videoView );
738 application.GetScene().Add( videoView );
740 // Build the animation
741 float durationSeconds(1.0f);
742 Animation animation = Animation::New(durationSeconds);
744 // Start the animation
745 Vector3 targetPosition(10.0f, 10.0f, 10.0f);
746 animation.AnimateTo(Property(videoView, Actor::Property::POSITION), targetPosition, AlphaFunction::LINEAR);
747 DevelVideoView::PlayAnimation( videoView, animation );
749 bool signalReceived(false);
750 AnimationFinishCheck finishCheck(signalReceived);
751 animation.FinishedSignal().Connect(&application, finishCheck);
753 application.SendNotification();
754 application.Render(static_cast<unsigned int>(durationSeconds*1000.0f) - 1u/*just less than the animation duration*/);
756 // We didn't expect the animation to finish yet
757 application.SendNotification();
758 finishCheck.CheckSignalNotReceived();
760 application.Render(2u/*just beyond the animation duration*/);
762 // We did expect the animation to finish
763 application.SendNotification();
764 finishCheck.CheckSignalReceived();
765 DALI_TEST_EQUALS( targetPosition, videoView.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), TEST_LOCATION );
767 // Restart the animation, with a different duration
773 int UtcDaliVideoViewResizeWithSynchronization(void)
775 ToolkitTestApplication application;
776 VideoView videoView = DevelVideoView::New( Dali::VideoSyncMode::ENABLED );
777 DALI_TEST_CHECK( videoView );
779 application.GetScene().Add( videoView );
781 Vector3 vector(50.0f, 200.0f, 0.0f);
782 videoView.SetProperty( Actor::Property::SIZE, vector );
784 application.SendNotification();
785 application.Render();
787 DALI_TEST_CHECK(vector == videoView.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ));
793 int UtcDaliVideoViewSynchronizationForWindowRotation(void)
795 ToolkitTestApplication application;
796 tet_infoline("UtcDaliVideoViewSynchronizationForWindowRotation");
798 Window window = Window::New(PositionSize(0,0,100,100) ,"", false);
799 DALI_TEST_CHECK( window );
801 VideoView view = VideoView::New( true );
802 DALI_TEST_CHECK( view );
808 DevelWindow::SetPositionSize(window,PositionSize(0,0,480, 240));
810 application.SendNotification();
811 application.Render();