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, $"ResponsePolicyDecided 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 tlog.Info(tag, $"response policy decided, MainFrame: {e.ResponsePolicyDecisionMaker.Frame.IsMainFrame}");
62 if (e.ResponsePolicyDecisionMaker.Frame != null)
64 tlog.Info(tag, $"response policy decided, Frame.IsMainFrame: {e.ResponsePolicyDecisionMaker.Frame.IsMainFrame}");
66 e.ResponsePolicyDecisionMaker.Ignore();
68 tcs.TrySetResult(true);
70 webView.ResponsePolicyDecided += onResponsePolicyDecide;
72 webView.LoadUrl(urlForResponsePolicyTest);
73 var result = await tcs.Task;
74 Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
76 // Make current thread (CPU) sleep...
79 webView.ResponsePolicyDecided -= onResponsePolicyDecide;
81 tlog.Debug(tag, $"WebPolicyDecisionMakerUrl END (OK)");
86 [Description("WebPolicyDecisionMaker Url.")]
87 [Property("SPEC", "Tizen.NUI.WebPolicyDecisionMaker.Suspend M")]
88 [Property("SPEC_URL", "-")]
89 [Property("CRITERIA", "PRO")]
90 [Property("COVPARAM", "")]
91 [Property("AUTHOR", "guowei.wang@samsung.com")]
92 public async Task WebPolicyDecisionMakerSuspend()
94 tlog.Debug(tag, $"WebPolicyDecisionMakerIgnore START");
96 TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
97 EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
99 e.ResponsePolicyDecisionMaker.Suspend();
100 tcs.TrySetResult(true);
102 webView.ResponsePolicyDecided += onResponsePolicyDecide;
104 webView.LoadUrl(urlForResponsePolicyTest);
105 var result = await tcs.Task;
106 Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
108 // Make current thread (CPU) sleep...
111 webView.ResponsePolicyDecided -= onResponsePolicyDecide;
113 tlog.Debug(tag, $"WebPolicyDecisionMakerIgnore END (OK)");
118 [Description("WebPolicyDecisionMaker Url.")]
119 [Property("SPEC", "Tizen.NUI.WebPolicyDecisionMaker.Use M")]
120 [Property("SPEC_URL", "-")]
121 [Property("CRITERIA", "PRO")]
122 [Property("COVPARAM", "")]
123 [Property("AUTHOR", "guowei.wang@samsung.com")]
124 public async Task WebPolicyDecisionMakerUse()
126 tlog.Debug(tag, $"ResponsePolicyDecided START");
128 TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
129 EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
131 e.ResponsePolicyDecisionMaker.Use();
132 tcs.TrySetResult(true);
134 webView.ResponsePolicyDecided += onResponsePolicyDecide;
136 webView.LoadUrl(urlForResponsePolicyTest);
137 var result = await tcs.Task;
138 Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
140 // Make current thread (CPU) sleep...
143 webView.ResponsePolicyDecided -= onResponsePolicyDecide;
145 tlog.Debug(tag, $"WebPolicyDecisionMakerUse END (OK)");