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-WebView.cpp;h=d9c34a615002c0640b1f6678762f8fe0fe6f025d;hp=f2a4f75e59b7934b3f27ae23e2d446c3929b3054;hb=7c81ee521e33d47e386d60eb7ccf07b98073542c;hpb=2b6baa7ad447110327e4ac22e7b3c3b6524c14da diff --git a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp index f2a4f75..d9c34a6 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,7 @@ const char* const TEST_URL2( "http://www.somewhere.valid2.com" ); static int gPageLoadStartedCallbackCalled = 0; static int gPageLoadFinishedCallbackCalled = 0; +static int gEvaluateJavaScriptCallbackCalled = 0; static bool gTouched = false; struct CallbackFunctor @@ -65,7 +66,16 @@ static void OnPageLoadFinished( WebView view, const std::string& url ) gPageLoadFinishedCallbackCalled++; } -static bool OnTouched( Actor actor, const Dali::TouchData& touch ) +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 +144,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 +156,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 +170,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 +177,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 +202,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 +215,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 +245,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 +254,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 +297,217 @@ 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 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 +515,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 );