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/WebConsoleMessage")]
14 public class InternalWebConsoleMessageTest
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";
20 internal class MyWebConsoleMessage : WebConsoleMessage
22 public MyWebConsoleMessage(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
25 public void OnReleaseSwigCPtr(global::System.Runtime.InteropServices.HandleRef swigCPtr)
27 base.ReleaseSwigCPtr(swigCPtr);
34 tlog.Info(tag, "Init() is called!");
40 tlog.Info(tag, "Destroy() is called!");
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()
53 tlog.Debug(tag, $"WebConsoleMessageConstructor START");
55 using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
57 var testingTarget = new WebConsoleMessage(webview.SwigCPtr.Handle, false);
58 Assert.IsNotNull(testingTarget, "null handle");
59 Assert.IsInstanceOf<WebConsoleMessage>(testingTarget, "Should return WebConsoleMessage instance.");
61 testingTarget.Dispose();
64 tlog.Debug(tag, $"WebConsoleMessageConstructor END (OK)");
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()
77 tlog.Debug(tag, $"WebConsoleMessageReleaseSwigCPtr START");
79 using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
81 var testingTarget = new MyWebConsoleMessage(webview.SwigCPtr.Handle, false);
82 Assert.IsNotNull(testingTarget, "null handle");
83 Assert.IsInstanceOf<WebConsoleMessage>(testingTarget, "Should return WebConsoleMessage instance.");
87 testingTarget.OnReleaseSwigCPtr(testingTarget.SwigCPtr);
91 tlog.Debug(tag, e.Message.ToString());
92 Assert.Fail("Caught Exception : Failed!");
96 tlog.Debug(tag, $"WebConsoleMessageReleaseSwigCPtr END (OK)");
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()
109 tlog.Debug(tag, $"WebConsoleMessageSource START");
111 var testingTarget = new Tizen.NUI.BaseComponents.WebView(runtimeArgs)
113 Size = new Size(500, 200),
114 UserAgent = USER_AGENT
116 Assert.IsNotNull(testingTarget, "null handle");
117 Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return Tizen.NUI.BaseComponents.WebView instance.");
119 testingTarget.ConsoleMessageReceived += OnConsoleMessageReceived;
120 NUIApplication.GetDefaultWindow().Add(testingTarget);
122 testingTarget.LoadUrl("https://www.youtube.com");
124 await Task.Delay(60000);
125 testingTarget.ClearCache();
126 testingTarget.ClearCookies();
127 NUIApplication.GetDefaultWindow().Remove(testingTarget);
129 testingTarget.Dispose();
130 tlog.Debug(tag, $"WebConsoleMessageSource END (OK)");
133 private void OnConsoleMessageReceived(object sender, WebViewConsoleMessageReceivedEventArgs e)
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}");