X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-WebView.cpp;h=0ca47b671c15f1b450f01bc41d034386eb8c673f;hb=49b159f4638a313a9be2065669073b3b2a1f2a18;hp=f2a4f75e59b7934b3f27ae23e2d446c3929b3054;hpb=620c75c7d1d149d65922c06da0becffee276ad92;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp index f2a4f75..0ca47b6 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,6 +39,8 @@ const char* const TEST_URL2( "http://www.somewhere.valid2.com" ); static int gPageLoadStartedCallbackCalled = 0; static int gPageLoadFinishedCallbackCalled = 0; +static int gScrollEdgeReachedCallbackCalled = 0; +static int gEvaluateJavaScriptCallbackCalled = 0; static bool gTouched = false; struct CallbackFunctor @@ -65,7 +67,21 @@ static void OnPageLoadFinished( WebView view, const std::string& url ) gPageLoadFinishedCallbackCalled++; } -static bool OnTouched( Actor actor, const Dali::TouchData& touch ) +static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge edge ) +{ + gScrollEdgeReachedCallbackCalled++; +} + +static void OnPageLoadError( WebView view, const std::string& url, WebView::LoadErrorCode errorCode ) +{ +} + +static void OnEvaluateJavaScript( const std::string& result ) +{ + gEvaluateJavaScriptCallbackCalled++; +} + +static bool OnTouched( Actor actor, const Dali::TouchEvent& touch ) { gTouched = true; return true; @@ -134,11 +150,11 @@ int UtcDaliWebViewPageNavigation(void) ToolkitTestApplication application; WebView view = WebView::New(); - view.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - view.SetParentOrigin( ParentOrigin::TOP_LEFT ); - view.SetPosition( 0, 0 ); - view.SetSize( 800, 600 ); - Stage::GetCurrent().Add( view ); + view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 )); + view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) ); + application.GetScene().Add( view ); application.SendNotification(); application.Render(); DALI_TEST_CHECK( view ); @@ -146,6 +162,7 @@ int UtcDaliWebViewPageNavigation(void) ConnectionTracker* testTracker = new ConnectionTracker(); view.PageLoadStartedSignal().Connect( &OnPageLoadStarted ); view.PageLoadFinishedSignal().Connect( &OnPageLoadFinished ); + view.PageLoadErrorSignal().Connect( &OnPageLoadError ); bool signal1 = false; bool signal2 = false; bool signal3 = false; @@ -159,7 +176,6 @@ int UtcDaliWebViewPageNavigation(void) view.LoadUrl( TEST_URL1 ); view.GetNaturalSize(); Test::EmitGlobalTimerSignal(); - DALI_TEST_CHECK( view.GetUrl().find( TEST_URL1 ) != std::string::npos ); DALI_TEST_EQUALS( view.CanGoBack(), false, TEST_LOCATION ); DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 1, TEST_LOCATION ); @@ -167,11 +183,12 @@ int UtcDaliWebViewPageNavigation(void) DALI_TEST_CHECK( !signal3 ); view.LoadUrl( TEST_URL2 ); - view.SetSize( 400, 300 ); + view.Suspend(); + view.SetProperty( Actor::Property::SIZE, Vector2( 400, 300 ) ); application.SendNotification(); application.Render(); Test::EmitGlobalTimerSignal(); - DALI_TEST_CHECK( view.GetUrl().find( TEST_URL2 ) != std::string::npos ); + view.Resume(); DALI_TEST_EQUALS( view.CanGoBack(), true, TEST_LOCATION ); DALI_TEST_EQUALS( view.CanGoForward(), false, TEST_LOCATION ); DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 2, TEST_LOCATION ); @@ -191,6 +208,7 @@ int UtcDaliWebViewPageNavigation(void) view.StopLoading(); view.ClearHistory(); view.ClearCache(); + view.ClearCookies(); Test::EmitGlobalTimerSignal(); DALI_TEST_CHECK( !view.CanGoBack() ); DALI_TEST_CHECK( !view.CanGoForward() ); @@ -203,17 +221,17 @@ int UtcDaliWebViewTouchAndKeys(void) ToolkitTestApplication application; WebView view = WebView::New(); - view.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - view.SetParentOrigin( ParentOrigin::TOP_LEFT ); - view.SetPosition( 0, 0 ); - view.SetSize( 800, 600 ); + view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 )); + view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) ); - Stage::GetCurrent().Add( view ); + application.GetScene().Add( view ); application.SendNotification(); application.Render(); view.GetNaturalSize(); - view.TouchSignal().Connect( &OnTouched ); + view.TouchedSignal().Connect( &OnTouched ); // Touch event Dali::Integration::TouchEvent event; @@ -233,7 +251,7 @@ int UtcDaliWebViewTouchAndKeys(void) // Key event Toolkit::KeyboardFocusManager::Get().SetCurrentFocusActor( view ); - application.ProcessEvent( Integration::KeyEvent( "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::Down, "", "", Device::Class::NONE, Device::Subclass::NONE ) ); + application.ProcessEvent( Integration::KeyEvent( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE ) ); application.SendNotification(); DALI_TEST_CHECK( gTouched ); @@ -242,8 +260,35 @@ int UtcDaliWebViewTouchAndKeys(void) END_TEST; } +int UtcDaliWebViewFocusGainedAndLost(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 )); + view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) ); + + application.GetScene().Add( view ); + application.SendNotification(); + application.Render(); + + view.SetKeyInputFocus(); + DALI_TEST_CHECK( view.HasKeyInputFocus() ); + + // reset + view.ClearKeyInputFocus(); + DALI_TEST_CHECK( !view.HasKeyInputFocus() ); + + END_TEST; +} + int UtcDaliWebViewProperty1(void) { + // URL ToolkitTestApplication application; WebView view = WebView::New(); @@ -258,6 +303,283 @@ int UtcDaliWebViewProperty1(void) END_TEST; } +int UtcDaliWebViewProperty2(void) +{ + // CACHE_MODEL + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + const std::string kDefaultValue = "DOCUMENT_VIEWER"; + const WebView::CacheModel::Type kTestEnum = WebView::CacheModel::PRIMARY_WEB_BROWSER; + const std::string kTestValue = "PRIMARY_WEB_BROWSER"; + + // Check default value + std::string output; + Property::Value value = view.GetProperty( WebView::Property::CACHE_MODEL ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + + // Check Set/GetProperty + view.SetProperty( WebView::Property::CACHE_MODEL, kTestEnum ); + value = view.GetProperty( WebView::Property::CACHE_MODEL ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + + view.SetProperty( WebView::Property::CACHE_MODEL, kTestValue ); + value = view.GetProperty( WebView::Property::CACHE_MODEL ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliWebViewProperty3(void) +{ + // COOKIE_ACCEPT_POLICY + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + const std::string kDefaultValue = "NO_THIRD_PARTY"; + const WebView::CookieAcceptPolicy::Type kTestEnum = WebView::CookieAcceptPolicy::NEVER; + const std::string kTestValue = "NEVER"; + + // Check default value + std::string output; + Property::Value value = view.GetProperty( WebView::Property::COOKIE_ACCEPT_POLICY ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + + // Check Set/GetProperty + view.SetProperty( WebView::Property::COOKIE_ACCEPT_POLICY, kTestEnum ); + value = view.GetProperty( WebView::Property::COOKIE_ACCEPT_POLICY ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + + view.SetProperty( WebView::Property::COOKIE_ACCEPT_POLICY, kTestValue ); + value = view.GetProperty( WebView::Property::COOKIE_ACCEPT_POLICY ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliWebViewProperty4(void) +{ + // USER_AGENT + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + const std::string kDefaultValue; + const std::string kTestValue = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"; + + // Check default value + std::string output; + Property::Value value = view.GetProperty( WebView::Property::USER_AGENT ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + + // Check Set/GetProperty + view.SetProperty( WebView::Property::USER_AGENT, kTestValue ); + value = view.GetProperty( WebView::Property::USER_AGENT ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliWebViewProperty5(void) +{ + // ENABLE_JAVASCRIPT + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + const bool kDefaultValue = true; + const bool kTestValue = false; + + // Check default value + bool output; + Property::Value value = view.GetProperty( WebView::Property::ENABLE_JAVASCRIPT ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + + // Check Set/GetProperty + view.SetProperty( WebView::Property::ENABLE_JAVASCRIPT, kTestValue ); + value = view.GetProperty( WebView::Property::ENABLE_JAVASCRIPT ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliWebViewProperty6(void) +{ + // LOAD_IMAGES_AUTOMATICALLY + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + const bool kDefaultValue = true; + const bool kTestValue = false; + + // Check default value + bool output; + Property::Value value = view.GetProperty( WebView::Property::LOAD_IMAGES_AUTOMATICALLY ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + + // Check Set/GetProperty + view.SetProperty( WebView::Property::LOAD_IMAGES_AUTOMATICALLY, kTestValue ); + value = view.GetProperty( WebView::Property::LOAD_IMAGES_AUTOMATICALLY ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliWebViewProperty7(void) +{ + // DEFAULT_TEXT_ENCODING_NAME + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + const std::string kDefaultValue; + const std::string kTestValue = "UTF-8"; + + // Check default value + std::string output; + Property::Value value = view.GetProperty( WebView::Property::DEFAULT_TEXT_ENCODING_NAME ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + + // Check Set/GetProperty + view.SetProperty( WebView::Property::DEFAULT_TEXT_ENCODING_NAME, kTestValue ); + value = view.GetProperty( WebView::Property::DEFAULT_TEXT_ENCODING_NAME ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliWebViewProperty8(void) +{ + // DEFAULT_FONT_SIZE + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + const int kDefaultValue = 16; + const int kTestValue = 26; + + // Check default value + int output; + Property::Value value = view.GetProperty( WebView::Property::DEFAULT_FONT_SIZE ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + + // Check Set/GetProperty + view.SetProperty( WebView::Property::DEFAULT_FONT_SIZE, kTestValue ); + value = view.GetProperty( WebView::Property::DEFAULT_FONT_SIZE ); + DALI_TEST_CHECK( value.Get( output ) ); + DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliWebViewProperty9(void) +{ + // SCROLL_POSITION + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + // Check default value + Dali::Vector2 output = Dali::Vector2::ONE; + view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output ); + DALI_TEST_CHECK( output.x == 0 && output.y == 0 ); + + // Check Set/GetProperty + Dali::Vector2 testValue = Dali::Vector2( 100, 100 ); + view.SetProperty( WebView::Property::SCROLL_POSITION, testValue ); + view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output ); + DALI_TEST_EQUALS( output, testValue, TEST_LOCATION ); + + // Check default value of scroll size + output = Dali::Vector2::ONE; + view.GetProperty( WebView::Property::SCROLL_SIZE ).Get( output ); + DALI_TEST_CHECK( output.x == 500 && output.y == 500 ); + + // Check default value of content size + output = Dali::Vector2::ONE; + view.GetProperty( WebView::Property::CONTENT_SIZE ).Get( output ); + DALI_TEST_CHECK( output.x == 500 && output.y == 500 ); + + END_TEST; +} + +int UtcDaliWebViewScrollBy(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + // load url. + ConnectionTracker* testTracker = new ConnectionTracker(); + view.ScrollEdgeReachedSignal().Connect( &OnScrollEdgeReached ); + bool signal1 = false; + view.ConnectSignal( testTracker, "scrollEdgeReached", CallbackFunctor(&signal1) ); + DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 0, TEST_LOCATION ); + + view.LoadUrl( TEST_URL1 ); + Test::EmitGlobalTimerSignal(); + + // set scroll position. + Dali::Vector2 output = Dali::Vector2::ONE; + Dali::Vector2 testValue = Dali::Vector2( 100, 100 ); + view.SetProperty( WebView::Property::SCROLL_POSITION, testValue ); + view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output ); + DALI_TEST_EQUALS( output, testValue, TEST_LOCATION ); + + // scroll by and trigger scrollEdgeReached event. + view.ScrollBy( 50, 50 ); + view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output ); + DALI_TEST_CHECK( output.x == 150 && output.y == 150 ); + DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 1, TEST_LOCATION ); + DALI_TEST_CHECK( signal1 ); + + END_TEST; +} + +int UtcDaliWebViewEvaluteJavaScript(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New( "ko-KR", "Asia/Seoul" ); + + view.LoadHTMLString( "Hello World!" ); + view.EvaluateJavaScript( "jsObject.postMessage('Hello')" ); + view.EvaluateJavaScript( "jsObject.postMessage('World')", OnEvaluateJavaScript ); + Test::EmitGlobalTimerSignal(); + + DALI_TEST_EQUALS( gEvaluateJavaScriptCallbackCalled, 1, TEST_LOCATION ); + + END_TEST; +} + + int UtcDaliWebViewMethodsForCoverage(void) { ToolkitTestApplication application; @@ -265,13 +587,10 @@ int UtcDaliWebViewMethodsForCoverage(void) WebView view = WebView::New( "ko-KR", "Asia/Seoul" ); view.LoadHTMLString( "Hello World!" ); - view.AddJavaScriptInterface( "jsObject", "jsFunction", - []( const std::string& arg ) -> std::string { - return arg + " World!"; + view.AddJavaScriptMessageHandler( "jsObject", + []( const std::string& arg ) { } ); - view.EvaluateJavaScript( "jsObject.jsFunction('Hello')" ); - view.RemoveJavascriptInterface( "jsObject", "jsFunction" ); DALI_TEST_CHECK( view );