+ 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;