diff --git a/apps/tests/ui/web-view/test.html b/apps/tests/ui/web-view/test.html new file mode 100644 index 000000000..904570309 --- /dev/null +++ b/apps/tests/ui/web-view/test.html @@ -0,0 +1,10 @@ + + + + MyTitle + + + + Test + + diff --git a/apps/tests/ui/web-view/web-view-tests.ts b/apps/tests/ui/web-view/web-view-tests.ts index bb861a7c6..93d3776e3 100644 --- a/apps/tests/ui/web-view/web-view-tests.ts +++ b/apps/tests/ui/web-view/web-view-tests.ts @@ -13,9 +13,10 @@ import webViewModule = require("ui/web-view"); // ### Declaring a WebView. //```XML // -// +// // //``` + //  var _createWebViewFunc = function (): webViewModule.WebView { @@ -76,6 +77,128 @@ export var testLoadExistingUrl = function () { } } +export var testLoadLocalFile = function () { + var newPage: page.Page; + var webView = _createWebViewFunc(); + var pageFactory = function (): page.Page { + newPage = new page.Page(); + newPage.content = webView; + return newPage; + }; + + helper.navigate(pageFactory); + + var testFinished = false; + var actualHtml; + var actualTitle; + var actualError; + + var expectedTitle = 'MyTitle'; + var expectedHtml = 'Test'; + + // + // ### Using WebView + // ``` JavaScript + webView.on(webViewModule.WebView.loadFinishedEvent, function (args: webViewModule.LoadEventData) { + // + if (webView.ios) { + actualHtml = webView.ios.stringByEvaluatingJavaScriptFromString("document.body.innerHTML").trim(); + } else if (webView.android) { + actualTitle = webView.android.getTitle() + } + + actualError = args.error; + testFinished = true; + // + var message; + if (!args.error) { + message = "WebView finished loading " + args.url; + } + else { + message = "Error loading " + args.url + ": " + args.error; + } + //console.log(message); + }); + webView.src = "~/ui/web-view/test.html"; + + TKUnit.wait(4); + + helper.goBack(); + + if (testFinished) { + if (webView.ios) { + TKUnit.assert(actualHtml === expectedHtml, "File ~/ui/web-view/test.html not loaded properly. Actual: " + actualHtml); + } else if (webView.android) { + TKUnit.assert(actualTitle === expectedTitle, "File ~/ui/web-view/test.html not loaded properly. Actual: " + actualTitle); + } + TKUnit.assert(actualError === undefined, actualError); + } + else { + TKUnit.assert(false, "TIMEOUT"); + } +} + +export var testLoadHTMLString = function () { + var newPage: page.Page; + var webView = _createWebViewFunc(); + var pageFactory = function (): page.Page { + newPage = new page.Page(); + newPage.content = webView; + return newPage; + }; + + helper.navigate(pageFactory); + + var testFinished = false; + var actualHtml; + var actualTitle; + var actualError; + + var expectedTitle = 'MyTitle'; + var expectedHtml = 'Test'; + + // + // ### Using WebView + // ``` JavaScript + webView.on(webViewModule.WebView.loadFinishedEvent, function (args: webViewModule.LoadEventData) { + // + if (webView.ios) { + actualHtml = webView.ios.stringByEvaluatingJavaScriptFromString("document.body.innerHTML").trim(); + } else if (webView.android) { + actualTitle = webView.android.getTitle() + } + + actualError = args.error; + testFinished = true; + // + var message; + if (!args.error) { + message = "WebView finished loading " + args.url; + } + else { + message = "Error loading " + args.url + ": " + args.error; + } + //console.log(message); + }); + webView.src = 'MyTitleTest'; + + TKUnit.wait(4); + + helper.goBack(); + + if (testFinished) { + if (webView.ios) { + TKUnit.assert(actualHtml === expectedHtml, "HTML string not loaded properly. Actual: " + actualHtml); + } else if (webView.android) { + TKUnit.assert(actualTitle === expectedTitle, "HTML string not loaded properly. Actual: " + actualTitle); + } + TKUnit.assert(actualError === undefined, actualError); + } + else { + TKUnit.assert(false, "TIMEOUT"); + } +} + export var testLoadInvalidUrl = function () { var newPage: page.Page; var webView = _createWebViewFunc(); diff --git a/apps/tests/xml-declaration/mainPage.xml b/apps/tests/xml-declaration/mainPage.xml index a6ea20df9..d801544c8 100644 --- a/apps/tests/xml-declaration/mainPage.xml +++ b/apps/tests/xml-declaration/mainPage.xml @@ -7,6 +7,8 @@ + +