+ 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.SetProperty(Actor::Property::POSITION, Vector2(100, 100));
+ Vector3 viewPos = view.GetProperty<Vector3>(Actor::Property::POSITION);
+ DALI_TEST_EQUALS(viewPos, Vector3(100, 100, 0), TEST_LOCATION);
+
+ END_TEST;
+}
+
+int UtcDaliWebViewPropertyVideoHoleEnabled(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ DALI_TEST_CHECK(view);
+
+ const bool kDefaultValue = false;
+ const bool kTestValue = true;
+
+ // Check default value
+ bool output;
+ Property::Value value = view.GetProperty(WebView::Property::VIDEO_HOLE_ENABLED);
+ DALI_TEST_CHECK(value.Get(output));
+ DALI_TEST_EQUALS(output, kDefaultValue, TEST_LOCATION);
+
+ // Check Set/GetProperty
+ view.SetProperty(WebView::Property::VIDEO_HOLE_ENABLED, kTestValue);
+ value = view.GetProperty(WebView::Property::VIDEO_HOLE_ENABLED);
+ DALI_TEST_CHECK(value.Get(output));
+ DALI_TEST_EQUALS(output, kTestValue, TEST_LOCATION);
+
+ END_TEST;
+}
+
+int UtcDaliWebViewPropertyMouseEventsEnabled(void)
+{
+ 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::MOUSE_EVENTS_ENABLED);
+ DALI_TEST_CHECK(value.Get(output));
+ DALI_TEST_EQUALS(output, kDefaultValue, TEST_LOCATION);
+
+ // Check Set/GetProperty
+ view.SetProperty(WebView::Property::MOUSE_EVENTS_ENABLED, kTestValue);
+ value = view.GetProperty(WebView::Property::MOUSE_EVENTS_ENABLED);
+ DALI_TEST_CHECK(value.Get(output));
+ DALI_TEST_EQUALS(output, kTestValue, TEST_LOCATION);
+
+ END_TEST;
+}
+
+int UtcDaliWebViewPropertyKeyEventsEnabled(void)
+{
+ 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::KEY_EVENTS_ENABLED);
+ DALI_TEST_CHECK(value.Get(output));
+ DALI_TEST_EQUALS(output, kDefaultValue, TEST_LOCATION);
+
+ // Check Set/GetProperty
+ view.SetProperty(WebView::Property::KEY_EVENTS_ENABLED, kTestValue);
+ value = view.GetProperty(WebView::Property::KEY_EVENTS_ENABLED);
+ DALI_TEST_CHECK(value.Get(output));
+ DALI_TEST_EQUALS(output, kTestValue, TEST_LOCATION);
+
+ END_TEST;
+}
+
+int UtcDaliWebViewHoverAndWheel(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.GetNaturalSize();
+ view.HoveredSignal().Connect(&OnHovered);
+ view.WheelEventSignal().Connect(&OnWheelEvent);
+
+ // Hover event
+ Dali::Integration::HoverEvent event = Dali::Integration::HoverEvent();
+ Dali::Integration::Point pointDown;
+ pointDown.SetState(PointState::DOWN);
+ pointDown.SetScreenPosition(Vector2(10, 10));
+ event.AddPoint(pointDown);
+ application.ProcessEvent(event);
+
+ event = Dali::Integration::HoverEvent();
+ Dali::Integration::Point pointUp;
+ pointUp.SetState(PointState::UP);
+ pointUp.SetScreenPosition(Vector2(10, 10));
+ event.AddPoint(pointUp);
+ application.ProcessEvent(event);
+
+ event = Dali::Integration::HoverEvent();
+ Dali::Integration::Point pointMotion;
+ pointUp.SetState(PointState::MOTION);
+ pointUp.SetScreenPosition(Vector2(10, 10));
+ event.AddPoint(pointMotion);
+ application.ProcessEvent(event);
+
+ // Wheel event
+ Dali::Integration::WheelEvent wheelEvent;
+ wheelEvent.type = Dali::Integration::WheelEvent::Type::MOUSE_WHEEL;
+ wheelEvent.direction = 0;
+ wheelEvent.point = Vector2(20, 20);
+ wheelEvent.delta = 10;
+ application.ProcessEvent(wheelEvent);
+ application.SendNotification();
+
+ DALI_TEST_CHECK(gHovered);
+ DALI_TEST_CHECK(gWheelEventHandled);
+
+ END_TEST;
+}
+
+int UtcDaliWebViewFormRepostDecidedFrameRendering(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ 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);
+
+ view.RegisterFormRepostDecidedCallback(&OnFormRepostDecided);
+ view.RegisterFrameRenderedCallback(&OnFrameRendered);
+ DALI_TEST_EQUALS(gFormRepostDecidedCallbackCalled, 0, TEST_LOCATION);
+ DALI_TEST_EQUALS(gFrameRenderedCallbackCalled, 0, TEST_LOCATION);
+
+ view.LoadUrl(TEST_URL1);
+ Test::EmitGlobalTimerSignal();
+ DALI_TEST_EQUALS(gFormRepostDecidedCallbackCalled, 1, TEST_LOCATION);
+ DALI_TEST_EQUALS(gFrameRenderedCallbackCalled, 1, TEST_LOCATION);
+
+ // form repost decision.
+ DALI_TEST_CHECK(gFormRepostDecidedInstance);
+ gFormRepostDecidedInstance->Reply(true);
+
+ // reset
+ gFormRepostDecidedInstance = nullptr;
+
+ END_TEST;
+}
+
+int UtcDaliWebViewSslCertificateHttpAuthentication(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ 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);
+
+ view.RegisterCertificateConfirmedCallback(&OnCertificateConfirm);
+ view.RegisterSslCertificateChangedCallback(&OnSslCertificateChanged);
+ view.RegisterHttpAuthHandlerCallback(&OnHttpAuthHandler);
+ DALI_TEST_EQUALS(gCertificateConfirmCallbackCalled, 0, TEST_LOCATION);
+ DALI_TEST_EQUALS(gSslCertificateChangedCallbackCalled, 0, TEST_LOCATION);
+ DALI_TEST_EQUALS(gHttpAuthHandlerCallbackCalled, 0, TEST_LOCATION);
+
+ view.LoadUrl(TEST_URL1);
+ Test::EmitGlobalTimerSignal();
+ DALI_TEST_EQUALS(gCertificateConfirmCallbackCalled, 1, TEST_LOCATION);
+ DALI_TEST_EQUALS(gSslCertificateChangedCallbackCalled, 1, TEST_LOCATION);
+ DALI_TEST_EQUALS(gHttpAuthHandlerCallbackCalled, 1, TEST_LOCATION);
+
+ // certificate.
+ DALI_TEST_CHECK(gCertificateConfirmInstance);
+ gCertificateConfirmInstance->Allow(true);
+ DALI_TEST_CHECK(gCertificateConfirmInstance->IsFromMainFrame());
+
+ DALI_TEST_CHECK(gSslCertificateInstance);
+ DALI_TEST_EQUALS(gSslCertificateInstance->GetPem(), "abc", TEST_LOCATION);
+ DALI_TEST_CHECK(gSslCertificateInstance->IsContextSecure());
+
+ // http authentication.
+ DALI_TEST_CHECK(gHttpAuthInstance);
+ gHttpAuthInstance->Suspend();
+ gHttpAuthInstance->UseCredential("", "");
+ gHttpAuthInstance->CancelCredential();
+ DALI_TEST_EQUALS(gHttpAuthInstance->GetRealm(), "test", TEST_LOCATION);
+
+ // reset
+ gCertificateConfirmInstance = nullptr;
+ gSslCertificateInstance = nullptr;
+ gHttpAuthInstance = nullptr;
+
+ END_TEST;
+}
+
+int UtcDaliWebViewGetWebBackForwardList(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ DALI_TEST_CHECK(view);
+
+ Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
+ DALI_TEST_CHECK(bfList != 0);
+
+ END_TEST;
+}
+
+int UtcDaliWebViewGetWebContext(void)
+{
+ ToolkitTestApplication application;
+
+ Dali::WebEngineContext* context = WebView::GetContext();
+ DALI_TEST_CHECK(context != nullptr);
+
+ END_TEST;
+}
+
+int UtcDaliWebViewGetWebCookieManager(void)
+{
+ ToolkitTestApplication application;
+
+ Dali::WebEngineCookieManager* cookieManager = WebView::GetCookieManager();
+ DALI_TEST_CHECK(cookieManager != 0);
+
+ END_TEST;
+}
+
+int UtcDaliWebViewGetWebSettings(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ DALI_TEST_CHECK(view);
+
+ Dali::Toolkit::WebSettings* settings = view.GetSettings();
+ DALI_TEST_CHECK(settings != 0);
+
+ END_TEST;
+}
+
+int UtcDaliWebViewProperty1(void)
+{
+ // URL
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ DALI_TEST_CHECK(view);
+
+ std::string local;
+ view.SetProperty(WebView::Property::URL, TEST_URL1);
+ Property::Value val = view.GetProperty(WebView::Property::URL);
+ DALI_TEST_CHECK(val.Get(local));
+ DALI_TEST_EQUALS(local, TEST_URL1, 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 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 UtcDaliWebViewPropertyBackgroundColorSelectedTextEtc(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ DALI_TEST_CHECK(view);
+
+ Dali::Vector4 testValue = Dali::Vector4(0.0f, 0.0f, 0.0f, 0.0f);
+ view.SetProperty(WebView::Property::DOCUMENT_BACKGROUND_COLOR, testValue);
+ view.SetProperty(WebView::Property::TILES_CLEARED_WHEN_HIDDEN, true);
+ view.SetProperty(WebView::Property::TILE_COVER_AREA_MULTIPLIER, 1.0f);
+ view.SetProperty(WebView::Property::CURSOR_ENABLED_BY_CLIENT, true);
+
+ // Check default value
+ std::string testText("test");
+ std::string output;
+ view.GetProperty(WebView::Property::SELECTED_TEXT).Get(output);
+ DALI_TEST_EQUALS(output, testText, TEST_LOCATION);
+
+ END_TEST;
+}
+
+int UtcDaliWebViewPropertyTitleFavicon(void)
+{
+ ToolkitTestApplication application;
+
+ char argv[] = "--test";
+ WebView view = WebView::New(1, (char**)&argv);
+ DALI_TEST_CHECK(view);
+
+ // reset something
+ view.ClearAllTilesResources();
+
+ // Check default value of title
+ std::string testValue("title");
+ std::string output;
+ view.GetProperty(WebView::Property::TITLE).Get(output);
+ DALI_TEST_EQUALS(output, testValue, TEST_LOCATION);
+
+ // Check the case that favicon is not null.
+ Dali::Toolkit::ImageView favicon = view.GetFavicon();
+ DALI_TEST_CHECK(favicon);
+ Dali::Vector3 iconsize = favicon.GetProperty<Vector3>(Dali::Actor::Property::SIZE);
+ DALI_TEST_CHECK((int)iconsize.width == 2 && (int)iconsize.height == 2);
+
+ // Check the case that favicon is null.
+ favicon = view.GetFavicon();
+ DALI_TEST_CHECK(!favicon);
+
+ END_TEST;
+}
+
+int UtcDaliWebViewContextMenuShownAndHidden(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ DALI_TEST_CHECK(view);