[NUI] Update WebView TCs.
authorhuayong.xu <huayong.xu@samsung.com>
Tue, 30 May 2023 11:56:47 +0000 (19:56 +0800)
committerTaehyub Kim <taehyub.kim@samsung.com>
Thu, 8 Jun 2023 08:33:00 +0000 (17:33 +0900)
31 files changed:
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/index.html
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/picture.png [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/tizen.png [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/webdb.html [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/webformpasword.html [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/weblocalfilesystem.html [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/webstorage.html [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebBackForwardList.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebCertificate.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebConsoleMessage.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebContext.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebContextMenu.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebContextMenuItem.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebFormRepostPolicyDecisionMaker.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebFrame.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebPasswordData.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebPasswordDataList.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebPolicyDecisionMaker.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebSecurityOrigin.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebSecurityOriginList.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebSettings.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewCertificateReceivedEventArgs.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewConsoleMessageReceivedEventArgs.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewContextMenuHiddenEventArgs.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewContextMenuShownEventArgs.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewFormRepostPolicyDecidedEventArgs.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewHttpAuthRequestedEventArgs.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewResponsePolicyDecidedEventArgs.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewScrollEdgeReachedEventArgs.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewUrlChangedEventArgs.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/WebView/TSWebView.cs

index ccd730f..34da112 100755 (executable)
@@ -5,7 +5,7 @@
   </head>
   <body>
     <h1>Heading </h1>
-    <p>This is arrows photo</p>
-    <img src="./picture.png" alt="arrows" width="150" height="150"/>
+    <p>This is photo</p>
+    <img src="./tizen.png" alt="tizen" />
   </body>
 </html>
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/picture.png b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/picture.png
deleted file mode 100755 (executable)
index 87abefd..0000000
Binary files a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/picture.png and /dev/null differ
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/tizen.png b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/tizen.png
new file mode 100755 (executable)
index 0000000..46b80ab
Binary files /dev/null and b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/tizen.png differ
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/webdb.html b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/webdb.html
new file mode 100755 (executable)
index 0000000..93e26d5
--- /dev/null
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html>
+<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
+<title>Web Database Test Page</title>
+<body>
+<h1>Web Database Test Page</h1>
+
+<div id="result"></div>
+
+<script type="text/javascript">
+    var db = window.openDatabase('cities111', '1.0', 'city stats', 1024);
+    window.onload = function () {
+        if (!window.openDatabase) {
+            document.getElementById("result").innerHTML = "Can't open database.";
+            return;
+        }
+        db.transaction(function (tx) {
+            tx.executeSql('create table if not exists cities (' + 'id integer primary key,' + 'name text,' + 'population integer' + ')', [], null,
+                function (tx, err) {
+                    document.getElementById("result").innerHTML = "Error: " + err.message;
+                }
+            );
+        });
+    };
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/webformpasword.html b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/webformpasword.html
new file mode 100755 (executable)
index 0000000..f84ce3a
--- /dev/null
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<body>
+
+    <h1>Display a Password Field</h1>
+
+    <form action="/action_page.php">
+        <label for="email">Email:</label>
+        <input type="email" id="email" name="email" value="test@test.com"><br><br>
+        <label for="pwd">Password:</label>
+        <input type="password" id="pwd" name="pwd" minlength="8" value="password"><br><br>
+        <input type="submit">
+    </form>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/weblocalfilesystem.html b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/weblocalfilesystem.html
new file mode 100755 (executable)
index 0000000..caab3db
--- /dev/null
@@ -0,0 +1,45 @@
+<html>
+<head>
+    <title>Sample for WebContext.LocalFileSystem apis</title>
+</head>
+<script>
+  window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
+
+  var fs = null;
+
+  function errorHandler(e) {
+    console.log('[JS]: ' + e.name + " : " + e.message);
+    document.title = 'FAILURE';
+  }
+
+  function createFile(fs) {
+    console.log('createFile()');
+    fs.root.getFile('testFile.txt', {create: true, exclusive: false}, function(fileEntry) {
+      fileEntry.createWriter(function(fileWriter) {
+
+        fileWriter.onwriteend = function(e) {
+          console.log('Write completed.');
+          document.title = 'SUCCESS';
+        };
+
+        fileWriter.onerror = function(e) {
+          console.log('Write failed: ' + e.toString());
+          document.title = 'FAILURE';
+        };
+
+        var blob = new Blob(['EFL is great!'], { type: 'text/plain' });
+        fileWriter.write(blob);
+      }, errorHandler);
+
+    }, errorHandler);
+  }
+
+  function initFS() {
+    console.log('initFS()');
+    window.requestFileSystem(window.TEMPORARY, 1024*1024, createFile, errorHandler);
+  }
+</script>
+<body onload="initFS();">
+    <h2>Sample for WebContext.LocalFileSystem apis</h2>
+</body>
+</html>
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/webstorage.html b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/res/webview/webstorage.html
new file mode 100755 (executable)
index 0000000..641cf2d
--- /dev/null
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<body>
+    <div id="result"></div>
+    <script>
+        // Check browser support
+        if (typeof (Storage) !== "undefined") {
+            // Store
+            localStorage.setItem("lastname", "Smith");
+            // Retrieve
+            document.getElementById("result").innerHTML = localStorage.getItem("lastname");
+        } else {
+            document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Storage...";
+        }
+    </script>
+</body>
+</html>
\ No newline at end of file
index 2699fb0..124d29f 100755 (executable)
@@ -3,6 +3,7 @@ using NUnit.Framework;
 using NUnit.Framework.TUnit;
 using Tizen.NUI.Components;
 using Tizen.NUI.BaseComponents;
+using System.Threading.Tasks;
 
 namespace Tizen.NUI.Devel.Tests
 {
@@ -13,17 +14,25 @@ namespace Tizen.NUI.Devel.Tests
     public class InternalWebBackForwardListTest
     {
         private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
+        private string url = $"file://{Applications.Application.Current.DirectoryInfo.Resource}webview/index.html";
+        private string secondUrl = $"file://{Applications.Application.Current.DirectoryInfo.Resource}webview/second.html";
+        private BaseComponents.WebView webView = null;
 
         [SetUp]
         public void Init()
         {
+            webView = new BaseComponents.WebView()
+            {
+                Size = new Size(150, 100),
+            };
             tlog.Info(tag, "Init() is called!");
         }
 
         [TearDown]
         public void Destroy()
         {
+            tlog.Info(tag, "Destroy() is being called!");
+            webView.Dispose();
             tlog.Info(tag, "Destroy() is called!");
         }
 
@@ -35,17 +44,28 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRO")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebBackForwardListConstructor()
+        public async Task WebBackForwardListConstructor()
         {
             tlog.Debug(tag, $"WebBackForwardListConstructor START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tlog.Info(tag, "onLoadFinished is called!");
+                tcs.TrySetResult(true);
+            };
+            webView.PageLoadFinished += onLoadFinished;
+
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked.");
 
-            tlog.Debug(tag, "ItemCount : " + testingTarget.BackForwardList.ItemCount);
+            Assert.IsNotNull(webView.BackForwardList, "null handle");
+            Assert.IsInstanceOf<WebBackForwardList>(webView.BackForwardList, "Should return WebBackForwardList instance.");
+            Assert.Greater(webView.BackForwardList.ItemCount, 0, "ItemCount should be greater than 0.");
+
+            webView.PageLoadFinished -= onLoadFinished;
 
-            testingTarget.Dispose();
             tlog.Debug(tag, $"WebBackForwardListConstructor END (OK)");
         }
 
@@ -57,17 +77,25 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebBackForwardListGetCurrentItem()
+        public async Task WebBackForwardListGetCurrentItem()
         {
             tlog.Debug(tag, $"WebBackForwardListGetCurrentItem START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tlog.Info(tag, "onLoadFinished is called!");
+                tcs.TrySetResult(true);
+            };
+            webView.PageLoadFinished += onLoadFinished;
 
-            tlog.Debug(tag, "GetCurrentItem : " + testingTarget.BackForwardList.GetCurrentItem());
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked.");
+            Assert.IsNotNull(webView.BackForwardList.GetCurrentItem(), "handle should not be null.");
+
+            webView.PageLoadFinished -= onLoadFinished;
 
-            testingTarget.Dispose();
             tlog.Debug(tag, $"WebBackForwardListGetCurrentItem END (OK)");
         }
 
@@ -79,17 +107,33 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebBackForwardListGetPreviousItem()
+        public async Task WebBackForwardListGetPreviousItem()
         {
             tlog.Debug(tag, $"WebBackForwardListGetPreviousItem START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            tlog.Debug(tag, "GetCurrentItem : " + testingTarget.BackForwardList.GetPreviousItem());
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                if (webView.Url.Contains("index.html"))
+                {
+                    tlog.Info(tag, "onLoadFinished is called!");
+                    webView.LoadUrl(secondUrl);
+                }
+                else
+                {
+                    tlog.Info(tag, "onLoadFinished is called!");
+                    tcs.TrySetResult(true);
+                }
+            };
+            webView.PageLoadFinished += onLoadFinished;
+
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+            Assert.IsNotNull(webView.BackForwardList.GetPreviousItem(), "handle should not be null.");
+
+            webView.PageLoadFinished -= onLoadFinished;
 
-            testingTarget.Dispose();
             tlog.Debug(tag, $"WebBackForwardListGetPreviousItem END (OK)");
         }
 
@@ -101,17 +145,34 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebBackForwardListGetNextItem()
+        public async Task WebBackForwardListGetNextItem()
         {
             tlog.Debug(tag, $"WebBackForwardListGetNextItem START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            tlog.Debug(tag, "GetNextItem : " + testingTarget.BackForwardList.GetNextItem());
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                if (webView.Url.Contains("index.html"))
+                {
+                    tlog.Info(tag, "onLoadFinished is called!");
+                    webView.LoadUrl(secondUrl);
+                }
+                else
+                {
+                    tlog.Info(tag, "onLoadFinished is called!");
+                    webView.GoBack();
+                    tcs.TrySetResult(true);
+                }
+            };
+            webView.PageLoadFinished += onLoadFinished;
+
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+            Assert.IsNotNull(webView.BackForwardList.GetNextItem(), "handle should not be null.");
+
+            webView.PageLoadFinished -= onLoadFinished;
 
-            testingTarget.Dispose();
             tlog.Debug(tag, $"WebBackForwardListGetNextItem END (OK)");
         }
 
@@ -123,17 +184,33 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebBackForwardListGetItemAtIndex()
+        public async Task WebBackForwardListGetItemAtIndex()
         {
             tlog.Debug(tag, $"WebBackForwardListGetItemAtIndex START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            tlog.Debug(tag, "GetItemAtIndex : " + testingTarget.BackForwardList.GetItemAtIndex(0));
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                if (webView.Url.Contains("index.html"))
+                {
+                    tlog.Info(tag, "onLoadFinished is called!");
+                    webView.LoadUrl(secondUrl);
+                }
+                else
+                {
+                    tlog.Info(tag, "onLoadFinished is called!");
+                    tcs.TrySetResult(true);
+                }
+            };
+            webView.PageLoadFinished += onLoadFinished;
+
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+            Assert.IsNotNull(webView.BackForwardList.GetItemAtIndex(0), "handle should not be null.");
+
+            webView.PageLoadFinished -= onLoadFinished;
 
-            testingTarget.Dispose();
             tlog.Debug(tag, $"WebBackForwardListGetItemAtIndex END (OK)");
         }
 
@@ -145,17 +222,33 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebBackForwardListGetBackwardItems()
+        public async Task WebBackForwardListGetBackwardItems()
         {
             tlog.Debug(tag, $"WebBackForwardListGetBackwardItems START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            tlog.Debug(tag, "GetBackwardItems : " + testingTarget.BackForwardList.GetBackwardItems(0));
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                if (webView.Url.Contains("index.html"))
+                {
+                    tlog.Info(tag, "onLoadFinished is called!");
+                    webView.LoadUrl(secondUrl);
+                }
+                else
+                {
+                    tlog.Info(tag, "onLoadFinished is called!");
+                    tcs.TrySetResult(true);
+                }
+            };
+            webView.PageLoadFinished += onLoadFinished;
+
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+            Assert.IsNotNull(webView.BackForwardList.GetBackwardItems(2), "handle should not be null.");
+
+            webView.PageLoadFinished -= onLoadFinished;
 
-            testingTarget.Dispose();
             tlog.Debug(tag, $"WebBackForwardListGetBackwardItems END (OK)");
         }
 
@@ -167,17 +260,34 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebBackForwardListGetForwardItems()
+        public async Task WebBackForwardListGetForwardItems()
         {
             tlog.Debug(tag, $"WebBackForwardListGetForwardItems START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            tlog.Debug(tag, "GetForwardItems : " + testingTarget.BackForwardList.GetForwardItems(0));
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                if (webView.Url.Contains("index.html"))
+                {
+                    tlog.Info(tag, "onLoadFinished is called!");
+                    webView.LoadUrl(secondUrl);
+                }
+                else
+                {
+                    tlog.Info(tag, "onLoadFinished is called!");
+                    webView.GoBack();
+                    tcs.TrySetResult(true);
+                }
+            };
+            webView.PageLoadFinished += onLoadFinished;
+
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+            Assert.IsNotNull(webView.BackForwardList.GetForwardItems(2), "handle should not be null.");
+
+            webView.PageLoadFinished -= onLoadFinished;
 
-            testingTarget.Dispose();
             tlog.Debug(tag, $"WebBackForwardListGetForwardItems END (OK)");
         }
 
@@ -189,20 +299,26 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRO")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebBackForwardListItemUrl()
+        public async Task WebBackForwardListItemUrl()
         {
             tlog.Debug(tag, $"WebBackForwardListItemUrl START");
 
-            using (Tizen.NUI.BaseComponents.WebView webView = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
             {
-                var testingTarget = webView.BackForwardList.GetCurrentItem();
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebBackForwardListItem>(testingTarget, "Should return WebBackForwardListItem instance.");
+                tlog.Info(tag, "onLoadFinished is called!");
+                tcs.TrySetResult(true);
+            };
+            webView.PageLoadFinished += onLoadFinished;
 
-                tlog.Debug(tag, "Url : " + testingTarget.Url);
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked.");
 
-                testingTarget.Dispose();
-            }
+            var testingTarget = webView.BackForwardList.GetCurrentItem();
+            Assert.IsNotNull(testingTarget, "Handle should not be null.");
+            Assert.IsNotNull(testingTarget.Url, "Url should not be null.");
+            Assert.IsTrue(testingTarget.Url.Contains("index.html"), "Url of current item should contain a correct string.");
 
             tlog.Debug(tag, $"WebBackForwardListItemUrl END (OK)");
         }
@@ -215,20 +331,26 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRO")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebBackForwardListItemTitle()
+        public async Task WebBackForwardListItemTitle()
         {
             tlog.Debug(tag, $"WebBackForwardListItemTitle START");
 
-            using (Tizen.NUI.BaseComponents.WebView webView = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
             {
-                var testingTarget = webView.BackForwardList.GetCurrentItem();
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebBackForwardListItem>(testingTarget, "Should return WebBackForwardListItem instance.");
+                tlog.Info(tag, "onLoadFinished is called!");
+                tcs.TrySetResult(true);
+            };
+            webView.PageLoadFinished += onLoadFinished;
 
-                tlog.Debug(tag, "Title : " + testingTarget.Title);
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked.");
 
-                testingTarget.Dispose();
-            }
+            var testingTarget = webView.BackForwardList.GetCurrentItem();
+            Assert.IsNotNull(testingTarget, "handle should not be null.");
+            Assert.IsNotNull(testingTarget.Title, "Title should not be null.");
+            Assert.IsTrue(testingTarget.Title.Contains("Title"), "Title of current item should contain a correct string.");
 
             tlog.Debug(tag, $"WebBackForwardListItemTitle END (OK)");
         }
@@ -241,20 +363,26 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRO")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebBackForwardListItemOriginalUrl()
+        public async Task WebBackForwardListItemOriginalUrl()
         {
             tlog.Debug(tag, $"WebBackForwardListItemOriginalUrl START");
 
-            using (Tizen.NUI.BaseComponents.WebView webView = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
             {
-                var testingTarget = webView.BackForwardList.GetCurrentItem();
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebBackForwardListItem>(testingTarget, "Should return WebBackForwardListItem instance.");
-
-                tlog.Debug(tag, "OriginalUrl : " + testingTarget.OriginalUrl);
-
-                testingTarget.Dispose();
-            }
+                tlog.Info(tag, "onLoadFinished is called!");
+                tcs.TrySetResult(true);
+            };
+            webView.PageLoadFinished += onLoadFinished;
+
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked.");
+
+            var testingTarget = webView.BackForwardList.GetCurrentItem();
+            Assert.IsNotNull(testingTarget, "Handle should not be null.");
+            Assert.IsNotNull(testingTarget.OriginalUrl, "Url should not be null.");
+            Assert.IsTrue(testingTarget.OriginalUrl.Contains("index.html"), "Url of current item should contain a correct string.");
 
             tlog.Debug(tag, $"WebBackForwardListItemOriginalUrl END (OK)");
         }
index d2b261a..fc90427 100755 (executable)
@@ -14,31 +14,24 @@ namespace Tizen.NUI.Devel.Tests
     public class InternalWebCertificateTest
     {
         private const string tag = "NUITEST";
-        private static string[] runtimeArgs = { "Tizen.NUI.Devel.Tests", "--enable-dali-window", "--enable-spatial-navigation" };
-        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";
-
-        internal class MyWebCertificate : WebCertificate
-        {
-            public MyWebCertificate(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
-            { }
-
-            public void OnReleaseSwigCPtr(global::System.Runtime.InteropServices.HandleRef swigCPtr)
-            {
-                base.ReleaseSwigCPtr(swigCPtr);
-            }
-        }
+        private string url = $"file://{Applications.Application.Current.DirectoryInfo.Resource}webview/index.html";
+        private BaseComponents.WebView webView = null;
 
         [SetUp]
         public void Init()
         {
+            webView = new BaseComponents.WebView()
+            {
+                Size = new Size(150, 100),
+            };
             tlog.Info(tag, "Init() is called!");
-
-
         }
 
         [TearDown]
         public void Destroy()
         {
+            tlog.Info(tag, "Destroy() is being called!");
+            webView.Dispose();
             tlog.Info(tag, "Destroy() is called!");
         }
 
@@ -50,18 +43,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "CONSTR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebCertificateConstructor()
+        public async Task WebCertificateConstructor()
         {
             tlog.Debug(tag, $"WebCertificateConstructor START");
 
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewCertificateReceivedEventArgs> onSslCertificateChange = (s, e) =>
             {
-                var testingTarget = new WebCertificate(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebCertificate>(testingTarget, "Should return WebCertificate instance.");
+                Assert.IsNotNull(e.Certificate, "null handle");
+                Assert.IsInstanceOf<WebCertificate>(e.Certificate, "Should return WebCertificate instance.");
+                tcs.TrySetResult(true);
+            };
+            webView.SslCertificateChanged += onSslCertificateChange;
+
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "SslCertificateChanged event should be invoked");
 
-                testingTarget.Dispose();
-            }
+            webView.SslCertificateChanged -= onSslCertificateChange;
 
             tlog.Debug(tag, $"WebCertificateConstructor END (OK)");
         }
@@ -78,35 +77,24 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebCertificateIsFromMainFrame START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView(runtimeArgs)
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewCertificateReceivedEventArgs> onSslCertificateChange = (s, e) =>
             {
-                Size = new Size(500, 200),
-                UserAgent = USER_AGENT
+                Assert.IsTrue(e.Certificate.PemData == null || e.Certificate.PemData.Length == 0, "Certificate has no pem data.");
+                Assert.IsFalse(e.Certificate.IsFromMainFrame, "Certificate is not from main frame.");
+                Assert.IsFalse(e.Certificate.IsContextSecure, "Certificate is not context secure.");
+                e.Certificate.Allow(false);
+                tcs.TrySetResult(true);
             };
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return Tizen.NUI.BaseComponents.WebView instance.");
+            webView.SslCertificateChanged += onSslCertificateChange;
 
-            testingTarget.SslCertificateChanged += OnSslCertificateChanged;
-            NUIApplication.GetDefaultWindow().Add(testingTarget);
-            
-            testingTarget.LoadUrl("http://www.baidu.com");
-            await Task.Delay(10000);
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "SslCertificateChanged event should be invoked");
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-            NUIApplication.GetDefaultWindow().Remove(testingTarget);
+            webView.SslCertificateChanged -= onSslCertificateChange;
 
-            testingTarget.Dispose();
             tlog.Debug(tag, $"WebCertificateIsFromMainFrame END (OK)");
         }
-
-        private void OnSslCertificateChanged(object sender, WebViewCertificateReceivedEventArgs e)
-        {
-            tlog.Info(tag, $"ssl certificate changed, PemData: {e.Certificate.PemData}");
-            tlog.Info(tag, $"ssl certificate changed, IsFromMainFrame: {e.Certificate.IsFromMainFrame}");
-            tlog.Info(tag, $"ssl certificate changed, IsContextSecure: {e.Certificate.IsContextSecure}");
-            
-            e.Certificate.Allow(false);
-        }
     }
 }
index 863c26e..88b524e 100755 (executable)
@@ -14,29 +14,24 @@ namespace Tizen.NUI.Devel.Tests
     public class InternalWebConsoleMessageTest
     {
         private const string tag = "NUITEST";
-        private static string[] runtimeArgs = { "Tizen.NUI.Devel.Tests", "--enable-dali-window", "--enable-spatial-navigation" };
-        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";
-
-        internal class MyWebConsoleMessage : WebConsoleMessage
-        {
-            public MyWebConsoleMessage(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
-            { }
-
-            public void OnReleaseSwigCPtr(global::System.Runtime.InteropServices.HandleRef swigCPtr)
-            {
-                base.ReleaseSwigCPtr(swigCPtr);
-            }
-        }
+        private string urlForConsoleMessageTest = $"file://{Applications.Application.Current.DirectoryInfo.Resource}webview/console_info.html";
+        private BaseComponents.WebView webView = null;
 
         [SetUp]
         public void Init()
         {
+            webView = new BaseComponents.WebView()
+            {
+                Size = new Size(150, 100),
+            };
             tlog.Info(tag, "Init() is called!");
         }
 
         [TearDown]
         public void Destroy()
         {
+            tlog.Info(tag, "Destroy() is being called!");
+            webView.Dispose();
             tlog.Info(tag, "Destroy() is called!");
         }
 
@@ -48,18 +43,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "CONSTR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebConsoleMessageConstructor()
+        public async Task WebConsoleMessageConstructor()
         {
             tlog.Debug(tag, $"WebConsoleMessageConstructor START");
 
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewConsoleMessageReceivedEventArgs> onConsoleMessageReceive = (s, e) =>
             {
-                var testingTarget = new WebConsoleMessage(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebConsoleMessage>(testingTarget, "Should return WebConsoleMessage instance.");
+                Assert.IsNotNull(e.ConsoleMessage, "null handle");
+                Assert.IsInstanceOf<WebConsoleMessage>(e.ConsoleMessage, "Should return WebConsoleMessage instance.");
+                tcs.TrySetResult(true);
+            };
+            webView.ConsoleMessageReceived += onConsoleMessageReceive;
+
+            webView.LoadUrl(urlForConsoleMessageTest);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "ConsoleMessageReceived event should be invoked");
 
-                testingTarget.Dispose();
-            }
+            webView.ConsoleMessageReceived -= onConsoleMessageReceive;
 
             tlog.Debug(tag, $"WebConsoleMessageConstructor END (OK)");
         }
@@ -76,34 +77,24 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebConsoleMessageSource START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView(runtimeArgs)
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewConsoleMessageReceivedEventArgs> onConsoleMessageReceive = (s, e) =>
             {
-                Size = new Size(500, 200),
-                UserAgent = USER_AGENT
+                tlog.Info(tag, $"console message, Source: {e.ConsoleMessage.Source}");
+                tlog.Info(tag, $"console message, Line: {e.ConsoleMessage.Line}");
+                tlog.Info(tag, $"console message, Level: {e.ConsoleMessage.Level}");
+                tlog.Info(tag, $"console message, Text: {e.ConsoleMessage.Text}");
+
+                tcs.TrySetResult(true);
             };
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return Tizen.NUI.BaseComponents.WebView instance.");
+            webView.ConsoleMessageReceived += onConsoleMessageReceive;
 
-            testingTarget.ConsoleMessageReceived += OnConsoleMessageReceived;
-            NUIApplication.GetDefaultWindow().Add(testingTarget);
+            webView.LoadUrl(urlForConsoleMessageTest);
+            var result = await tcs.Task;
 
-            testingTarget.LoadUrl("https://www.youtube.com");
-     
-            await Task.Delay(60000);
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-            NUIApplication.GetDefaultWindow().Remove(testingTarget);
+            webView.ConsoleMessageReceived -= onConsoleMessageReceive;
 
-            testingTarget.Dispose();
             tlog.Debug(tag, $"WebConsoleMessageSource END (OK)");
         }
-
-        private void OnConsoleMessageReceived(object sender, WebViewConsoleMessageReceivedEventArgs e)
-        {
-            tlog.Info(tag, $"console message, Source: {e.ConsoleMessage.Source}");
-            tlog.Info(tag, $"console message, Line: {e.ConsoleMessage.Line}");
-            tlog.Info(tag, $"console message, Level: {e.ConsoleMessage.Level}");
-            tlog.Info(tag, $"console message, Text: {e.ConsoleMessage.Text}");
-        }
     }
 }
index f838f8e..94bd7e9 100755 (executable)
@@ -15,16 +15,16 @@ namespace Tizen.NUI.Devel.Tests
     public class InternalWebContextTest
     {
         private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-        private static string[] runtimeArgs = { "Tizen.NUI.Devel.Tests", "--enable-dali-window", "--enable-spatial-navigation" };
-        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";
-
-        private void OriginListAcquiredCallback (IList<WebSecurityOrigin> list) { }
-        private void OnSecurityOriginListAcquired (IList<WebSecurityOrigin> list) { }
-        private void OnStorageUsageAcquired(ulong usage) { }
-        private void PasswordAcquiredCallback (IList<WebPasswordData> list) { }
-        private void DownloadCallback (string url) { }
-        private void UsageAcquiredCallback (ulong usage) { }
+        private string url = $"file://{Tizen.Applications.Application.Current.DirectoryInfo.Resource}webview/index.html";
+        private string urlForDatabase = $"file://{Tizen.Applications.Application.Current.DirectoryInfo.Resource}webview/webdb.html";
+        private string urlForStorage = $"file://{Tizen.Applications.Application.Current.DirectoryInfo.Resource}webview/webstorage.html";
+        private string urlForLocalFileSystem = $"file://{Tizen.Applications.Application.Current.DirectoryInfo.Resource}webview/weblocalfilesystem.html";
+        private string urlForFormPassword = $"file://{Tizen.Applications.Application.Current.DirectoryInfo.Resource}webview/webformpasword.html";
+        private string urlForDownload = "https://codeload.github.com/Samsung/TizenFX/zip/refs/heads/master";
+        private string urlForApplicatonCache = "https://www.google.com/";
+
+        private BaseComponents.WebView webview_ = null;
+
         private bool MimeWrittenCallback(string url, string currentMime, out string newMime) 
         {
             newMime = null;
@@ -34,12 +34,18 @@ namespace Tizen.NUI.Devel.Tests
         [SetUp]
         public void Init()
         {
+            webview_ = new BaseComponents.WebView()
+            {
+                Size = new Size(500, 200),
+            };
             tlog.Info(tag, "Init() is called!");
         }
 
         [TearDown]
         public void Destroy()
         {
+            tlog.Info(tag, "Destroy() is being called!");
+            webview_.Dispose();
             tlog.Info(tag, "Destroy() is called!");
         }
 
@@ -55,21 +61,14 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebContextProxyUrl START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
+            var context = webview_.Context;
             tlog.Debug(tag, "ProxyUrl : " + context.ProxyUrl);
 
             context.ProxyUrl = "http://www.baidu.com";
             tlog.Debug(tag, "ProxyUrl : " + context.ProxyUrl);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextProxyUrl END (OK)");
         }
 
@@ -85,21 +84,14 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebContextCertificateFilePath START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
+            var context = webview_.Context;
             tlog.Debug(tag, "CertificateFilePath : " + context.CertificateFilePath);
 
             context.CertificateFilePath = url;
             tlog.Debug(tag, "CertificateFilePath : " + context.CertificateFilePath);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextCertificateFilePath END (OK)");
         }
 
@@ -115,11 +107,7 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebContextCacheEnabled START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
+            var context = webview_.Context;
             tlog.Debug(tag, "CacheEnabled : " + context.CacheEnabled);
 
             context.CacheEnabled = true;
@@ -128,11 +116,8 @@ namespace Tizen.NUI.Devel.Tests
             context.CacheEnabled = false;
             tlog.Debug(tag, "CacheEnabled : " + context.CacheEnabled);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextCertificateFilePath END (OK)");
         }
 
@@ -148,21 +133,14 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebContextAppId START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
+            var context = webview_.Context;
             tlog.Debug(tag, "AppId : " + context.AppId);
 
             context.AppId = "WebContextAppId";
             tlog.Debug(tag, "AppId : " + context.AppId);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextAppId END (OK)");
         }
 
@@ -178,21 +156,14 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebContextAppVersion START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
+            var context = webview_.Context;
             tlog.Debug(tag, "AppVersion : " + context.AppVersion);
 
             context.AppVersion = "1.0";
             tlog.Debug(tag, "AppVersion : " + context.AppVersion);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextAppVersion END (OK)");
         }
 
@@ -208,21 +179,14 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebContextAppType START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
+            var context = webview_.Context;
             tlog.Debug(tag, "AppType : " + context.AppType);
 
             context.AppType = WebContext.ApplicationType.WebBrowser;
             tlog.Debug(tag, "AppType : " + context.AppType);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextAppType END (OK)");
         }
 
@@ -238,21 +202,14 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebContextTimeOffset START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
+            var context = webview_.Context;
             tlog.Debug(tag, "TimeOffset : " + context.TimeOffset);
 
             context.TimeOffset = 0.3f;
             tlog.Debug(tag, "TimeOffset : " + context.TimeOffset);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextAppType END (OK)");
         }
 
@@ -268,21 +225,14 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebContextDefaultZoomFactor START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
+            var context = webview_.Context;
             tlog.Debug(tag, "DefaultZoomFactor : " + context.DefaultZoomFactor);
 
             context.DefaultZoomFactor = 0.3f;
             tlog.Debug(tag, "DefaultZoomFactor : " + context.DefaultZoomFactor);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextDefaultZoomFactor END (OK)");
         }
 
@@ -298,18 +248,11 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebContextContextProxy START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
+            var context = webview_.Context;
             tlog.Debug(tag, "ContextProxy : " + context.ContextProxy);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextContextProxy END (OK)");
         }
 
@@ -325,56 +268,46 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebContextProxyBypassRule START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
+            var context = webview_.Context;
             tlog.Debug(tag, "ProxyBypassRule : " + context.ProxyBypassRule);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextProxyBypassRule END (OK)");
         }
 
-        [Test]
-        [Category("P1")]
-        [Description("WebContext SetDefaultProxyAuth.")]
-        [Property("SPEC", "Tizen.NUI.WebContext.SetDefaultProxyAuth M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextSetDefaultProxyAuth()
-        {
-            tlog.Debug(tag, $"WebContextSetDefaultProxyAuth START");
-
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
-
-            try
-            {
-                context.SetDefaultProxyAuth("tizen", "samsung");
-            }
-            catch (Exception e)
-            {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
-
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-
-            context.Dispose();
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebContextSetDefaultProxyAuth END (OK)");
-        }
+        //TODO...API would block. Its doc in web engine proposes to avoid using this API.
+        //[Test]
+        //[Category("P1")]
+        //[Description("WebContext SetDefaultProxyAuth.")]
+        //[Property("SPEC", "Tizen.NUI.WebContext.SetDefaultProxyAuth M")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "MR")]
+        //[Property("COVPARAM", "")]
+        //[Property("AUTHOR", "guowei.wang@samsung.com")]
+        //public async Task WebContextSetDefaultProxyAuth()
+        //{
+        //    tlog.Debug(tag, $"WebContextSetDefaultProxyAuth START");
+
+        //    var context = webview_.Context;
+        //    context.SetDefaultProxyAuth("tizen", "samsung");
+
+        //    TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+        //    EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+        //    {
+        //        tcs.TrySetResult(true);
+        //    };
+        //    webview_.PageLoadFinished += onLoadFinished;
+
+        //    webview_.LoadUrl(url);
+        //    var result = await tcs.Task;
+        //    Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+        //    webview_.PageLoadFinished -= onLoadFinished;
+        //    context.Dispose();
+
+        //    tlog.Debug(tag, $"WebContextSetDefaultProxyAuth END (OK)");
+        //}
 
         [Test]
         [Category("P1")]
@@ -384,31 +317,53 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextDeleteAllWebDatabase()
+        public async Task WebContextDeleteAllWebDatabase()
         {
             tlog.Debug(tag, $"WebContextDeleteAllWebDatabase START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            var context = testingTarget.Context;
+            webview_.LoadUrl(urlForDatabase);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            try
+            // Check list count.
+            var context = webview_.Context;
+
+            TaskCompletionSource<int> tcs2 = new TaskCompletionSource<int>(0);
+            WebContext.SecurityOriginListAcquiredCallback cb2 = (list) =>
             {
-                context.DeleteAllWebDatabase();
-            }
-            catch (Exception e)
+                tcs2.TrySetResult(list.Count);
+            };
+            context.GetWebDatabaseOrigins(cb2);
+
+            var result2 = await tcs2.Task;
+            Assert.AreEqual(result2, 0, "GetWebDatabaseOrigins should be called."); //TODO... result2 is 1?
+
+            // Delete all web db.
+            context.DeleteAllWebDatabase();
+
+            // Check list count.
+            TaskCompletionSource<int> tcs3 = new TaskCompletionSource<int>(0);
+            WebContext.SecurityOriginListAcquiredCallback cb3 = (list) =>
             {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+                tcs3.TrySetResult(list.Count);
+            };
+
+            context.GetWebDatabaseOrigins(cb3);
+
+            var result3 = await tcs3.Task;
+            Assert.AreEqual(result3, 0, "GetWebDatabaseOrigins should be called.");
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            webview_.PageLoadFinished -= onLoadFinished;
 
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextDeleteAllWebDatabase END (OK)");
         }
 
@@ -420,31 +375,35 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextGetWebDatabaseOrigins()
+        public async Task WebContextGetWebDatabaseOrigins()
         {
             tlog.Debug(tag, $"WebContextGetWebDatabaseOrigins START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            var context = testingTarget.Context;
+            webview_.LoadUrl(urlForDatabase);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            try
+            var context = webview_.Context;
+            TaskCompletionSource<int> tcs2 = new TaskCompletionSource<int>(0);
+            WebContext.SecurityOriginListAcquiredCallback cb = (list) =>
             {
-                context.GetWebDatabaseOrigins(OriginListAcquiredCallback);
-            }
-            catch (Exception e)
-            {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+                tcs2.TrySetResult(list.Count);
+            };
+            context.GetWebDatabaseOrigins(cb);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            var result2 = await tcs2.Task;
+            Assert.AreEqual(result2, 0, "GetWebDatabaseOrigins should be called.");  //TODO... result2 is 1?
 
             context.Dispose();
-            testingTarget.Dispose();
+            webview_.PageLoadFinished -= onLoadFinished;
+
             tlog.Debug(tag, $"WebContextGetWebDatabaseOrigins END (OK)");
         }
 
@@ -456,37 +415,62 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextDeleteWebDatabase()
+        public async Task WebContextDeleteWebDatabase()
         {
             tlog.Debug(tag, $"WebContextDeleteWebDatabase START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            var context = testingTarget.Context;
+            webview_.LoadUrl(urlForDatabase);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            try
+            var context = webview_.Context;
+            WebSecurityOrigin seo = null;
+            TaskCompletionSource<int> tcs2 = new TaskCompletionSource<int>(0);
+            WebContext.SecurityOriginListAcquiredCallback cb2 = (list) =>
             {
-                using (WebSecurityOrigin origin = new WebSecurityOrigin(testingTarget.SwigCPtr.Handle, false))
+                if (list.Count > 0)
                 {
-                    context.DeleteWebDatabase(origin);
+                    seo = list[0];
                 }
-            }
-            catch (Exception e)
+                tcs2.TrySetResult(list.Count);
+            };
+            context.GetWebDatabaseOrigins(cb2);
+
+            var result2 = await tcs2.Task;
+            Assert.AreEqual(result2, 0, "GetWebDatabaseOrigins should be called.");  //TODO... result2 is 1?
+
+            // Delete db by security origin.
+            tlog.Debug(tag, $"WebContextDeleteWebDatabase, Host: {seo?.Host}");
+            tlog.Debug(tag, $"WebContextDeleteWebDatabase Protocol: {seo?.Protocol}");
+            if (seo != null)
             {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
+                context.DeleteWebDatabase(seo);
             }
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            TaskCompletionSource<int> tcs3 = new TaskCompletionSource<int>(0);
+            WebContext.SecurityOriginListAcquiredCallback cb3 = (list) =>
+            {
+                tcs3.TrySetResult(list.Count);
+            };
+            context.GetWebDatabaseOrigins(cb3);
+
+            var result3 = await tcs3.Task;
+            Assert.AreEqual(result3, 0, "GetWebDatabaseOrigins should be called.");
 
             context.Dispose();
-            testingTarget.Dispose();
+            webview_.PageLoadFinished -= onLoadFinished;
+
             tlog.Debug(tag, $"WebContextDeleteWebDatabase END (OK)");
         }
 
+        //TODO... Web engine blocks!!!!!!
         [Test]
         [Category("P1")]
         [Description("WebContext GetWebStorageOrigins.")]
@@ -499,35 +483,53 @@ namespace Tizen.NUI.Devel.Tests
         {
             tlog.Debug(tag, $"WebContextGetWebStorageUsageForOrigin START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView(runtimeArgs)
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
             {
-                Size = new Size(500, 200),
-                UserAgent = USER_AGENT
+                tcs.TrySetResult(true);
             };
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return Tizen.NUI.BaseComponents.WebView instance.");
+            webview_.PageLoadFinished += onLoadFinished;
 
-            testingTarget.LoadUrl("https://www.youtube.com");
-            await Task.Delay(60000);
+            webview_.LoadUrl(urlForStorage);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            try
+            // Get web storage.
+            var context = webview_.Context;
+            WebSecurityOrigin seo = null;
+            TaskCompletionSource<int> tcs2 = new TaskCompletionSource<int>(0);
+            WebContext.SecurityOriginListAcquiredCallback cb2 = (list) =>
             {
-                var result = testingTarget.Context.GetWebStorageOrigins(OnSecurityOriginListAcquired);
-                tlog.Error(tag, "result : " + result);
-            }
-            catch (Exception e)
+                if (list.Count > 0)
+                {
+                    seo = list[0];
+                }
+                tcs2.TrySetResult(list.Count);
+            };
+            context.GetWebStorageOrigins(cb2);
+
+            var result2 = await tcs2.Task;
+            Assert.AreEqual(result2, 1, "GetWebStorageOrigins should be called.");
+
+            if (seo != null)
             {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
+                TaskCompletionSource<ulong> tcs3 = new TaskCompletionSource<ulong>(0);
+                WebContext.StorageUsageAcquiredCallback cb3 = (usage) =>
+                {
+                    tcs3.TrySetResult(usage);
+                };
+                context.GetWebStorageUsageForOrigin(seo, cb3);
+                var result3 = await tcs3.Task;
+                Assert.Greater(result3, 0, "GetWebStorageUsageForOrigin should be called.");
             }
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            context.Dispose();
+            webview_.PageLoadFinished -= onLoadFinished;
 
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"GetWebStorageOrigins END (OK)");
+            tlog.Debug(tag, $"WebContextGetWebStorageUsageForOrigin END (OK)");
         }
 
+        //TODO... Web engine blocks!!!!!!
         [Test]
         [Category("P1")]
         [Description("WebContext DeleteAllWebStorage.")]
@@ -536,393 +538,463 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextDeleteAllWebStorage()
+        public async Task WebContextDeleteAllWebStorage()
         {
             tlog.Debug(tag, $"WebContextDeleteAllWebStorage START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(urlForStorage);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            var context = testingTarget.Context;
+            var context = webview_.Context;
 
-            try
+            // Check list count.
+            TaskCompletionSource<int> tcs2 = new TaskCompletionSource<int>(0);
+            WebContext.SecurityOriginListAcquiredCallback cb2 = (list) =>
             {
-                context.DeleteAllWebStorage();
-            }
-            catch (Exception e)
+                tcs2.TrySetResult(list.Count);
+            };
+
+            context.GetWebStorageOrigins(cb2);
+
+            var result2 = await tcs2.Task;
+            Assert.Greater(result2, 0, "GetWebStorageOrigins should be called.");
+
+            // Delete all web storage.
+            context.DeleteAllWebStorage();
+
+            // Check list count.
+            TaskCompletionSource<int> tcs3 = new TaskCompletionSource<int>(0);
+            WebContext.SecurityOriginListAcquiredCallback cb3 = (list) =>
             {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+                tcs3.TrySetResult(list.Count);
+            };
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            context.GetWebStorageOrigins(cb3);
 
+            var result3 = await tcs3.Task;
+            Assert.AreEqual(result3, 0, "GetWebStorageOrigins should be called.");
+
+            webview_.PageLoadFinished -= onLoadFinished;
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextDeleteAllWebStorage END (OK)");
         }
 
+        //TODO... Web engine blocks!!!!!!
         [Test]
         [Category("P1")]
-        [Description("WebContext DeleteLocalFileSystem.")]
-        [Property("SPEC", "Tizen.NUI.WebContext.DeleteLocalFileSystem M")]
+        [Description("WebContext DeleteAllWebStorage.")]
+        [Property("SPEC", "Tizen.NUI.WebContext.DeleteWebStorage M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextDeleteLocalFileSystem()
+        public async Task WebContextDeleteWebStorage()
         {
-            tlog.Debug(tag, $"WebContextDeleteLocalFileSystem START");
+            tlog.Debug(tag, $"WebContextDeleteAllWebStorage START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            var context = testingTarget.Context;
+            webview_.LoadUrl(urlForStorage);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            try
+            var context = webview_.Context;
+
+            // Check list count.
+            WebSecurityOrigin seo = null;
+            TaskCompletionSource<int> tcs2 = new TaskCompletionSource<int>(0);
+            WebContext.SecurityOriginListAcquiredCallback cb2 = (list) =>
             {
-                context.DeleteLocalFileSystem();
-            }
-            catch (Exception e)
+                seo = list[0];
+                tcs2.TrySetResult(list.Count);
+            };
+
+            context.GetWebStorageOrigins(cb2);
+
+            var result2 = await tcs2.Task;
+            Assert.Greater(result2, 0, "GetWebStorageOrigins should be called.");
+
+            // Delete web storage.
+            context.DeleteWebStorage(seo);
+
+            // Check list count.
+            TaskCompletionSource<int> tcs3 = new TaskCompletionSource<int>(0);
+            WebContext.SecurityOriginListAcquiredCallback cb3 = (list) =>
             {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+                tcs3.TrySetResult(list.Count);
+            };
+
+            context.GetWebStorageOrigins(cb3);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            var result3 = await tcs3.Task;
+            Assert.AreEqual(result3, 0, "GetWebStorageOrigins should be called.");
 
+            webview_.PageLoadFinished -= onLoadFinished;
             context.Dispose();
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebContextDeleteLocalFileSystem END (OK)");
+
+            tlog.Debug(tag, $"WebContextDeleteAllWebStorage END (OK)");
         }
 
         [Test]
         [Category("P1")]
-        [Description("WebContext GetFormPasswordList.")]
-        [Property("SPEC", "Tizen.NUI.WebContext.GetFormPasswordList M")]
+        [Description("WebContext DeleteLocalFileSystem.")]
+        [Property("SPEC", "Tizen.NUI.WebContext.DeleteLocalFileSystem M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextGetFormPasswordList()
+        public async Task WebContextDeleteLocalFileSystem()
         {
-            tlog.Debug(tag, $"WebContextGetFormPasswordList START");
+            tlog.Debug(tag, $"WebContextDeleteLocalFileSystem START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            var context = testingTarget.Context;
+            webview_.LoadUrl(urlForLocalFileSystem);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            try
-            {
-                context.GetFormPasswordList(PasswordAcquiredCallback);
-            }
-            catch (Exception e)
-            {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+            var context = webview_.Context;
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            // Delete all web local file system.
+            context.DeleteLocalFileSystem();
+            // TODO...list count need be checked, but query API is not wrapped.
 
+            webview_.PageLoadFinished -= onLoadFinished;
             context.Dispose();
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebContextGetFormPasswordList END (OK)");
+
+            tlog.Debug(tag, $"WebContextDeleteLocalFileSystem END (OK)");
         }
 
         [Test]
         [Category("P1")]
-        [Description("WebContext RegisterDownloadStartedCallback.")]
-        [Property("SPEC", "Tizen.NUI.WebContext.RegisterDownloadStartedCallback M")]
+        [Description("WebContext GetFormPasswordList.")]
+        [Property("SPEC", "Tizen.NUI.WebContext.GetFormPasswordList M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextRegisterDownloadStartedCallback()
+        public async Task WebContextGetFormPasswordList()
         {
-            tlog.Debug(tag, $"WebContextRegisterDownloadStartedCallback START");
+            tlog.Debug(tag, $"WebContextGetFormPasswordList START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            var context = testingTarget.Context;
+            webview_.LoadUrl(urlForFormPassword);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            try
-            {
-                context.RegisterDownloadStartedCallback(DownloadCallback);
-            }
-            catch (Exception e)
+            var context = webview_.Context;
+
+            // Check list count.
+            // Check list count.
+            WebPasswordData pd = null;
+            TaskCompletionSource<int> tcs2 = new TaskCompletionSource<int>(0);
+            WebContext.PasswordDataListAcquiredCallback cb2 = (list) =>
             {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+                if (list.Count > 0)
+                {
+                    pd = list[0];
+                }
+                tcs2.TrySetResult(list.Count);
+            };
+
+            context.GetFormPasswordList(cb2);
+
+            var result2 = await tcs2.Task;
+            Assert.AreEqual(result2, 0, "GetFormPasswordList should be called.");
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            tlog.Info(tag, $"WebContextGetFormPasswordList, url: {pd?.Url}");
+            tlog.Info(tag, $"WebContextGetFormPasswordList, FingerprintUsed: {pd?.FingerprintUsed}");
 
+            webview_.PageLoadFinished -= onLoadFinished;
             context.Dispose();
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebContextRegisterDownloadStartedCallback END (OK)");
+
+            tlog.Debug(tag, $"WebContextGetFormPasswordList END (OK)");
         }
 
         [Test]
         [Category("P1")]
-        [Description("WebContext RegisterMimeOverriddenCallback.")]
-        [Property("SPEC", "Tizen.NUI.WebContext.RegisterMimeOverriddenCallback M")]
+        [Description("WebContext DeleteAllFormPasswordData.")]
+        [Property("SPEC", "Tizen.NUI.WebContext.DeleteAllFormPasswordData M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextRegisterMimeOverriddenCallback()
+        public async Task WebContextDeleteAllFormPasswordData()
         {
-            tlog.Debug(tag, $"WebContextRegisterMimeOverriddenCallback START");
+            tlog.Debug(tag, $"WebContextDeleteAllFormPasswordData START");
+
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            webview_.LoadUrl(urlForFormPassword);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            var context = testingTarget.Context;
+            var context = webview_.Context;
 
-            try
+            // Check list count.
+            List<string> pl = new List<string>();
+            TaskCompletionSource<int> tcs2 = new TaskCompletionSource<int>(0);
+            WebContext.PasswordDataListAcquiredCallback cb2 = (list) =>
             {
-                context.RegisterMimeOverriddenCallback(MimeWrittenCallback);
-            }
-            catch (Exception e)
+                if (list.Count > 0)
+                {
+                    pl.Add(list[0].Url);
+                }
+                tcs2.TrySetResult(list.Count);
+            };
+
+            context.GetFormPasswordList(cb2);
+
+            var result2 = await tcs2.Task;
+            Assert.AreEqual(result2, 0, "GetFormPasswordList should be called.");
+
+            // Delete web storage.
+            context.DeleteFormPasswordDataList(pl.ToArray()); //TODO... This API seems not correct.
+            context.DeleteAllFormPasswordData();
+            context.DeleteAllFormCandidateData();
+
+            // Check list count.
+            TaskCompletionSource<int> tcs3 = new TaskCompletionSource<int>(0);
+            WebContext.PasswordDataListAcquiredCallback cb3 = (list) =>
             {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+                tcs3.TrySetResult(list.Count);
+            };
+
+            context.GetFormPasswordList(cb3);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            var result3 = await tcs3.Task;
+            Assert.AreEqual(result3, 0, "GetFormPasswordList should be called.");
 
+            webview_.PageLoadFinished -= onLoadFinished;
             context.Dispose();
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebContextRegisterMimeOverriddenCallback END (OK)");
+
+            tlog.Debug(tag, $"WebContextDeleteAllFormPasswordData END (OK)");
         }
 
         [Test]
         [Category("P1")]
-        [Description("WebContext SetTimeZoneOffset.")]
-        [Property("SPEC", "Tizen.NUI.WebContext.SetTimeZoneOffset M")]
+        [Description("WebContext RegisterDownloadStartedCallback.")]
+        [Property("SPEC", "Tizen.NUI.WebContext.RegisterDownloadStartedCallback M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextSetTimeZoneOffset()
+        public async Task WebContextRegisterDownloadStartedCallback()
         {
-            tlog.Debug(tag, $"WebContextSetTimeZoneOffset START");
-
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
-
-            var context = testingTarget.Context;
+            tlog.Debug(tag, $"WebContextRegisterDownloadStartedCallback START");
 
-            try
-            {
-                context.SetTimeZoneOffset(0.3f, 1.0f);
-            }
-            catch (Exception e)
+            // Check if download or not.
+            var context = webview_.Context;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            WebContext.DownloadStartedCallback dcb = (url) =>
             {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+                tcs.TrySetResult(true);
+            };
+            context.RegisterDownloadStartedCallback(dcb);
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            webview_.LoadUrl(urlForDownload);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "DownloadStartedCallback should be invoked");
 
             context.Dispose();
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebContextSetTimeZoneOffset END (OK)");
+
+            tlog.Debug(tag, $"WebContextRegisterDownloadStartedCallback END (OK)");
         }
 
         [Test]
         [Category("P1")]
-        [Description("WebContext SetContextTimeZoneOffset.")]
-        [Property("SPEC", "Tizen.NUI.WebContext.SetContextTimeZoneOffset M")]
+        [Description("WebContext RegisterMimeOverriddenCallback.")]
+        [Property("SPEC", "Tizen.NUI.WebContext.RegisterMimeOverriddenCallback M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextSetContextTimeZoneOffset()
+        public async Task WebContextRegisterMimeOverriddenCallback()
         {
-            tlog.Debug(tag, $"WebContextSetContextTimeZoneOffset START");
-
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            tlog.Debug(tag, $"WebContextRegisterMimeOverriddenCallback START");
 
-            var context = testingTarget.Context;
+            var context = webview_.Context;
+            context.RegisterMimeOverriddenCallback(MimeWrittenCallback); //TODO... how to test it?
 
-            try
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
             {
-                context.SetContextTimeZoneOffset(0.3f, 1.0f);
-            }
-            catch (Exception e)
-            {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
+            webview_.PageLoadFinished -= onLoadFinished;
             context.Dispose();
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebContextSetContextTimeZoneOffset END (OK)");
+
+            tlog.Debug(tag, $"WebContextRegisterMimeOverriddenCallback END (OK)");
         }
 
         [Test]
         [Category("P1")]
-        [Description("WebContext DeleteAllApplicationCache.")]
-        [Property("SPEC", "Tizen.NUI.WebContext.DeleteAllApplicationCache M")]
+        [Description("WebContext SetTimeZoneOffset.")]
+        [Property("SPEC", "Tizen.NUI.WebContext.SetTimeZoneOffset M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextDeleteAllApplicationCache()
+        public async Task WebContextSetTimeZoneOffset()
         {
-            tlog.Debug(tag, $"WebContextDeleteAllApplicationCache START");
-
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            tlog.Debug(tag, $"WebContextSetTimeZoneOffset START");
 
-            var context = testingTarget.Context;
+            var context = webview_.Context;
+            context.SetTimeZoneOffset(0.3f, 1.0f);
 
-            try
-            {
-                context.DeleteAllApplicationCache();
-            }
-            catch (Exception e)
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
             {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
+            webview_.PageLoadFinished -= onLoadFinished;
             context.Dispose();
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebContextDeleteAllApplicationCache END (OK)");
+
+            tlog.Debug(tag, $"WebContextSetTimeZoneOffset END (OK)");
         }
 
         [Test]
         [Category("P1")]
-        [Description("WebContext DeleteAllWebIndexedDatabase.")]
-        [Property("SPEC", "Tizen.NUI.WebContext.DeleteAllWebIndexedDatabase M")]
+        [Description("WebContext SetContextTimeZoneOffset.")]
+        [Property("SPEC", "Tizen.NUI.WebContext.SetContextTimeZoneOffset M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextDeleteAllWebIndexedDatabase()
+        public async Task WebContextSetContextTimeZoneOffset()
         {
-            tlog.Debug(tag, $"WebContextDeleteAllWebIndexedDatabase START");
-
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            tlog.Debug(tag, $"WebContextSetContextTimeZoneOffset START");
 
-            var context = testingTarget.Context;
+            var context = webview_.Context;
+            context.SetContextTimeZoneOffset(0.3f, 1.0f);
 
-            try
-            {
-                context.DeleteAllWebIndexedDatabase();
-            }
-            catch (Exception e)
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
             {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
+            webview_.PageLoadFinished -= onLoadFinished;
             context.Dispose();
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebContextDeleteAllWebIndexedDatabase END (OK)");
+
+            tlog.Debug(tag, $"WebContextSetContextTimeZoneOffset END (OK)");
         }
 
         [Test]
         [Category("P1")]
-        [Description("WebContext DeleteAllFormPasswordData.")]
-        [Property("SPEC", "Tizen.NUI.WebContext.DeleteAllFormPasswordData M")]
+        [Description("WebContext DeleteAllApplicationCache.")]
+        [Property("SPEC", "Tizen.NUI.WebContext.DeleteAllApplicationCache M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextDeleteAllFormPasswordData()
+        public async Task WebContextDeleteAllApplicationCache()
         {
-            tlog.Debug(tag, $"WebContextDeleteAllFormPasswordData START");
+            tlog.Debug(tag, $"WebContextDeleteAllApplicationCache START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            var context = testingTarget.Context;
+            webview_.LoadUrl(urlForApplicatonCache);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            try
-            {
-                context.DeleteAllFormPasswordData();
-            }
-            catch (Exception e)
-            {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+            var context = webview_.Context;
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            // Delete all web applicaton cache.
+            context.DeleteAllApplicationCache();
+            // TODO...list count need be checked, but query API is not wrapped.
 
+            webview_.PageLoadFinished -= onLoadFinished;
             context.Dispose();
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebContextDeleteAllFormPasswordData END (OK)");
+
+            tlog.Debug(tag, $"WebContextDeleteAllApplicationCache END (OK)");
         }
 
         [Test]
         [Category("P1")]
-        [Description("WebContext DeleteAllFormCandidateData.")]
-        [Property("SPEC", "Tizen.NUI.WebContext.DeleteAllFormCandidateData M")]
+        [Description("WebContext DeleteAllWebIndexedDatabase.")]
+        [Property("SPEC", "Tizen.NUI.WebContext.DeleteAllWebIndexedDatabase M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextDeleteAllFormCandidateData()
+        public async Task WebContextDeleteAllWebIndexedDatabase()
         {
-            tlog.Debug(tag, $"WebContextDeleteAllFormCandidateData START");
+            tlog.Debug(tag, $"WebContextDeleteAllWebIndexedDatabase START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            testingTarget.LoadUrl("http://www.baidu.com");
-            var context = testingTarget.Context;
+            webview_.LoadUrl(urlForApplicatonCache);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            try
-            {
-                context.DeleteAllFormCandidateData();
-            }
-            catch (Exception e)
-            {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+            var context = webview_.Context;
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            // Delete all web indexed db.
+            context.DeleteAllWebIndexedDatabase();
+            // TODO...list count need be checked, but query API is not wrapped.
 
+            webview_.PageLoadFinished -= onLoadFinished;
             context.Dispose();
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebContextDeleteAllFormCandidateData END (OK)");
+
+            tlog.Debug(tag, $"WebContextDeleteAllWebIndexedDatabase END (OK)");
         }
 
         [Test]
@@ -933,32 +1005,29 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextFreeUnusedMemory()
+        public async Task WebContextFreeUnusedMemory()
         {
             tlog.Debug(tag, $"WebContextFreeUnusedMemory START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai");
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return WebView instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
 
-            testingTarget.LoadUrl("http://www.baidu.com");
-            var context = testingTarget.Context;
+            webview_.LoadUrl(urlForApplicatonCache);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
 
-            try
-            {
-                context.FreeUnusedMemory();
-            }
-            catch (Exception e)
-            {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception :  Failed!");
-            }
+            var context = webview_.Context;
 
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
+            // Free unused memory if low memory.
+            context.FreeUnusedMemory();
 
+            webview_.PageLoadFinished -= onLoadFinished;
             context.Dispose();
-            testingTarget.Dispose();
+
             tlog.Debug(tag, $"WebContextFreeUnusedMemory END (OK)");
         }
     }
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebContextMenu.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebContextMenu.cs
deleted file mode 100755 (executable)
index 6552844..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-using System.Threading.Tasks;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebContextMenu")]
-    public class InternalWebContextMenuTest
-    {
-        private const string tag = "NUITEST";
-
-        internal class MyWebContextMenu : WebContextMenu
-        {
-            public MyWebContextMenu(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
-            { }
-
-            public void OnReleaseSwigCPtr(global::System.Runtime.InteropServices.HandleRef swigCPtr)
-            {
-                base.ReleaseSwigCPtr(swigCPtr);
-            }
-        }
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebContextMenu constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebContextMenu.WebContextMenu C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextMenuConstructor()
-        {
-            tlog.Debug(tag, $"WebContextMenuConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                var testingTarget = new WebContextMenu(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebContextMenu>(testingTarget, "Should return WebContextMenu instance.");
-
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebContextMenuConstructor END (OK)");
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebContextMenuItem.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebContextMenuItem.cs
deleted file mode 100755 (executable)
index ea7647d..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests 
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebContextMenuItem")]
-    public class InternalWebContextMenuItemTest
-    {
-        private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-
-        internal class MyWebContextMenuItem : WebContextMenuItem
-        {
-            public MyWebContextMenuItem(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
-            { }
-
-            public void OnReleaseSwigCPtr(global::System.Runtime.InteropServices.HandleRef swigCPtr)
-            {
-                base.ReleaseSwigCPtr(swigCPtr);
-            }
-        }
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebContextMenuItem constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebContextMenuItem.WebContextMenuItem C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebContextMenuItemConstructor()
-        {
-            tlog.Debug(tag, $"WebContextMenuItemConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                WebContextMenu menu = new WebContextMenu(webview.SwigCPtr.Handle, false);
-
-                var testingTarget = new WebContextMenuItem(menu.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebContextMenuItem>(testingTarget, "Should return WebContextMenuItem instance.");
-
-                menu.Dispose();
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebContextMenuItemConstructor END (OK)");
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebFormRepostPolicyDecisionMaker.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebFormRepostPolicyDecisionMaker.cs
deleted file mode 100755 (executable)
index dad9fb7..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-using System.Threading.Tasks;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebFormRepostPolicyDecisionMaker")]
-    public class InternalWebFormRepostPolicyDecisionMakerTest
-    {
-        private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-        private static string[] runtimeArgs = { "Tizen.NUI.Devel.Tests", "--enable-dali-window", "--enable-spatial-navigation" };
-        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";
-
-        internal class MyWebFormRepostPolicyDecisionMaker : WebFormRepostPolicyDecisionMaker
-        {
-            public MyWebFormRepostPolicyDecisionMaker(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
-            { }
-
-            public void OnReleaseSwigCPtr(global::System.Runtime.InteropServices.HandleRef swigCPtr)
-            {
-                base.ReleaseSwigCPtr(swigCPtr);
-            }
-        }
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebFormRepostPolicyDecisionMaker constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebFormRepostPolicyDecisionMaker.WebFormRepostPolicyDecisionMaker C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebFormRepostPolicyDecisionMakerConstructor()
-        {
-            tlog.Debug(tag, $"WebFormRepostPolicyDecisionMakerConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                var testingTarget = new WebFormRepostPolicyDecisionMaker(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebFormRepostPolicyDecisionMaker>(testingTarget, "Should return WebFormRepostPolicyDecisionMaker instance.");
-
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebFormRepostPolicyDecisionMakerConstructor END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebFormRepostPolicyDecisionMaker Reply.")]
-        [Property("SPEC", "Tizen.NUI.WebFormRepostPolicyDecisionMaker.Reply M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public async Task WebFormRepostPolicyDecisionMakerReply()
-        {
-            tlog.Debug(tag, $"WebFormRepostPolicyDecisionMakerReply START");
-
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView(runtimeArgs)
-            {
-                Size = new Size(500, 200),
-                UserAgent = USER_AGENT
-            };
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return Tizen.NUI.BaseComponents.WebView instance.");
-
-            testingTarget.FormRepostPolicyDecided += OnFormRepostPolicyDecided;
-            NUIApplication.GetDefaultWindow().Add(testingTarget);
-
-            testingTarget.LoadUrl("http://www.163.com");
-
-            await Task.Delay(10000);
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-            NUIApplication.GetDefaultWindow().Remove(testingTarget);
-
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebFormRepostPolicyDecisionMakerReply END (OK)");
-        }
-
-        private void OnFormRepostPolicyDecided(object sender, WebViewFormRepostPolicyDecidedEventArgs e)
-        {
-            tlog.Info(tag, $"form repost policy decided");
-            e.FormRepostPolicyDecisionMaker.Reply(false);
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebFrame.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebFrame.cs
deleted file mode 100755 (executable)
index c851378..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebFrame")]
-    public class InternalWebFrameTest
-    {
-        private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebFrame constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebFrame.WebFrame C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebFrameConstructor()
-        {
-            tlog.Debug(tag, $"WebFrameConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                var testingTarget = new WebFrame(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebFrame>(testingTarget, "Should return WebFrame instance.");
-
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebFrameConstructor END (OK)");
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebPasswordData.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebPasswordData.cs
deleted file mode 100755 (executable)
index 9555720..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests 
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebPasswordData")]
-    public class InternalWebPasswordDataTest
-    {
-        private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebPasswordData constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebPasswordData.WebPasswordData C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebPasswordDataConstructor()
-        {
-            tlog.Debug(tag, $"WebPasswordDataConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                var testingTarget = new WebPasswordData(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebPasswordData>(testingTarget, "Should return WebPasswordData instance.");
-
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebPasswordDataConstructor END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebPasswordData FingerprintUsed.")]
-        [Property("SPEC", "Tizen.NUI.WebPasswordData.FingerprintUsed A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRO")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebPasswordDataFingerprintUsed()
-        {
-            tlog.Debug(tag, $"WebPasswordDataFingerprintUsed START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                webview.LoadUrl("http://www.baidu.com");
-
-                var testingTarget = new WebPasswordData(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebPasswordData>(testingTarget, "Should return WebPasswordData instance.");
-
-                var result = testingTarget.FingerprintUsed;
-                tlog.Debug(tag, "FingerprintUsed : " + result);
-
-                webview.ClearCache();
-                webview.ClearCookies();
-
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebPasswordDataFingerprintUsed END (OK)");
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebPasswordDataList.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebPasswordDataList.cs
deleted file mode 100755 (executable)
index 4ca49ce..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebPasswordDataList")]
-    public class InternalWebPasswordDataListTest
-    {
-        private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-
-        internal class MyWebPasswordDataList : WebPasswordDataList
-        {
-            public MyWebPasswordDataList(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
-            { }
-
-            public void OnReleaseSwigCPtr(global::System.Runtime.InteropServices.HandleRef swigCPtr)
-            {
-                base.ReleaseSwigCPtr(swigCPtr);
-            }
-        }
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebPasswordDataList constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebPasswordDataList.WebPasswordDataList C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebPasswordDataListConstructor()
-        {
-            tlog.Debug(tag, $"WebPasswordDataListConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                var testingTarget = new WebPasswordDataList(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebPasswordDataList>(testingTarget, "Should return WebPasswordDataList instance.");
-
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebPasswordDataListConstructor END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebPasswordDataList ItemCount.")]
-        [Property("SPEC", "Tizen.NUI.WebPasswordDataList.ItemCount A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRO")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebPasswordDataListItemCount()
-        {
-            tlog.Debug(tag, $"WebPasswordDataListItemCount START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                webview.LoadUrl(url);
-
-                var testingTarget = new WebPasswordDataList(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebPasswordDataList>(testingTarget, "Should return WebPasswordDataList instance.");
-
-                tlog.Error(tag, "ItemCount : " + testingTarget.ItemCount);
-
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebPasswordDataListItemCount END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebPasswordDataList GetItemAtIndex.")]
-        [Property("SPEC", "Tizen.NUI.WebPasswordDataList.GetItemAtIndex M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebPasswordDataListGetItemAtIndex()
-        {
-            tlog.Debug(tag, $"WebPasswordDataListGetItemAtIndex START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                webview.LoadUrl(url);
-
-                var testingTarget = new WebPasswordDataList(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebPasswordDataList>(testingTarget, "Should return WebPasswordDataList instance.");
-
-                tlog.Error(tag, "Item : " + testingTarget.GetItemAtIndex(0));
-
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebPasswordDataListGetItemAtIndex END (OK)");
-        }
-    }
-}
index 39a4ff8..1c3f4bf 100755 (executable)
@@ -14,72 +14,126 @@ namespace Tizen.NUI.Devel.Tests
     public class InternalWebPolicyDecisionMakerTest
     {
         private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-        private static string[] runtimeArgs = { "Tizen.NUI.Devel.Tests", "--enable-dali-window", "--enable-spatial-navigation" };
-        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";
+        private string urlForResponsePolicyTest = "http://www.samsung.com";
+        private BaseComponents.WebView webView = null;
 
         [SetUp]
         public void Init()
         {
+            webView = new BaseComponents.WebView()
+            {
+                Size = new Size(150, 100),
+            };
             tlog.Info(tag, "Init() is called!");
         }
 
         [TearDown]
         public void Destroy()
         {
+            tlog.Info(tag, "Destroy() is being called!");
+            webView.Dispose();
             tlog.Info(tag, "Destroy() is called!");
         }
 
         [Test]
         [Category("P1")]
         [Description("WebPolicyDecisionMaker Url.")]
-        [Property("SPEC", "Tizen.NUI.WebPolicyDecisionMaker.Url A")]
+        [Property("SPEC", "Tizen.NUI.WebPolicyDecisionMaker.Ignore M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "PRO")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public async Task WebPolicyDecisionMakerUrl()
+        public async Task WebPolicyDecisionMakerIgnore()
         {
-            tlog.Debug(tag, $"ResponsePolicyDecided START");
+            tlog.Debug(tag, $"WebPolicyDecisionMakerIgnore START");
 
-            var testingTarget = new Tizen.NUI.BaseComponents.WebView(runtimeArgs)
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
             {
-                Size = new Size(500, 200),
-                UserAgent = USER_AGENT
+                tlog.Info(tag, $"response policy decided, Url: {e.ResponsePolicyDecisionMaker.Url}");
+                tlog.Info(tag, $"response policy decided, Cookie: {e.ResponsePolicyDecisionMaker.Cookie}");
+                tlog.Info(tag, $"response policy decided, PolicyDecisionType: {e.ResponsePolicyDecisionMaker.PolicyDecisionType}");
+                tlog.Info(tag, $"response policy decided, ResponseMime: {e.ResponsePolicyDecisionMaker.ResponseMime}");
+                tlog.Info(tag, $"response policy decided, ResponseStatusCode: {e.ResponsePolicyDecisionMaker.ResponseStatusCode}");
+                tlog.Info(tag, $"response policy decided, DecisionNavigationType: {e.ResponsePolicyDecisionMaker.DecisionNavigationType}");
+                tlog.Info(tag, $"response policy decided, Scheme: {e.ResponsePolicyDecisionMaker.Scheme}");
+                if (e.ResponsePolicyDecisionMaker.Frame != null)
+                {
+                    tlog.Info(tag, $"response policy decided, Frame.IsMainFrame: {e.ResponsePolicyDecisionMaker.Frame.IsMainFrame}");
+                }
+                e.ResponsePolicyDecisionMaker.Ignore();
+
+                tcs.TrySetResult(true);
             };
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<Tizen.NUI.BaseComponents.WebView>(testingTarget, "Should return Tizen.NUI.BaseComponents.WebView instance.");
+            webView.ResponsePolicyDecided += onResponsePolicyDecide;
 
-            testingTarget.ResponsePolicyDecided += OnResponsePolicyDecided;
-            NUIApplication.GetDefaultWindow().Add(testingTarget);
-            
-            testingTarget.LoadUrl("https://www.youtube.com");
+            webView.LoadUrl(urlForResponsePolicyTest);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
 
-            await Task.Delay(30000);
-            testingTarget.ClearCache();
-            testingTarget.ClearCookies();
-            NUIApplication.GetDefaultWindow().Remove(testingTarget);
+            webView.ResponsePolicyDecided -= onResponsePolicyDecide;
 
-            testingTarget.Dispose();
-            tlog.Debug(tag, $"WebPolicyDecisionMakerUrl END (OK)");
+            tlog.Debug(tag, $"WebPolicyDecisionMakerIgnore END (OK)");
         }
 
-        private void OnResponsePolicyDecided(object sender, WebViewPolicyDecidedEventArgs e)
+        [Test]
+        [Category("P1")]
+        [Description("WebPolicyDecisionMaker Url.")]
+        [Property("SPEC", "Tizen.NUI.WebPolicyDecisionMaker.Suspend M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("COVPARAM", "")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public async Task WebPolicyDecisionMakerSuspend()
         {
-            tlog.Info(tag, $"response policy decided, Url: {e.ResponsePolicyDecisionMaker.Url}");
-            tlog.Info(tag, $"response policy decided, Cookie: {e.ResponsePolicyDecisionMaker.Cookie}");
-            tlog.Info(tag, $"response policy decided, PolicyDecisionType: {e.ResponsePolicyDecisionMaker.PolicyDecisionType}");
-            tlog.Info(tag, $"response policy decided, ResponseMime: {e.ResponsePolicyDecisionMaker.ResponseMime}");
-            tlog.Info(tag, $"response policy decided, ResponseStatusCode: {e.ResponsePolicyDecisionMaker.ResponseStatusCode}");
-            tlog.Info(tag, $"response policy decided, DecisionNavigationType: {e.ResponsePolicyDecisionMaker.DecisionNavigationType}");
-            tlog.Info(tag, $"response policy decided, Scheme: {e.ResponsePolicyDecisionMaker.Scheme}");
-            if (e.ResponsePolicyDecisionMaker.Frame != null)
+            tlog.Debug(tag, $"WebPolicyDecisionMakerSuspend START");
+
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
             {
-                tlog.Info(tag, $"response policy decided, Frame.IsMainFrame: {e.ResponsePolicyDecisionMaker.Frame.IsMainFrame}");
-            }
-            e.ResponsePolicyDecisionMaker.Ignore();
-            e.ResponsePolicyDecisionMaker.Suspend();
-            e.ResponsePolicyDecisionMaker.Use();
+                e.ResponsePolicyDecisionMaker.Suspend();
+
+                tcs.TrySetResult(true);
+            };
+            webView.ResponsePolicyDecided += onResponsePolicyDecide;
+
+            webView.LoadUrl(urlForResponsePolicyTest);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
+
+            webView.ResponsePolicyDecided -= onResponsePolicyDecide;
+
+            tlog.Debug(tag, $"WebPolicyDecisionMakerSuspend END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("WebPolicyDecisionMaker Url.")]
+        [Property("SPEC", "Tizen.NUI.WebPolicyDecisionMaker.Use M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("COVPARAM", "")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public async Task WebPolicyDecisionMakerUse()
+        {
+            tlog.Debug(tag, $"WebPolicyDecisionMakerUse START");
+
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
+            {
+                e.ResponsePolicyDecisionMaker.Use();
+
+                tcs.TrySetResult(true);
+            };
+            webView.ResponsePolicyDecided += onResponsePolicyDecide;
+
+            webView.LoadUrl(urlForResponsePolicyTest);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
+
+            webView.ResponsePolicyDecided -= onResponsePolicyDecide;
+
+            tlog.Debug(tag, $"WebPolicyDecisionMakerUse END (OK)");
         }
     }
 }
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebSecurityOrigin.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebSecurityOrigin.cs
deleted file mode 100755 (executable)
index 4eaa45e..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebSecurityOrigin")]
-    public class InternalWebSecurityOriginTest
-    {
-        private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-        private static string[] runtimeArgs = { "Tizen.NUI.Devel.Tests", "--enable-dali-window", "--enable-spatial-navigation" };
-        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";
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebSecurityOrigin constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebSecurityOrigin.WebSecurityOrigin C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSecurityOriginConstructor()
-        {
-            tlog.Debug(tag, $"WebSecurityOriginConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                var testingTarget = new WebSecurityOrigin(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebSecurityOrigin>(testingTarget, "Should return WebSecurityOrigin instance.");
-
-                testingTarget.Dispose();
-            }
-                
-            tlog.Debug(tag, $"WebSecurityOriginConstructor END (OK)");
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebSecurityOriginList.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebSecurityOriginList.cs
deleted file mode 100755 (executable)
index 683941b..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebSecurityOriginList")]
-    public class InternalWebSecurityOriginListTest
-    {
-        private const string tag = "NUITEST";
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebSecurityOriginList constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebSecurityOriginList.WebSecurityOriginList C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSecurityOriginListConstructor()
-        {
-            tlog.Debug(tag, $"WebSecurityOriginListConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                var testingTarget = new WebSecurityOriginList(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebSecurityOriginList>(testingTarget, "Should return WebSecurityOriginList instance.");
-
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebSecurityOriginListConstructor END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebSecurityOriginList ItemCount.")]
-        [Property("SPEC", "Tizen.NUI.WebSecurityOriginList.ItemCount A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRO")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSecurityOriginListItemCount()
-        {
-            tlog.Debug(tag, $"WebSecurityOriginListItemCount START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                var testingTarget = new WebSecurityOriginList(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebSecurityOriginList>(testingTarget, "Should return WebSecurityOriginList instance.");
-
-                tlog.Debug(tag, "ItemCount : " + testingTarget.ItemCount);
-
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebSecurityOriginListItemCount END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebSecurityOriginList GetItemAtIndex.")]
-        [Property("SPEC", "Tizen.NUI.WebSecurityOriginList.GetItemAtIndex A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRO")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSecurityOriginListGetItemAtIndex()
-        {
-            tlog.Debug(tag, $"WebSecurityOriginListGetItemAtIndex START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                webview.LoadUrl("http://www.baidu.com");
-
-                var testingTarget = new WebSecurityOriginList(webview.SwigCPtr.Handle, false);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebSecurityOriginList>(testingTarget, "Should return WebSecurityOriginList instance.");
-
-                var result = testingTarget.GetItemAtIndex(0);
-                tlog.Debug(tag, "GetItemAtIndex : " + result);
-
-                webview.ClearCache();
-                webview.ClearCookies();
-
-                testingTarget.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebSecurityOriginListGetItemAtIndex END (OK)");
-        }
-    }
-}
index ef9edf2..ae14cc7 100755 (executable)
@@ -3,6 +3,7 @@ using NUnit.Framework;
 using NUnit.Framework.TUnit;
 using Tizen.NUI.Components;
 using Tizen.NUI.BaseComponents;
+using System.Threading.Tasks;
 
 namespace Tizen.NUI.Devel.Tests
 {
@@ -13,32 +14,25 @@ namespace Tizen.NUI.Devel.Tests
     public class InternalWebSettingsTest
     {
         private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
+        private string url = $"file://{Tizen.Applications.Application.Current.DirectoryInfo.Resource}webview/index.html";
 
-        private static string[] runtimeArgs = { "Tizen.NUI.Devel.Tests", "--enable-dali-window", "--enable-spatial-navigation" };
-        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";
-        private Tizen.NUI.BaseComponents.WebView webView = null;
+        private BaseComponents.WebView webview_ = null;
 
         [SetUp]
         public void Init()
         {
             tlog.Info(tag, "Init() is called!");
-
-            webView = new Tizen.NUI.BaseComponents.WebView(runtimeArgs)
+            webview_ = new BaseComponents.WebView()
             {
                 Size = new Size(500, 200),
-                UserAgent = USER_AGENT
             };
-
-            webView.LoadUrl("http://www.baidu.com");
         }
 
         [TearDown]
         public void Destroy()
         {
-            webView.ClearCache();
-            webView.ClearCookies();
-            webView.Dispose();
+            tlog.Info(tag, "Destroy() is being called!");
+            webview_.Dispose();
             tlog.Info(tag, "Destroy() is called!");
         }
 
@@ -50,11 +44,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsMixedContentsAllowed()
+        public async Task WebSettingsMixedContentsAllowed()
         {
             tlog.Debug(tag, $"WebSettingsMixedContentsAllowed START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "MixedContentsAllowed : " + webSettings.MixedContentsAllowed);
 
             webSettings.MixedContentsAllowed = true;
@@ -75,11 +82,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsSpatialNavigationEnabled()
+        public async Task WebSettingsSpatialNavigationEnabled()
         {
             tlog.Debug(tag, $"WebSettingsSpatialNavigationEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "SpatialNavigationEnabled : " + webSettings.SpatialNavigationEnabled);
 
             webSettings.SpatialNavigationEnabled = true;
@@ -100,11 +120,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsWebSecurityEnabled()
+        public async Task WebSettingsWebSecurityEnabled()
         {
             tlog.Debug(tag, $"WebSettingsWebSecurityEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "WebSecurityEnabled : " + webSettings.WebSecurityEnabled);
 
             webSettings.WebSecurityEnabled = true;
@@ -125,11 +158,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsCacheBuilderEnabled()
+        public async Task WebSettingsCacheBuilderEnabled()
         {
             tlog.Debug(tag, $"WebSettingsCacheBuilderEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "CacheBuilderEnabled : " + webSettings.CacheBuilderEnabled);
 
             webSettings.CacheBuilderEnabled = true;
@@ -150,11 +196,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsDoNotTrackEnabled()
+        public async Task WebSettingsDoNotTrackEnabled()
         {
             tlog.Debug(tag, $"WebSettingsDoNotTrackEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "DoNotTrackEnabled : " + webSettings.DoNotTrackEnabled);
 
             webSettings.DoNotTrackEnabled = true;
@@ -175,11 +234,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsScrollbarThumbFocusNotificationsUsed()
+        public async Task WebSettingsScrollbarThumbFocusNotificationsUsed()
         {
             tlog.Debug(tag, $"WebSettingsScrollbarThumbFocusNotificationsUsed START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "ScrollbarThumbFocusNotificationsUsed : " + webSettings.ScrollbarThumbFocusNotificationsUsed);
 
             webSettings.ScrollbarThumbFocusNotificationsUsed = true;
@@ -200,11 +272,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsFileAccessFromExternalUrlAllowed()
+        public async Task WebSettingsFileAccessFromExternalUrlAllowed()
         {
             tlog.Debug(tag, $"WebSettingsFileAccessFromExternalUrlAllowed START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "FileAccessFromExternalUrlAllowed : " + webSettings.FileAccessFromExternalUrlAllowed);
 
             webSettings.FileAccessFromExternalUrlAllowed = true;
@@ -225,11 +310,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsAutoFittingEnabled()
+        public async Task WebSettingsAutoFittingEnabled()
         {
             tlog.Debug(tag, $"WebSettingsAutoFittingEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "AutoFittingEnabled : " + webSettings.AutoFittingEnabled);
 
             webSettings.AutoFittingEnabled = true;
@@ -250,11 +348,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsPluginsEnabled()
+        public async Task WebSettingsPluginsEnabled()
         {
             tlog.Debug(tag, $"WebSettingsPluginsEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "PluginsEnabled : " + webSettings.PluginsEnabled);
 
             webSettings.PluginsEnabled = true;
@@ -275,11 +386,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsPrivateBrowsingEnabled()
+        public async Task WebSettingsPrivateBrowsingEnabled()
         {
             tlog.Debug(tag, $"WebSettingsPrivateBrowsingEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "PrivateBrowsingEnabled : " + webSettings.PrivateBrowsingEnabled);
 
             webSettings.PrivateBrowsingEnabled = true;
@@ -300,11 +424,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsLinkMagnifierEnabled()
+        public async Task WebSettingsLinkMagnifierEnabled()
         {
             tlog.Debug(tag, $"WebSettingsLinkMagnifierEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "LinkMagnifierEnabled : " + webSettings.LinkMagnifierEnabled);
 
             webSettings.LinkMagnifierEnabled = true;
@@ -325,11 +462,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsKeypadWithoutUserActionUsed()
+        public async Task WebSettingsKeypadWithoutUserActionUsed()
         {
             tlog.Debug(tag, $"WebSettingsKeypadWithoutUserActionUsed START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "KeypadWithoutUserActionUsed : " + webSettings.KeypadWithoutUserActionUsed);
 
             webSettings.KeypadWithoutUserActionUsed = true;
@@ -350,11 +500,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsAutofillPasswordFormEnabled()
+        public async Task WebSettingsAutofillPasswordFormEnabled()
         {
             tlog.Debug(tag, $"WebSettingsAutofillPasswordFormEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "AutofillPasswordFormEnabled : " + webSettings.AutofillPasswordFormEnabled);
 
             webSettings.AutofillPasswordFormEnabled = true;
@@ -375,11 +538,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsFormCandidateDataEnabled()
+        public async Task WebSettingsFormCandidateDataEnabled()
         {
             tlog.Debug(tag, $"WebSettingsFormCandidateDataEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "FormCandidateDataEnabled : " + webSettings.FormCandidateDataEnabled);
 
             webSettings.FormCandidateDataEnabled = true;
@@ -400,11 +576,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsTextSelectionEnabled()
+        public async Task WebSettingsTextSelectionEnabled()
         {
             tlog.Debug(tag, $"WebSettingsTextSelectionEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "TextSelectionEnabled : " + webSettings.TextSelectionEnabled);
 
             webSettings.TextSelectionEnabled = true;
@@ -425,11 +614,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsTextAutosizingEnabled()
+        public async Task WebSettingsTextAutosizingEnabled()
         {
             tlog.Debug(tag, $"WebSettingsTextAutosizingEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "TextAutosizingEnabled : " + webSettings.TextAutosizingEnabled);
 
             webSettings.TextAutosizingEnabled = true;
@@ -450,11 +652,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsArrowScrollEnabled()
+        public async Task WebSettingsArrowScrollEnabled()
         {
             tlog.Debug(tag, $"WebSettingsArrowScrollEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "ArrowScrollEnabled : " + webSettings.ArrowScrollEnabled);
 
             webSettings.ArrowScrollEnabled = true;
@@ -475,11 +690,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsClipboardEnabled()
+        public async Task WebSettingsClipboardEnabled()
         {
             tlog.Debug(tag, $"WebSettingsClipboardEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "ClipboardEnabled : " + webSettings.ClipboardEnabled);
 
             webSettings.ClipboardEnabled = true;
@@ -500,11 +728,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsImePanelEnabled()
+        public async Task WebSettingsImePanelEnabled()
         {
             tlog.Debug(tag, $"WebSettingsImePanelEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "ImePanelEnabled : " + webSettings.ImePanelEnabled);
 
             webSettings.ImePanelEnabled = true;
@@ -525,11 +766,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsScriptsOpenWindowsAllowed()
+        public async Task WebSettingsScriptsOpenWindowsAllowed()
         {
             tlog.Debug(tag, $"WebSettingsScriptsOpenWindowsAllowed START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "ScriptsOpenWindowsAllowed : " + webSettings.ScriptsOpenWindowsAllowed);
 
             webSettings.ScriptsOpenWindowsAllowed = true;
@@ -550,11 +804,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsViewportMetaTag()
+        public async Task WebSettingsViewportMetaTag()
         {
             tlog.Debug(tag, $"WebSettingsViewportMetaTag START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "ViewportMetaTag : " + webSettings.ViewportMetaTag);
 
             webSettings.ViewportMetaTag = true;
@@ -575,11 +842,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsZoomForced()
+        public async Task WebSettingsZoomForced()
         {
             tlog.Debug(tag, $"WebSettingsZoomForced START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "ZoomForced : " + webSettings.ZoomForced);
 
             webSettings.ZoomForced = true;
@@ -600,11 +880,24 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "PRW")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsTextZoomEnabled()
+        public async Task WebSettingsTextZoomEnabled()
         {
             tlog.Debug(tag, $"WebSettingsTextZoomEnabled START");
 
-            var webSettings = webView.Settings;
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
+            {
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
             tlog.Debug(tag, "TextZoomEnabled : " + webSettings.TextZoomEnabled);
 
             webSettings.TextZoomEnabled = true;
@@ -625,24 +918,30 @@ namespace Tizen.NUI.Devel.Tests
         [Property("CRITERIA", "MR")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebSettingsEnableExtraFeature()
+        public async Task WebSettingsEnableExtraFeature()
         {
             tlog.Debug(tag, $"WebSettingsEnableExtraFeature START");
 
-            var webSettings = webView.Settings;
-
-            try
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
             {
-                webSettings.EnableExtraFeature("TextFontEnabled", false);
-                tlog.Debug(tag, "IsExtraFeatureEnabled : " + webSettings.IsExtraFeatureEnabled("TextFontEnabled"));
-            }
-            catch (Exception e)
-            {
-                tlog.Debug(tag, e.Message.ToString());
-                Assert.Fail("Caught Exception : Failed!");
-            }
+                tcs.TrySetResult(true);
+            };
+            webview_.PageLoadFinished += onLoadFinished;
+
+            webview_.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "PageLoadFinished event should be invoked");
+
+            webview_.PageLoadFinished -= onLoadFinished;
+
+            var webSettings = webview_.Settings;
+
+            bool newValue = !webSettings.IsExtraFeatureEnabled("longpress,enable");
+            webSettings.EnableExtraFeature("longpress,enable", newValue);
 
             webSettings.Dispose();
+
             tlog.Debug(tag, $"WebSettingsEnableExtraFeature END (OK)");
         }
     }
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewCertificateReceivedEventArgs.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewCertificateReceivedEventArgs.cs
deleted file mode 100755 (executable)
index 4a85e74..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebViewCertificateReceivedEventArgs")]
-    public class InternalWebViewCertificateReceivedEventArgsTest
-    {
-        private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebViewCertificateReceivedEventArgs constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebViewCertificateReceivedEventArgs.WebViewCertificateReceivedEventArgs C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewCertificateReceivedEventArgsConstructor()
-        {
-            tlog.Debug(tag, $"WebViewCertificateReceivedEventArgsConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                WebCertificate certificate = new WebCertificate(webview.SwigCPtr.Handle, false);
-
-                var testingTarget = new WebViewCertificateReceivedEventArgs(certificate);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebViewCertificateReceivedEventArgs>(testingTarget, "Should return WebViewCertificateReceivedEventArgs instance.");
-
-                certificate.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebViewCertificateReceivedEventArgsConstructor END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebViewCertificateReceivedEventArgs Certificate .")]
-        [Property("SPEC", "Tizen.NUI.WebViewCertificateReceivedEventArgs.Certificate  A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRO")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewCertificateReceivedEventArgsCertificate()
-        {
-            tlog.Debug(tag, $"WebViewCertificateReceivedEventArgsCertificate START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                WebCertificate certificate = new WebCertificate(webview.SwigCPtr.Handle, false);
-
-                var testingTarget = new WebViewCertificateReceivedEventArgs(certificate);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebViewCertificateReceivedEventArgs>(testingTarget, "Should return WebViewCertificateReceivedEventArgs instance.");
-
-                var result = testingTarget.Certificate;
-                tlog.Debug(tag, "Certificate : " + result);
-
-                certificate.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebViewCertificateReceivedEventArgsCertificate END (OK)");
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewConsoleMessageReceivedEventArgs.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewConsoleMessageReceivedEventArgs.cs
deleted file mode 100755 (executable)
index df3baee..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebViewConsoleMessageReceivedEventArgs")]
-    public class InternalWebViewConsoleMessageReceivedEventArgsTest
-    {
-        private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebViewConsoleMessageReceivedEventArgs constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebViewConsoleMessageReceivedEventArgs.WebViewConsoleMessageReceivedEventArgs C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewConsoleMessageReceivedEventArgsConstructor()
-        {
-            tlog.Debug(tag, $"WebViewConsoleMessageReceivedEventArgsConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                WebConsoleMessage message = new WebConsoleMessage(webview.SwigCPtr.Handle, false);
-
-                var testingTarget = new WebViewConsoleMessageReceivedEventArgs(message);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebViewConsoleMessageReceivedEventArgs>(testingTarget, "Should return WebViewConsoleMessageReceivedEventArgs instance.");
-
-                message.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebViewConsoleMessageReceivedEventArgsConstructor END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebViewConsoleMessageReceivedEventArgs ConsoleMessage.")]
-        [Property("SPEC", "Tizen.NUI.WebViewConsoleMessageReceivedEventArgs.ConsoleMessage A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRO")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewConsoleMessageReceivedEventArgsConsoleMessage()
-        {
-            tlog.Debug(tag, $"WebViewConsoleMessageReceivedEventArgsConsoleMessage START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                WebConsoleMessage message = new WebConsoleMessage(webview.SwigCPtr.Handle, false);
-
-                var testingTarget = new WebViewConsoleMessageReceivedEventArgs(message);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebViewConsoleMessageReceivedEventArgs>(testingTarget, "Should return WebViewConsoleMessageReceivedEventArgs instance.");
-
-                var result = testingTarget.ConsoleMessage;
-                tlog.Debug(tag, "ConsoleMessage : " + result);
-
-                message.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebViewConsoleMessageReceivedEventArgsConsoleMessage END (OK)");
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewContextMenuHiddenEventArgs.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewContextMenuHiddenEventArgs.cs
deleted file mode 100755 (executable)
index 9e83f79..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebViewContextMenuHiddenEventArgs")]
-    public class InternalWebViewContextMenuHiddenEventArgsTest
-    {
-        private const string tag = "NUITEST";
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewContextMenuShownEventArgs.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewContextMenuShownEventArgs.cs
deleted file mode 100755 (executable)
index 1d5e5b3..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebViewContextMenuShownEventArgs")]
-    public class InternalWebViewContextMenuShownEventArgsTest
-    {
-        private const string tag = "NUITEST";
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewFormRepostPolicyDecidedEventArgs.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewFormRepostPolicyDecidedEventArgs.cs
deleted file mode 100755 (executable)
index 938cec7..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebViewFormRepostPolicyDecidedEventArgs")]
-    public class InternalWebViewFormRepostPolicyDecidedEventArgsTest
-    {
-        private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebViewFormRepostPolicyDecidedEventArgs constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebViewFormRepostPolicyDecidedEventArgs.WebViewFormRepostPolicyDecidedEventArgs C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewFormRepostPolicyDecidedEventArgsConstructor()
-        {
-            tlog.Debug(tag, $"WebViewFormRepostPolicyDecidedEventArgsConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                WebFormRepostPolicyDecisionMaker maker = new WebFormRepostPolicyDecisionMaker(webview.SwigCPtr.Handle, false);
-
-                var testingTarget = new WebViewFormRepostPolicyDecidedEventArgs(maker);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebViewFormRepostPolicyDecidedEventArgs>(testingTarget, "Should return WebViewFormRepostPolicyDecidedEventArgs instance.");
-
-                maker.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebViewFormRepostPolicyDecidedEventArgsConstructor END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebViewFormRepostPolicyDecidedEventArgs FormRepostPolicyDecisionMaker.")]
-        [Property("SPEC", "Tizen.NUI.WebViewFormRepostPolicyDecidedEventArgs.FormRepostPolicyDecisionMaker A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRO")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewFormRepostPolicyDecidedEventArgsFormRepostPolicyDecisionMaker()
-        {
-            tlog.Debug(tag, $"WebViewFormRepostPolicyDecidedEventArgsFormRepostPolicyDecisionMaker START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                WebFormRepostPolicyDecisionMaker maker = new WebFormRepostPolicyDecisionMaker(webview.SwigCPtr.Handle, false);
-
-                var testingTarget = new WebViewFormRepostPolicyDecidedEventArgs(maker);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebViewFormRepostPolicyDecidedEventArgs>(testingTarget, "Should return WebViewFormRepostPolicyDecidedEventArgs instance.");
-
-                var result = testingTarget.FormRepostPolicyDecisionMaker;
-                tlog.Debug(tag, "FormRepostPolicyDecisionMaker : " + result);
-
-                maker.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebViewFormRepostPolicyDecidedEventArgsFormRepostPolicyDecisionMaker END (OK)");
-        }
-    }
-}
index c236abc..813ae66 100755 (executable)
@@ -70,12 +70,7 @@ namespace Tizen.NUI.Devel.Tests
                 WebHttpAuthHandler handler = new WebHttpAuthHandler(webview.SwigCPtr.Handle, false);
 
                 var testingTarget = new WebViewHttpAuthRequestedEventArgs(handler);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebViewHttpAuthRequestedEventArgs>(testingTarget, "Should return WebViewHttpAuthRequestedEventArgs instance.");
-
-                var result = testingTarget.HttpAuthHandler;
-                tlog.Debug(tag, "HttpAuthHandler : " + result);
-
+                
                 handler.Dispose();
             }
 
index 57bb85f..f189a95 100755 (executable)
@@ -3,6 +3,7 @@ using NUnit.Framework;
 using NUnit.Framework.TUnit;
 using Tizen.NUI.Components;
 using Tizen.NUI.BaseComponents;
+using System.Threading.Tasks;
 
 namespace Tizen.NUI.Devel.Tests
 {
@@ -13,73 +14,58 @@ namespace Tizen.NUI.Devel.Tests
     public class InternalWebViewResponsePolicyDecidedEventArgsTest
     {
         private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
+        private string urlForResponsePolicyTest = "http://www.samsung.com";
+        private BaseComponents.WebView webView = null;
 
         [SetUp]
         public void Init()
         {
+            webView = new BaseComponents.WebView()
+            {
+                Size = new Size(150, 100),
+            };
             tlog.Info(tag, "Init() is called!");
         }
 
         [TearDown]
         public void Destroy()
         {
+            tlog.Info(tag, "Destroy() is being called!");
+            webView.Dispose();
             tlog.Info(tag, "Destroy() is called!");
         }
 
         [Test]
         [Category("P1")]
-        [Description("WebViewPolicyDecidedEventArgs constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebViewPolicyDecidedEventArgs.WebViewPolicyDecidedEventArgs C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewPolicyDecidedEventArgsConstructor()
-        {
-            tlog.Debug(tag, $"WebViewPolicyDecidedEventArgsConstructor START");
-
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
-            {
-                WebPolicyDecisionMaker maker = new WebPolicyDecisionMaker(webview.SwigCPtr.Handle, false);
-
-                var testingTarget = new WebViewPolicyDecidedEventArgs(maker);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebViewPolicyDecidedEventArgs>(testingTarget, "Should return WebViewPolicyDecidedEventArgs instance.");
-
-                maker.Dispose();
-            }
-
-            tlog.Debug(tag, $"WebViewPolicyDecidedEventArgsConstructor END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebViewPolicyDecidedEventArgs ResponsePolicyDecisionMaker.")]
-        [Property("SPEC", "Tizen.NUI.WebViewPolicyDecidedEventArgs.ResponsePolicyDecisionMaker A")]
+        [Description("WebPolicyDecisionMaker Url.")]
+        [Property("SPEC", "Tizen.NUI.WebPolicyDecisionMaker.Ignore M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "PRO")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewPolicyDecidedEventArgsResponsePolicyDecisionMaker()
+        public async Task WebPolicyDecisionMakerIgnore()
         {
-            tlog.Debug(tag, $"WebViewPolicyDecidedEventArgsResponsePolicyDecisionMaker  START");
+            tlog.Debug(tag, $"ResponsePolicyDecided START");
 
-            using (Tizen.NUI.BaseComponents.WebView webview = new Tizen.NUI.BaseComponents.WebView("Shanghai", "Asia/Shanghai"))
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+            EventHandler<WebViewPolicyDecidedEventArgs> onResponsePolicyDecide = (s, e) =>
             {
-                WebPolicyDecisionMaker maker = new WebPolicyDecisionMaker(webview.SwigCPtr.Handle, false);
+                Assert.IsNotNull(e.ResponsePolicyDecisionMaker, "null handle");
+                Assert.IsInstanceOf<WebPolicyDecisionMaker>(e.ResponsePolicyDecisionMaker, "Should return WebViewPolicyDecidedEventArgs instance.");
+
+                e.ResponsePolicyDecisionMaker.Ignore();
 
-                var testingTarget = new WebViewPolicyDecidedEventArgs(maker);
-                Assert.IsNotNull(testingTarget, "null handle");
-                Assert.IsInstanceOf<WebViewPolicyDecidedEventArgs>(testingTarget, "Should return WebViewPolicyDecidedEventArgs instance.");
+                tcs.TrySetResult(true);
+            };
+            webView.ResponsePolicyDecided += onResponsePolicyDecide;
 
-                var result = testingTarget.ResponsePolicyDecisionMaker;
-                tlog.Debug(tag, "ResponsePolicyDecisionMaker : " + result);
+            webView.LoadUrl(urlForResponsePolicyTest);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "ResponsePolicyDecided event should be invoked");
 
-                maker.Dispose();
-            }
+            webView.ResponsePolicyDecided -= onResponsePolicyDecide;
 
-            tlog.Debug(tag, $"WebViewPolicyDecidedEventArgsResponsePolicyDecisionMaker  END (OK)");
+            tlog.Debug(tag, $"WebPolicyDecisionMakerUrl END (OK)");
         }
     }
 }
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewScrollEdgeReachedEventArgs.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/WebView/TSWebViewScrollEdgeReachedEventArgs.cs
deleted file mode 100755 (executable)
index 92cd0c1..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-using global::System;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using tlog = Tizen.Log;
-
-    [TestFixture]
-    [Description("internal/WebView/WebViewScrollEdgeReachedEventArgs")]
-    public class InternalWebViewScrollEdgeReachedEventArgsTest
-    {
-        private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-
-        [SetUp]
-        public void Init()
-        {
-            tlog.Info(tag, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            tlog.Info(tag, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebViewScrollEdgeReachedEventArgs constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebViewScrollEdgeReachedEventArgs.WebViewScrollEdgeReachedEventArgs C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewScrollEdgeReachedEventArgsConstructor()
-        {
-            tlog.Debug(tag, $"WebViewScrollEdgeReachedEventArgsConstructor START");
-
-            var testingTarget = new WebViewScrollEdgeReachedEventArgs(WebViewScrollEdgeReachedEventArgs.Edge.Right);
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<WebViewScrollEdgeReachedEventArgs>(testingTarget, "Should return WebViewScrollEdgeReachedEventArgs instance.");
-
-            tlog.Debug(tag, $"WebViewScrollEdgeReachedEventArgsConstructor END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("WebViewScrollEdgeReachedEventArgs ScrollEdge.")]
-        [Property("SPEC", "Tizen.NUI.WebViewScrollEdgeReachedEventArgs.ScrollEdge A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRO")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewScrollEdgeReachedEventArgsScrollEdge()
-        {
-            tlog.Debug(tag, $"WebViewScrollEdgeReachedEventArgsScrollEdge START");
-
-            var testingTarget = new WebViewScrollEdgeReachedEventArgs(WebViewScrollEdgeReachedEventArgs.Edge.Right);
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<WebViewScrollEdgeReachedEventArgs>(testingTarget, "Should return WebViewScrollEdgeReachedEventArgs instance.");
-
-            var result = testingTarget.ScrollEdge;
-            tlog.Debug(tag, "ScrollEdge : " + result);
-
-            tlog.Debug(tag, $"WebViewScrollEdgeReachedEventArgsScrollEdge END (OK)");
-        }
-    }
-}
index 3677df7..1cea2a0 100755 (executable)
@@ -3,6 +3,7 @@ using NUnit.Framework;
 using NUnit.Framework.TUnit;
 using Tizen.NUI.Components;
 using Tizen.NUI.BaseComponents;
+using System.Threading.Tasks;
 
 namespace Tizen.NUI.Devel.Tests
 {
@@ -13,56 +14,56 @@ namespace Tizen.NUI.Devel.Tests
     public class InternalWebViewUrlChangedEventArgsTest
     {
         private const string tag = "NUITEST";
-        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
+        private string url = $"file://{Applications.Application.Current.DirectoryInfo.Resource}webview/index.html";
+        private BaseComponents.WebView webView = null;
 
         [SetUp]
         public void Init()
         {
+            webView = new BaseComponents.WebView()
+            {
+                Size = new Size(150, 100),
+            };
             tlog.Info(tag, "Init() is called!");
         }
 
         [TearDown]
         public void Destroy()
         {
+            tlog.Info(tag, "Destroy() is being called!");
+            webView.Dispose();
             tlog.Info(tag, "Destroy() is called!");
         }
 
         [Test]
         [Category("P1")]
-        [Description("WebViewUrlChangedEventArgs constructor.")]
-        [Property("SPEC", "Tizen.NUI.WebViewUrlChangedEventArgs.WebViewUrlChangedEventArgs C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewUrlChangedEventArgsConstructor()
-        {
-            tlog.Debug(tag, $"WebViewUrlChangedEventArgsConstructor START");
-
-            var testingTarget = new WebViewUrlChangedEventArgs(url);
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<WebViewUrlChangedEventArgs>(testingTarget, "Should return WebViewUrlChangedEventArgs instance.");
-
-            tlog.Debug(tag, $"WebViewUrlChangedEventArgsConstructor END (OK)");
-        }
-
-        [Test]
-        [Category("P1")]
         [Description("WebViewUrlChangedEventArgs NewPageUrl .")]
         [Property("SPEC", "Tizen.NUI.WebViewUrlChangedEventArgs.NewPageUrl A")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "PRO")]
         [Property("COVPARAM", "")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void WebViewUrlChangedEventArgsNewPageUrl()
+        public async Task WebViewUrlChangedEventArgsNewPageUrl()
         {
             tlog.Debug(tag, $"WebViewUrlChangedEventArgsNewPageUrl START");
 
-            var testingTarget = new WebViewUrlChangedEventArgs(url);
-            Assert.IsNotNull(testingTarget, "null handle");
-            Assert.IsInstanceOf<WebViewUrlChangedEventArgs>(testingTarget, "Should return WebViewUrlChangedEventArgs instance.");
+            TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
+
+            EventHandler<WebViewUrlChangedEventArgs> onUrlChange = (s, e) =>
+            {
+                Assert.IsNotNull(e, "null handle");
+                Assert.IsInstanceOf<WebViewUrlChangedEventArgs>(e, "Should return WebViewUrlChangedEventArgs instance.");
+                Assert.IsNotNull(e.NewPageUrl);
+
+                tcs.TrySetResult(true);
+            };
+            webView.UrlChanged += onUrlChange;
+
+            webView.LoadUrl(url);
+            var result = await tcs.Task;
+            Assert.IsTrue(result, "UrlChanged event should be invoked");
 
-            tlog.Debug(tag, "NewPageUrl : " + testingTarget.NewPageUrl);
+            webView.UrlChanged -= onUrlChange;
 
             tlog.Debug(tag, $"WebViewUrlChangedEventArgsNewPageUrl END (OK)");
         }
index 556dc30..02abdf9 100755 (executable)
@@ -14,12 +14,12 @@ namespace Tizen.NUI.Devel.Tests
     public class PublicWebViewTest
     {
         private const string tag = "NUITEST";
-        private string url = Applications.Application.Current.DirectoryInfo.Resource + "webview/index.html"; // its size is 150x150.
-        private string secondUrl = Applications.Application.Current.DirectoryInfo.Resource + "webview/second.html";
+        private string url = $"file://{Applications.Application.Current.DirectoryInfo.Resource}webview/index.html";
+        private string secondUrl = $"file://{Applications.Application.Current.DirectoryInfo.Resource}webview/second.html";
         private string urlForNavigationPolicyTest = "http://www.google.com";
         private string urlForCertificateConfirmTest = "https://wrong.host.badssl.com/";
         private string urlForResponsePolicyTest = "http://www.samsung.com";
-        private string urlForConsoleMessageTest = Applications.Application.Current.DirectoryInfo.Resource + "webview/console_info.html";
+        private string urlForConsoleMessageTest = $"file://{Applications.Application.Current.DirectoryInfo.Resource}webview/console_info.html";
 
         private static string[] runtimeArgs = { "--enable-dali-window", "--enable-spatial-navigation" };
         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";
@@ -32,7 +32,7 @@ namespace Tizen.NUI.Devel.Tests
         private void PlainReceivedCallback(string arg2) { }
         private void ScreenshotAcquiredCallbackCase(ImageView image) { }
 
-        internal class MyWebView : Tizen.NUI.BaseComponents.WebView
+        internal class MyWebView : BaseComponents.WebView
         {
             public MyWebView() : base()
             { }
@@ -48,7 +48,7 @@ namespace Tizen.NUI.Devel.Tests
         {
             webView = new BaseComponents.WebView(runtimeArgs)
             {
-                Size = new Size(150, 100), //For scrolling to edge...
+                Size = new Size(150, 100),
             };
             tlog.Info(tag, "Init() is called!");
         }
@@ -194,42 +194,6 @@ namespace Tizen.NUI.Devel.Tests
             tlog.Debug(tag, $"WebViewPageLoadFinished END (OK)");
         }
 
-        //TODO... it seems that web engine does not implement it.
-        //[Test]
-        //[Category("P1")]
-        //[Description("WebView ScrollEdgeReached.")]
-        //[Property("SPEC", "Tizen.NUI.WebView.ScrollEdgeReached E")]
-        //[Property("SPEC_URL", "-")]
-        //[Property("CRITERIA", "PRW")]
-        //[Property("COVPARAM", "")]
-        //[Property("AUTHOR", "guowei.wang@samsung.com")]
-        //public async Task WebViewScrollEdgeReached()
-        //{
-        //    tlog.Debug(tag, $"WebViewScrollEdgeReached START");
-
-        //    TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
-        //    EventHandler<WebViewPageLoadEventArgs> onLoadFinished = (s, e) =>
-        //    {
-        //        webView.ScrollBy(0, 60);
-        //    };
-        //    webView.PageLoadFinished += onLoadFinished;
-
-        //    EventHandler<WebViewScrollEdgeReachedEventArgs> onEdgeReached = (s, e) =>
-        //    {
-        //        tcs.TrySetResult(true);
-        //    };
-        //    webView.ScrollEdgeReached += onEdgeReached;
-
-        //    webView.LoadUrl(url);
-        //    var result = await tcs.Task;
-        //    Assert.IsTrue(result, "ScrollEdgeReached event should be invoked");
-
-        //    webView.PageLoadFinished -= onLoadFinished;
-        //    webView.ScrollEdgeReached -= onEdgeReached;
-
-        //    tlog.Debug(tag, $"WebViewScrollEdgeReached END (OK)");
-        //}
-
         [Test]
         [Category("P1")]
         [Description("WebView UrlChanged.")]
@@ -259,24 +223,6 @@ namespace Tizen.NUI.Devel.Tests
             tlog.Debug(tag, $"WebViewUrlChanged END (OK)");
         }
 
-        //[Test]
-        //[Category("P1")]
-        //[Description("WebView FormRepostPolicyDecided.")]
-        //[Property("SPEC", "Tizen.NUI.WebView.FormRepostPolicyDecided A")]
-        //[Property("SPEC_URL", "-")]
-        //[Property("CRITERIA", "PRW")]
-        //[Property("COVPARAM", "")]
-        //[Property("AUTHOR", "guowei.wang@samsung.com")]
-        //public void WebViewFormRepostPolicyDecided()
-        //{
-        //    tlog.Debug(tag, $"WebViewFormRepostPolicyDecided START");
-
-        //    webView.FormRepostPolicyDecided += OnFormRepostPolicyDecide;
-        //    webView.FormRepostPolicyDecided -= OnFormRepostPolicyDecide;
-
-        //    tlog.Debug(tag, $"WebViewFormRepostPolicyDecided END (OK)");
-        //}
-
         [Test]
         [Category("P1")]
         [Description("WebView FrameRendered.")]
@@ -448,7 +394,7 @@ namespace Tizen.NUI.Devel.Tests
         [Property("AUTHOR", "guowei.wang@samsung.com")]
         public async Task WebViewConsoleMessageReceived()
         {
-            tlog.Debug(tag, $"WebViewHttpAuthRequested START");
+            tlog.Debug(tag, $"WebViewConsoleMessageReceived START");
 
             TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(false);
             EventHandler<WebViewConsoleMessageReceivedEventArgs> onConsoleMessageReceive = (s, e) => { tcs.TrySetResult(true); };
@@ -463,44 +409,6 @@ namespace Tizen.NUI.Devel.Tests
             tlog.Debug(tag, $"WebViewConsoleMessageReceived END (OK)");
         }
 
-        //TODO... move it to manual test...
-        //[Test]
-        //[Category("P1")]
-        //[Description("WebView ContextMenuShown.")]
-        //[Property("SPEC", "Tizen.NUI.WebView.ContextMenuShown A")]
-        //[Property("SPEC_URL", "-")]
-        //[Property("CRITERIA", "PRW")]
-        //[Property("COVPARAM", "")]
-        //[Property("AUTHOR", "guowei.wang@samsung.com")]
-        //public void WebViewContextMenuShown()
-        //{
-        //    tlog.Debug(tag, $"WebViewContextMenuShown START");
-
-        //    webView.ContextMenuShown += OnContextMenuShown;
-        //    webView.ContextMenuShown -= OnContextMenuShown;
-
-        //    tlog.Debug(tag, $"WebViewContextMenuShown END (OK)");
-        //}
-
-        //TODO... move it to manual test...
-        //[Test]
-        //[Category("P1")]
-        //[Description("WebView ContextMenuHidden.")]
-        //[Property("SPEC", "Tizen.NUI.WebView.ContextMenuHidden A")]
-        //[Property("SPEC_URL", "-")]
-        //[Property("CRITERIA", "PRW")]
-        //[Property("COVPARAM", "")]
-        //[Property("AUTHOR", "guowei.wang@samsung.com")]
-        //public void WebViewContextMenuHidden()
-        //{
-        //    tlog.Debug(tag, $"WebViewContextMenuHidden START");
-
-        //    webView.ContextMenuHidden += OnContextMenuHidden;
-        //    webView.ContextMenuHidden -= OnContextMenuHidden;
-
-        //    tlog.Debug(tag, $"WebViewContextMenuHidden END (OK)");
-        //}
-
         [Test]
         [Category("P1")]
         [Description("WebView BackForwardList.")]