3 using NUnit.Framework.TUnit;
4 using Tizen.NUI.Components;
5 using Tizen.NUI.BaseComponents;
6 using System.Threading.Tasks;
8 namespace Tizen.NUI.Devel.Tests
10 using tlog = Tizen.Log;
13 [Description("internal/WebView/WebPolicyDecisionMaker")]
14 public class InternalWebPolicyDecisionMakerTest
16 private const string tag = "NUITEST";
17 private string urlForResponsePolicyTest = "http://www.samsung.com";
18 private BaseComponents.WebView webView = null;
23 webView = new BaseComponents.WebView()
25 Size = new Size(150, 100),
27 tlog.Info(tag, "Init() is called!");
33 tlog.Info(tag, "Destroy() is being called!");
35 tlog.Info(tag, "Destroy() is called!");
40 [Description("WebPolicyDecisionMaker Url.")]
41 [Property("SPEC", "Tizen.NUI.WebPolicyDecisionMaker.Ignore M")]
42 [Property("SPEC_URL", "-")]
43 [Property("CRITERIA", "PRO")]
44 [Property("COVPARAM", "")]
45 [Property("AUTHOR", "guowei.wang@samsung.com")]
46 public async Task WebPolicyDecisionMakerIgnore()
48 tlog.Debug(tag, $"WebPolicyDecisionMakerIgnore START");
50 TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
51 EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
53 tlog.Info(tag, $"response policy decided, Url: {e.ResponsePolicyDecisionMaker.Url}");
54 tlog.Info(tag, $"response policy decided, Cookie: {e.ResponsePolicyDecisionMaker.Cookie}");
55 tlog.Info(tag, $"response policy decided, PolicyDecisionType: {e.ResponsePolicyDecisionMaker.PolicyDecisionType}");
56 tlog.Info(tag, $"response policy decided, ResponseMime: {e.ResponsePolicyDecisionMaker.ResponseMime}");
57 tlog.Info(tag, $"response policy decided, ResponseStatusCode: {e.ResponsePolicyDecisionMaker.ResponseStatusCode}");
58 tlog.Info(tag, $"response policy decided, DecisionNavigationType: {e.ResponsePolicyDecisionMaker.DecisionNavigationType}");
59 tlog.Info(tag, $"response policy decided, Scheme: {e.ResponsePolicyDecisionMaker.Scheme}");
60 if (e.ResponsePolicyDecisionMaker.Frame != null)
62 tlog.Info(tag, $"response policy decided, Frame.IsMainFrame: {e.ResponsePolicyDecisionMaker.Frame.IsMainFrame}");
64 e.ResponsePolicyDecisionMaker.Ignore();
66 tcs.TrySetResult(true);
68 webView.ResponsePolicyDecided += onResponsePolicyDecide;
70 webView.LoadUrl(urlForResponsePolicyTest);
71 var result = await tcs.Task;
72 Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
74 webView.ResponsePolicyDecided -= onResponsePolicyDecide;
76 tlog.Debug(tag, $"WebPolicyDecisionMakerIgnore END (OK)");
81 [Description("WebPolicyDecisionMaker Url.")]
82 [Property("SPEC", "Tizen.NUI.WebPolicyDecisionMaker.Suspend M")]
83 [Property("SPEC_URL", "-")]
84 [Property("CRITERIA", "PRO")]
85 [Property("COVPARAM", "")]
86 [Property("AUTHOR", "guowei.wang@samsung.com")]
87 public async Task WebPolicyDecisionMakerSuspend()
89 tlog.Debug(tag, $"WebPolicyDecisionMakerSuspend START");
91 TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
92 EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
94 e.ResponsePolicyDecisionMaker.Suspend();
96 tcs.TrySetResult(true);
98 webView.ResponsePolicyDecided += onResponsePolicyDecide;
100 webView.LoadUrl(urlForResponsePolicyTest);
101 var result = await tcs.Task;
102 Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
104 webView.ResponsePolicyDecided -= onResponsePolicyDecide;
106 tlog.Debug(tag, $"WebPolicyDecisionMakerSuspend END (OK)");
111 [Description("WebPolicyDecisionMaker Url.")]
112 [Property("SPEC", "Tizen.NUI.WebPolicyDecisionMaker.Use M")]
113 [Property("SPEC_URL", "-")]
114 [Property("CRITERIA", "PRO")]
115 [Property("COVPARAM", "")]
116 [Property("AUTHOR", "guowei.wang@samsung.com")]
117 public async Task WebPolicyDecisionMakerUse()
119 tlog.Debug(tag, $"WebPolicyDecisionMakerUse START");
121 TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
122 EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
124 e.ResponsePolicyDecisionMaker.Use();
126 tcs.TrySetResult(true);
128 webView.ResponsePolicyDecided += onResponsePolicyDecide;
130 webView.LoadUrl(urlForResponsePolicyTest);
131 var result = await tcs.Task;
132 Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
134 webView.ResponsePolicyDecided -= onResponsePolicyDecide;
136 tlog.Debug(tag, $"WebPolicyDecisionMakerUse END (OK)");