[NUI] Update webview TCs.
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Tests / Tizen.NUI.Devel.Tests / testcase / internal / WebView / TSWebPolicyDecisionMaker.cs
1 using global::System;
2 using NUnit.Framework;
3 using NUnit.Framework.TUnit;
4 using Tizen.NUI.Components;
5 using Tizen.NUI.BaseComponents;
6 using System.Threading.Tasks;
7
8 namespace Tizen.NUI.Devel.Tests
9 {
10     using tlog = Tizen.Log;
11
12     [TestFixture]
13     [Description("internal/WebView/WebPolicyDecisionMaker")]
14     public class InternalWebPolicyDecisionMakerTest
15     {
16         private const string tag = "NUITEST";
17         private string urlForResponsePolicyTest = "http://www.samsung.com";
18         private BaseComponents.WebView webView = null;
19
20         [SetUp]
21         public void Init()
22         {
23             webView = new BaseComponents.WebView()
24             {
25                 Size = new Size(150, 100),
26             };
27             tlog.Info(tag, "Init() is called!");
28         }
29
30         [TearDown]
31         public void Destroy()
32         {
33             tlog.Info(tag, "Destroy() is being called!");
34             webView.Dispose();
35             tlog.Info(tag, "Destroy() is called!");
36         }
37
38         [Test]
39         [Category("P1")]
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()
47         {
48             tlog.Debug(tag, $"ResponsePolicyDecided START");
49
50             TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
51             EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
52             {
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}");
61
62                 if (e.ResponsePolicyDecisionMaker.Frame != null)
63                 {
64                     tlog.Info(tag, $"response policy decided, Frame.IsMainFrame: {e.ResponsePolicyDecisionMaker.Frame.IsMainFrame}");
65                 }
66                 e.ResponsePolicyDecisionMaker.Ignore();
67
68                 tcs.TrySetResult(true);
69             };
70             webView.ResponsePolicyDecided += onResponsePolicyDecide;
71
72             webView.LoadUrl(urlForResponsePolicyTest);
73             var result = await tcs.Task;
74             Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
75
76             // Make current thread (CPU) sleep...
77             await Task.Delay(1);
78
79             webView.ResponsePolicyDecided -= onResponsePolicyDecide;
80
81             tlog.Debug(tag, $"WebPolicyDecisionMakerUrl END (OK)");
82         }
83
84         [Test]
85         [Category("P1")]
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()
93         {
94             tlog.Debug(tag, $"WebPolicyDecisionMakerIgnore START");
95
96             TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
97             EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
98             {
99                 e.ResponsePolicyDecisionMaker.Suspend();
100                 tcs.TrySetResult(true);
101             };
102             webView.ResponsePolicyDecided += onResponsePolicyDecide;
103
104             webView.LoadUrl(urlForResponsePolicyTest);
105             var result = await tcs.Task;
106             Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
107
108             // Make current thread (CPU) sleep...
109             await Task.Delay(1);
110
111             webView.ResponsePolicyDecided -= onResponsePolicyDecide;
112
113             tlog.Debug(tag, $"WebPolicyDecisionMakerIgnore END (OK)");
114         }
115
116         [Test]
117         [Category("P1")]
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()
125         {
126             tlog.Debug(tag, $"ResponsePolicyDecided START");
127
128             TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
129             EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
130             {
131                 e.ResponsePolicyDecisionMaker.Use();
132                 tcs.TrySetResult(true);
133             };
134             webView.ResponsePolicyDecided += onResponsePolicyDecide;
135
136             webView.LoadUrl(urlForResponsePolicyTest);
137             var result = await tcs.Task;
138             Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
139
140             // Make current thread (CPU) sleep...
141             await Task.Delay(1);
142
143             webView.ResponsePolicyDecided -= onResponsePolicyDecide;
144
145             tlog.Debug(tag, $"WebPolicyDecisionMakerUse END (OK)");
146         }
147     }
148 }