[NUI] Add TCs of WebView & Update some TCs of NUI.Devel.
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Tests / Tizen.NUI.Devel.Tests / testcase / internal / WebView / TSWebConsoleMessage.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/WebConsoleMessage")]
14     public class InternalWebConsoleMessageTest
15     {
16         private const string tag = "NUITEST";
17         private static string[] runtimeArgs = { "Tizen.NUI.Devel.Tests", "--enable-dali-window", "--enable-spatial-navigation" };
18         private const string USER_AGENT = "Mozilla/5.0 (SMART-TV; Linux; Tizen 6.0) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/76.0.3809.146 TV Safari/537.36";
19
20         internal class MyWebConsoleMessage : WebConsoleMessage
21         {
22             public MyWebConsoleMessage(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
23             { }
24
25             public void OnReleaseSwigCPtr(global::System.Runtime.InteropServices.HandleRef swigCPtr)
26             {
27                 base.ReleaseSwigCPtr(swigCPtr);
28             }
29         }
30
31         [SetUp]
32         public void Init()
33         {
34             tlog.Info(tag, "Init() is called!");
35         }
36
37         [TearDown]
38         public void Destroy()
39         {
40             tlog.Info(tag, "Destroy() is called!");
41         }
42
43         [Test]
44         [Category("P1")]
45         [Description("WebConsoleMessage constructor.")]
46         [Property("SPEC", "Tizen.NUI.WebConsoleMessage.WebConsoleMessage C")]
47         [Property("SPEC_URL", "-")]
48         [Property("CRITERIA", "CONSTR")]
49         [Property("COVPARAM", "")]
50         [Property("AUTHOR", "guowei.wang@samsung.com")]
51         public void WebConsoleMessageConstructor()
52         {
53             tlog.Debug(tag, $"WebConsoleMessageConstructor START");
54
55             using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
56             {
57                 var testingTarget = new WebConsoleMessage(webview.SwigCPtr.Handle, false);
58                 Assert.IsNotNull(testingTarget, "null handle");
59                 Assert.IsInstanceOf<WebConsoleMessage>(testingTarget, "Should return WebConsoleMessage instance.");
60
61                 testingTarget.Dispose();
62             }
63
64             tlog.Debug(tag, $"WebConsoleMessageConstructor END (OK)");
65         }
66
67         [Test]
68         [Category("P1")]
69         [Description("WebConsoleMessage ReleaseSwigCPtr.")]
70         [Property("SPEC", "Tizen.NUI.WebConsoleMessage.ReleaseSwigCPtr M")]
71         [Property("SPEC_URL", "-")]
72         [Property("CRITERIA", "MR")]
73         [Property("COVPARAM", "")]
74         [Property("AUTHOR", "guowei.wang@samsung.com")]
75         public void WebConsoleMessageReleaseSwigCPtr()
76         {
77             tlog.Debug(tag, $"WebConsoleMessageReleaseSwigCPtr START");
78
79             using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
80             {
81                 var testingTarget = new MyWebConsoleMessage(webview.SwigCPtr.Handle, false);
82                 Assert.IsNotNull(testingTarget, "null handle");
83                 Assert.IsInstanceOf<WebConsoleMessage>(testingTarget, "Should return WebConsoleMessage instance.");
84
85                 try
86                 {
87                     testingTarget.OnReleaseSwigCPtr(testingTarget.SwigCPtr);
88                 }
89                 catch (Exception e)
90                 {
91                     tlog.Debug(tag, e.Message.ToString());
92                     Assert.Fail("Caught Exception : Failed!");
93                 }
94             }
95
96             tlog.Debug(tag, $"WebConsoleMessageReleaseSwigCPtr END (OK)");
97         }
98
99         [Test]
100         [Category("P1")]
101         [Description("WebConsoleMessage Source.")]
102         [Property("SPEC", "Tizen.NUI.WebConsoleMessage.Source A")]
103         [Property("SPEC_URL", "-")]
104         [Property("CRITERIA", "PRO")]
105         [Property("COVPARAM", "")]
106         [Property("AUTHOR", "guowei.wang@samsung.com")]
107         public async Task WebConsoleMessageSource()
108         {
109             tlog.Debug(tag, $"WebConsoleMessageSource START");
110
111             var testingTarget = new Tizen.NUI.BaseComponents.WebView(runtimeArgs)
112             {
113                 Size = new Size(500, 200),
114                 UserAgent = USER_AGENT
115             };
116             Assert.IsNotNull(testingTarget, "null handle");
117             Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return Tizen.NUI.BaseComponents.WebView instance.");
118
119             testingTarget.ConsoleMessageReceived += OnConsoleMessageReceived;
120             NUIApplication.GetDefaultWindow().Add(testingTarget);
121
122             testingTarget.LoadUrl("https://www.youtube.com");
123      
124             await Task.Delay(60000);
125             testingTarget.ClearCache();
126             testingTarget.ClearCookies();
127             NUIApplication.GetDefaultWindow().Remove(testingTarget);
128
129             testingTarget.Dispose();
130             tlog.Debug(tag, $"WebConsoleMessageSource END (OK)");
131         }
132
133         private void OnConsoleMessageReceived(object sender, WebViewConsoleMessageReceivedEventArgs e)
134         {
135             tlog.Info(tag, $"console message, Source: {e.ConsoleMessage.Source}");
136             tlog.Info(tag, $"console message, Line: {e.ConsoleMessage.Line}");
137             tlog.Info(tag, $"console message, Level: {e.ConsoleMessage.Level}");
138             tlog.Info(tag, $"console message, Text: {e.ConsoleMessage.Text}");
139         }
140     }
141 }