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=03da3ff5a732cb48bad8942c6f423b815cd43ac7;hp=d082f072343ae18957cefe3f10f73a85f00a235d;hb=b694e7e2ae624e206e1548b1a863c554eb9cd4d7;hpb=50a2c4b0715dba64d9b4a3455554b4ac65760ae5 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp old mode 100644 new mode 100755 index d082f07..03da3ff --- a/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp @@ -48,9 +48,10 @@ const char* VERTEX_SHADER = DALI_COMPOSE_SHADER( }\n ); +const char* fragmentShaderPrefix( "#extension GL_OES_EGL_image_external:require\n" ); const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER( varying mediump vec2 vTexCoord;\n - uniform sampler2D sTexture;\n + uniform samplerExternalOES sTexture;\n uniform lowp vec4 uColor;\n \n void main()\n @@ -346,6 +347,13 @@ int UtcDaliVideoViewCustomShaderForCoverage(void) ToolkitTestApplication application; VideoView videoView = VideoView::New(); DALI_TEST_CHECK( videoView ); + + ToolkitApplication::DECODED_IMAGES_SUPPORTED = true; + + videoView.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false ); + bool isUnderlay = videoView.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >(); + DALI_TEST_CHECK( !isUnderlay ); + Stage::GetCurrent().Add( videoView ); videoView.SetProperty( VideoView::Property::VIDEO, "testvideo" ); @@ -362,6 +370,226 @@ int UtcDaliVideoViewCustomShaderForCoverage(void) 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; + tet_infoline("UtcDaliVideoViewPropertyUnderlay"); + 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; +} + +int UtcDaliVideoViewPropertyPlayPosition(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliVideoViewPropertyPlayPosition"); + + VideoView view = VideoView::New(); + DALI_TEST_CHECK( view ); + + Stage::GetCurrent().Add( view ); + view.Play(); + + application.SendNotification(); + application.Render(); + + int playPos = view.GetProperty( Toolkit::VideoView::Property::PLAY_POSITION ).Get< int >(); + DALI_TEST_CHECK( playPos == 0 ); + + view.SetProperty( Toolkit::VideoView::Property::PLAY_POSITION, 10 ); + playPos = view.GetProperty( Toolkit::VideoView::Property::PLAY_POSITION ).Get< int >(); + // Actually setting play position will be async + // Actual platform result may be different. + DALI_TEST_CHECK( playPos == 10 ); + + END_TEST; +} + +// For coverage. +int UtcDaliVideoViewNew2(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliVideoViewNew2"); + + VideoView view = VideoView::New( true ); + DALI_TEST_CHECK( view ); + + Stage::GetCurrent().Add( view ); + view.Play(); + + application.SendNotification(); + application.Render(); + + VideoView view2 = VideoView::New( "", false ); + DALI_TEST_CHECK( view2 ); + + Stage::GetCurrent().Add( view2 ); + view2.Play(); + + application.SendNotification(); + application.Render(); + + END_TEST; +} + +int UtcDaliVideoViewPropertyDisplayMode(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliVideoViewPropertyDisplayMode"); + + VideoView view = VideoView::New(); + DALI_TEST_CHECK( view ); + + Stage::GetCurrent().Add( view ); + view.Play(); + + application.SendNotification(); + application.Render(); + + view.SetProperty( Toolkit::VideoView::Property::DISPLAY_MODE, Toolkit::VideoView::DisplayMode::DST_ROI ); + int displayMode = view.GetProperty( Toolkit::VideoView::Property::DISPLAY_MODE ).Get< int >(); + DALI_TEST_CHECK( displayMode == Toolkit::VideoView::DisplayMode::DST_ROI ); + + END_TEST; +} + + +int UtcDaliVideoViewCustomShader(void) +{ + ToolkitTestApplication application; + tet_infoline( "VideoView with custom shader" ); + + VideoView view = VideoView::New(); + DALI_TEST_CHECK( view ); + + ToolkitApplication::DECODED_IMAGES_SUPPORTED = true; + + view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false ); + bool isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >(); + DALI_TEST_CHECK( !isUnderlay ); + + Stage::GetCurrent().Add( view ); + view.SetProperty( VideoView::Property::VIDEO, "testvideo" ); + + /* insert custom shader */ + Property::Map customShader; + std::string fragmentShaderString; + fragmentShaderString.reserve( strlen( fragmentShaderPrefix ) + strlen( FRAGMENT_SHADER ) ); + fragmentShaderString.append( fragmentShaderPrefix ); + fragmentShaderString.append( FRAGMENT_SHADER ); + customShader.Insert( "vertexShader", VERTEX_SHADER ); + customShader.Insert( "fragmentShader", fragmentShaderString ); + + Property::Map map; + map.Insert( "shader", customShader ); + + view.SetProperty( VideoView::Property::VIDEO, map ); + + /* do render for check custom shader */ + Stage::GetCurrent().Add( view ); + view.Play(); + + application.SendNotification(); + application.Render(); + + /* get renderer */ + DALI_TEST_CHECK( view.GetRendererCount() == 1u ); + Renderer renderer = view.GetRendererAt( 0 ); + Shader shader = renderer.GetShader(); + DALI_TEST_CHECK( shader ); + + Property::Value value = shader.GetProperty(Shader::Property::PROGRAM); + Property::Map* shaderMap = value.GetMap(); + DALI_TEST_CHECK( shaderMap ); + + Property::Value* fragment = shaderMap->Find( "fragment" ); // fragment key name from shader-impl.cpp + DALI_TEST_EQUALS( fragmentShaderString, fragment->Get(), TEST_LOCATION ); + + Property::Value* vertex = shaderMap->Find( "vertex" ); // vertex key name from shader-impl.cpp + DALI_TEST_EQUALS( VERTEX_SHADER, vertex->Get(), TEST_LOCATION ); END_TEST; }