3 using NUnit.Framework.TUnit;
4 using Tizen.NUI.Components;
5 using Tizen.NUI.BaseComponents;
6 using System.Threading.Tasks;
9 namespace Tizen.NUI.Devel.Tests
11 using tlog = Tizen.Log;
14 [Description("internal/WebView/WebCookieManager")]
15 public class InternalWebCookieManagerTest
17 private const string tag = "NUITEST";
18 private string urlForCookies = "https://www.baidu.com/";
19 private BaseComponents.WebView webview;
20 private WebCookieManager _cookieManager;
21 private const string cookiePath = "/home/owner/.cookie";
26 tlog.Info(tag, "Init() is called!");
27 webview = new BaseComponents.WebView()
29 Size = new Size(500, 200),
31 _cookieManager = webview.CookieManager;
37 tlog.Info(tag, "Destroy() is being called!");
39 tlog.Info(tag, "Destroy() is called!");
44 [Description("WebCookieManager CookieChanged.")]
45 [Property("SPEC", "Tizen.NUI.WebCookieManager.CookieAcceptPolicy A")]
46 [Property("SPEC_URL", "-")]
47 [Property("CRITERIA", "PRW")]
48 [Property("COVPARAM", "")]
49 [Property("AUTHOR", "guowei.wang@samsung.com")]
50 public async Task WebCookieManagerCookieAcceptPolicy()
52 tlog.Debug(tag, $"WebCookieManagerCookieAcceptPolicy START");
54 _cookieManager.CookieAcceptPolicy = WebCookieManager.CookieAcceptPolicyType.Never;
55 _cookieManager.SetPersistentStorage(cookiePath, WebCookieManager.CookiePersistentStorageType.SqlLite);
57 TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
58 EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
60 tlog.Info(tag, "onLoadFinished is called!");
61 tcs.TrySetResult(true);
63 webview.PageLoadFinished += onLoadFinished;
65 webview.LoadUrl(urlForCookies);
66 var result = await tcs.Task;
67 Assert.IsTrue(result, "PageLoadFinished event should be invoked");
69 // Make current thread (CPU) sleep...
72 Assert.AreEqual(_cookieManager.CookieAcceptPolicy, WebCookieManager.CookieAcceptPolicyType.Never, "Failed to set CookieAcceptPolicyType!");
74 webview.PageLoadFinished -= onLoadFinished;
76 tlog.Debug(tag, $"WebCookieManagerCookieAcceptPolicy END (OK)");
81 [Description("WebCookieManager CookieChanged.")]
82 [Property("SPEC", "Tizen.NUI.WebCookieManager.CookieChanged E")]
83 [Property("SPEC_URL", "-")]
84 [Property("CRITERIA", "PRW")]
85 [Property("COVPARAM", "")]
86 [Property("AUTHOR", "guowei.wang@samsung.com")]
87 public async Task WebCookieManagerCookieChanged()
89 tlog.Debug(tag, $"WebCookieManagerCookieChanged START");
91 _cookieManager.CookieAcceptPolicy = WebCookieManager.CookieAcceptPolicyType.Always;
92 _cookieManager.SetPersistentStorage(cookiePath, WebCookieManager.CookiePersistentStorageType.SqlLite);
94 TaskCompletionSource<bool> tcs1 = new TaskCompletionSource<bool>(false);
96 EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
98 tlog.Info(tag, "onLoadFinished is called!");
99 tcs1.TrySetResult(true);
101 webview.PageLoadFinished += onLoadFinished;
103 webview.LoadUrl(urlForCookies);
105 var result = await tcs1.Task;
106 Assert.IsTrue(result, "PageLoadFinished event should be invoked");
108 // Make current thread (CPU) sleep...
111 TaskCompletionSource<bool> tcs2 = new TaskCompletionSource<bool>(false);
112 EventHandler<EventArgs> onCookieChanged = (s, e) =>
114 tlog.Info(tag, "CookieChanged is called!");
115 tcs2.TrySetResult(true);
118 _cookieManager.CookieChanged += onCookieChanged;
120 const string addCookies = "document.cookie = \"username=John Doe\";";
121 BaseComponents.WebView.JavaScriptMessageHandler onEvaluateJS = (message) =>
123 tlog.Info(tag, $"EvaluateJavaScript is called!, result is {message}");
125 webview.EvaluateJavaScript(addCookies, onEvaluateJS);
127 tlog.Info(tag, "EvaluateJavaScript is called!");
129 var result2 = await tcs2.Task;
130 Assert.IsTrue(result2, "CookieChanged event should be invoked");
132 // Make current thread (CPU) sleep...
135 webview.PageLoadFinished -= onLoadFinished;
136 _cookieManager.CookieChanged -= onCookieChanged;
138 tlog.Debug(tag, $"WebCookieManagerCookieChanged END (OK)");
143 [Description("WebCookieManager CookieChanged.")]
144 [Property("SPEC", "Tizen.NUI.WebCookieManager.ClearCookies M")]
145 [Property("SPEC_URL", "-")]
146 [Property("CRITERIA", "PRW")]
147 [Property("COVPARAM", "")]
148 [Property("AUTHOR", "guowei.wang@samsung.com")]
149 public async Task WebCookieManagerClearCookies()
151 tlog.Debug(tag, $"WebCookieManagerClearCookies START");
153 _cookieManager.CookieAcceptPolicy = WebCookieManager.CookieAcceptPolicyType.Always;
154 _cookieManager.SetPersistentStorage(cookiePath, WebCookieManager.CookiePersistentStorageType.SqlLite);
156 TaskCompletionSource<bool> tcs1 = new TaskCompletionSource<bool>(false);
157 EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
159 tlog.Info(tag, "onLoadFinished is called!");
160 tcs1.TrySetResult(true);
162 webview.PageLoadFinished += onLoadFinished;
164 webview.LoadUrl(urlForCookies);
165 var result = await tcs1.Task;
166 Assert.IsTrue(result, "PageLoadFinished event should be invoked");
168 // Make current thread (CPU) sleep...
172 _cookieManager.ClearCookies(); //
174 webview.PageLoadFinished -= onLoadFinished;
176 tlog.Debug(tag, $"WebCookieManagerClearCookies END (OK)");