X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-VideoView.cpp;h=8baed37239e00eca77284ce4d8e517d3341cf549;hp=cc76ea3946eb89b7fca908c1baee668535c1f121;hb=48d13d45cb7f363d3cf8da048ce6cef074c55060;hpb=49f9e8d43442bd3539a6a358b9147b95748f8140 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp index cc76ea3..8baed37 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp @@ -29,6 +29,35 @@ namespace const char* const TEST_FILE( "test.mp4" ); const char* const VOLUME_LEFT( "volumeLeft" ); const char* const VOLUME_RIGHT( "volumeRight" ); +const char* const RENDERING_TYPE( "renderingTarget" ); + +const char* VERTEX_SHADER = DALI_COMPOSE_SHADER( + attribute mediump vec2 aPosition;\n + varying mediump vec2 vTexCoord;\n + uniform mediump mat4 uMvpMatrix;\n + uniform mediump vec3 uSize;\n + \n + void main()\n + {\n + mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);\n + vertexPosition.xyz *= uSize;\n + vertexPosition = uMvpMatrix * vertexPosition;\n + \n + vTexCoord = aPosition + vec2(0.5);\n + gl_Position = vertexPosition;\n + }\n +); + +const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER( + varying mediump vec2 vTexCoord;\n + uniform sampler2D sTexture;\n + uniform lowp vec4 uColor;\n + \n + void main()\n + {\n + gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n + }\n +); } @@ -113,6 +142,41 @@ int UtcDaliVideoViewProperty1(void) END_TEST; } +// Positive test case for a method +int UtcDaliVideoViewProperty1b(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliVideoViewProperty1"); + + Toolkit::VideoView view = Toolkit::VideoView::New(); + DALI_TEST_CHECK( view ); + Stage stage = Stage::GetCurrent(); + + std::string file; + Property::Map map; + + view.SetProperty( VideoView::Property::VIDEO, Property::Map() + .Add("rendererType", "IMAGE") + .Add("url", "video.mpg") // Note, videoView doesn't use this url + .Add("RENDERING_TARGET", "windowSurfaceTarget" ) + .Add("width", 100) + .Add("height", 100) ); + + stage.Add( view ); + + Property::Value val = view.GetProperty( VideoView::Property::VIDEO ); + Property::Map* resultMap = val.GetMap(); + + DALI_TEST_CHECK( resultMap ); + Property::Value* value = resultMap->Find("url"); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), "video.mpg", TEST_LOCATION ); + + stage.Remove( view ); + + END_TEST; +} + int UtcDaliVideoViewProperty2(void) { ToolkitTestApplication application; @@ -150,6 +214,7 @@ int UtcDaliVideoViewProperty3(void) val = view.GetProperty( VideoView::Property::MUTED ); DALI_TEST_CHECK( val.Get( muted ) ); DALI_TEST_CHECK( muted ); + END_TEST; } @@ -165,20 +230,21 @@ int UtcDaliVideoViewProperty4(void) left = right = 0.f; Property::Map map; - map.Insert( VOLUME_LEFT, 1.0f ); + map.Insert( VOLUME_LEFT, 0.5f ); map.Insert( VOLUME_RIGHT, 0.5f ); - Property::Map map2; view.SetProperty( VideoView::Property::VOLUME, map ); - Property::Value val4 = view.GetProperty( VideoView::Property::VOLUME ); - DALI_TEST_CHECK( val4.Get( map2 ) ); + Property::Value val = view.GetProperty( VideoView::Property::VOLUME ); + + Property::Map map2; + DALI_TEST_CHECK( val.Get( map2 ) ); - Property::Value* volumeLeft = map.Find( VOLUME_LEFT ); - Property::Value* volumeRight = map.Find( VOLUME_RIGHT ); + Property::Value* volumeLeft = map2.Find( VOLUME_LEFT ); + Property::Value* volumeRight = map2.Find( VOLUME_RIGHT ); DALI_TEST_CHECK( volumeLeft && volumeLeft->Get( left ) ); DALI_TEST_CHECK( volumeRight && volumeRight->Get( right ) ); - DALI_TEST_CHECK( left == 1.0f ); + DALI_TEST_CHECK( left == 0.5f ); DALI_TEST_CHECK( right == 0.5f ); END_TEST; @@ -239,3 +305,151 @@ int UtcDaliVideoViewMethodsForCoverage(void) END_TEST; } + +int UtcDaliVideoViewMethodsForRenderType(void) +{ + ToolkitTestApplication application; + VideoView videoView = VideoView::New(); + DALI_TEST_CHECK( videoView ); + + Property::Map windowSurfaceTarget; + Property::Map nativeImageTarget; + + windowSurfaceTarget.Insert( RENDERING_TYPE, "windowSurfaceTarget" ); + nativeImageTarget.Insert( RENDERING_TYPE, "nativeImageTarget" ); + + Property::Map map; + Property::Value value; + videoView.SetProperty( VideoView::Property::VIDEO, windowSurfaceTarget ); + + value = videoView.GetProperty( VideoView::Property::VIDEO ); + DALI_TEST_CHECK( value.Get( map ) ); + + Property::Value* type = map.Find( RENDERING_TYPE ); + DALI_TEST_CHECK( type ); + DALI_TEST_EQUALS( "windowSurfaceTarget", type->Get(), TEST_LOCATION ); + + videoView.SetProperty( VideoView::Property::VIDEO, nativeImageTarget ); + + value = videoView.GetProperty( VideoView::Property::VIDEO ); + DALI_TEST_CHECK( value.Get( map ) ); + type = map.Find( RENDERING_TYPE ); + + DALI_TEST_CHECK( type ); + DALI_TEST_EQUALS( "nativeImageTarget", type->Get(), TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliVideoViewCustomShaderForCoverage(void) +{ + ToolkitTestApplication application; + VideoView videoView = VideoView::New(); + DALI_TEST_CHECK( videoView ); + + Stage::GetCurrent().Add( videoView ); + videoView.SetProperty( VideoView::Property::VIDEO, "testvideo" ); + + Property::Map customShader; + customShader.Insert( "vertexShader", VERTEX_SHADER ); + customShader.Insert( "fragmentShader", FRAGMENT_SHADER ); + + Property::Map map; + map.Insert( "shader", customShader ); + + videoView.SetProperty( VideoView::Property::VIDEO, map ); + + Property::Map map2; + Property::Value value = videoView.GetProperty( VideoView::Property::VIDEO ); + + DALI_TEST_CHECK( !value.Get( map2 ) ); + END_TEST; +} + +int UtcDaliVideoViewMethodsForCoverage2(void) +{ + ToolkitTestApplication application; + VideoView videoView = VideoView::New(); + DALI_TEST_CHECK( videoView ); + + Property::Map windowSurfaceTarget; + + windowSurfaceTarget.Insert( RENDERING_TYPE, "windowSurfaceTarget" ); + + Stage::GetCurrent().Add( videoView ); + + application.SendNotification(); + application.Render(); + + Property::Map map; + Property::Value value; + videoView.SetProperty( VideoView::Property::VIDEO, windowSurfaceTarget ); + + value = videoView.GetProperty( VideoView::Property::VIDEO ); + DALI_TEST_CHECK( value.Get( map ) ); + + Property::Value* type = map.Find( RENDERING_TYPE ); + DALI_TEST_CHECK( type ); + DALI_TEST_EQUALS( "windowSurfaceTarget", type->Get(), TEST_LOCATION ); + + Vector3 vector(100.0f, 100.0f, 0.0f); + + DALI_TEST_CHECK(vector != videoView.GetCurrentSize()); + videoView.SetSize( vector ); + + application.SendNotification(); + application.Render(); + + // Check the size in the new frame + DALI_TEST_CHECK(vector == videoView.GetCurrentSize()); + + END_TEST; +} + +int UtcDaliVideoViewPropertyUnderlay(void) +{ + ToolkitTestApplication application; + ToolkitApplication::DECODED_IMAGES_SUPPORTED = true; + + VideoView view = VideoView::New(); + DALI_TEST_CHECK( view ); + + Stage::GetCurrent().Add( view ); + view.Play(); + + application.SendNotification(); + application.Render(); + + bool isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >(); + DALI_TEST_CHECK( isUnderlay ); + + view.Play(); + view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false ); + isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >(); + DALI_TEST_CHECK( !isUnderlay ); + + view.Play(); + view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, true ); + isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >(); + DALI_TEST_CHECK( isUnderlay ); + + // If platform api doesn't provide any API or feature for decoded images of video, + // UNDERLAY should be true + ToolkitApplication::DECODED_IMAGES_SUPPORTED = false; + + view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false ); + isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >(); + DALI_TEST_CHECK( isUnderlay ); + + // For coverage + ToolkitApplication::DECODED_IMAGES_SUPPORTED = true; + + view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, true ); + view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false ); + isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >(); + DALI_TEST_CHECK( !isUnderlay ); + + view.Stop(); + + END_TEST; +}