[NUI] Update webview TCs.
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Tests / Tizen.NUI.Devel.Tests / testcase / public / WebView / TSWebPageLoadError.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("public/WebView/WebPageLoadError")]
14     public class PublicWebPageLoadErrorTest
15     {
16         private const string tag = "NUITEST";
17         private const string errorUrl = "file:///file_that_does_not_exist.html";
18         private BaseComponents.WebView webview = null;
19
20         [SetUp]
21         public void Init()
22         {
23             webview = new BaseComponents.WebView()
24             {
25                 Size = new Size(500, 200)
26             };
27             tlog.Info(tag, "Init() is called!");
28         }
29
30         [TearDown]
31         public void Destroy()
32         {
33             webview.Dispose();
34             tlog.Info(tag, "Destroy() is called!");
35         }
36
37         [Test]
38         [Category("P1")]
39         [Description("WebPageLoadError Url.")]
40         [Property("SPEC", "Tizen.NUI.WebPageLoadError.Url A")]
41         [Property("SPEC_URL", "-")]
42         [Property("CRITERIA", "PRO")]
43         [Property("COVPARAM", "")]
44         [Property("AUTHOR", "guowei.wang@samsung.com")]
45         public async Task WebPageLoadError()
46         {
47             tlog.Debug(tag, $"WebPageLoadErrorUrl START");
48
49             TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
50             EventHandler<WebViewPageLoadErrorEventArgs> onLoadError = (s, e) =>
51             {
52                 bool failed = true;
53                 var url = e.PageLoadError.Url;
54                 Log.Info(tag, $"load error, Url: {url}");
55                 if (url is string && url.Equals(errorUrl))
56                 {
57                     failed = false;
58                 }
59
60                 var code = e.PageLoadError.Code;
61                 Log.Info(tag, $"load error, Code: {code}");
62                 if (code.GetType() == typeof(WebPageLoadError.ErrorCode) && (code.Equals(NUI.WebPageLoadError.ErrorCode.CannotLookupHost) || code.Equals(NUI.WebPageLoadError.ErrorCode.Unknown)))
63                 {
64                     failed = false;
65                 }
66
67                 var type = e.PageLoadError.Type;
68                 Log.Info(tag, $"load error, Type: {type}");
69                 if (type.GetType() == typeof(WebPageLoadError.ErrorType) && type.Equals(NUI.WebPageLoadError.ErrorType.Network))
70                 {
71                     failed = false;
72                 }
73
74                 var description = e.PageLoadError.Description;
75                 Log.Info(tag, $"load error, Description: {description}");
76                 if (description is string)
77                 {
78                     failed = false;
79                 }
80
81                 tcs.TrySetResult(!failed);
82             };
83
84             webview.PageLoadError += onLoadError;
85
86             webview.LoadUrl(errorUrl);
87             var result = await tcs.Task;
88             Assert.IsTrue(result, "PageLoadError should be invoked.");
89
90             // Make current thread (CPU) sleep...
91             await Task.Delay(1);
92
93             webview.PageLoadError -= onLoadError;
94
95             tlog.Debug(tag, $"WebPageLoadErrorUrl END (OK)");
96         }
97     }
98 }