mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-17 04:41:36 +08:00
Merge pull request #179 from NativeScript/webview-src
Implemented #172.
This commit is contained in:
10
apps/tests/ui/web-view/test.html
Normal file
10
apps/tests/ui/web-view/test.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>MyTitle</title>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<span style="color:red">Test</span>
|
||||
</body>
|
||||
</html>
|
@ -13,9 +13,10 @@ import webViewModule = require("ui/web-view");
|
||||
// ### Declaring a WebView.
|
||||
//```XML
|
||||
// <Page>
|
||||
// <WebView url="{{ someUrl }}" />
|
||||
// <WebView src="{{ someUrl | pathToLocalFile | htmlString }}" />
|
||||
// </Page>
|
||||
//```
|
||||
|
||||
// </snippet>
|
||||
|
||||
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 = '<span style="color:red">Test</span>';
|
||||
|
||||
// <snippet module="ui/web-view" title="WebView">
|
||||
// ### Using WebView
|
||||
// ``` JavaScript
|
||||
webView.on(webViewModule.WebView.loadFinishedEvent, function (args: webViewModule.LoadEventData) {
|
||||
// <hide>
|
||||
if (webView.ios) {
|
||||
actualHtml = webView.ios.stringByEvaluatingJavaScriptFromString("document.body.innerHTML").trim();
|
||||
} else if (webView.android) {
|
||||
actualTitle = webView.android.getTitle()
|
||||
}
|
||||
|
||||
actualError = args.error;
|
||||
testFinished = true;
|
||||
// </hide>
|
||||
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 = '<span style="color:red">Test</span>';
|
||||
|
||||
// <snippet module="ui/web-view" title="WebView">
|
||||
// ### Using WebView
|
||||
// ``` JavaScript
|
||||
webView.on(webViewModule.WebView.loadFinishedEvent, function (args: webViewModule.LoadEventData) {
|
||||
// <hide>
|
||||
if (webView.ios) {
|
||||
actualHtml = webView.ios.stringByEvaluatingJavaScriptFromString("document.body.innerHTML").trim();
|
||||
} else if (webView.android) {
|
||||
actualTitle = webView.android.getTitle()
|
||||
}
|
||||
|
||||
actualError = args.error;
|
||||
testFinished = true;
|
||||
// </hide>
|
||||
var message;
|
||||
if (!args.error) {
|
||||
message = "WebView finished loading " + args.url;
|
||||
}
|
||||
else {
|
||||
message = "Error loading " + args.url + ": " + args.error;
|
||||
}
|
||||
//console.log(message);
|
||||
});
|
||||
webView.src = '<!DOCTYPE html><html><head><title>MyTitle</title><meta charset="utf-8" /></head><body><span style="color:red">Test</span></body></html>';
|
||||
|
||||
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();
|
||||
|
@ -7,6 +7,8 @@
|
||||
<TabViewItem.view>
|
||||
<StackLayout>
|
||||
|
||||
<WebView src="<html><body><span style='color:red'>Test</span></body></html>" />
|
||||
|
||||
<!--<ToolBar>
|
||||
<ToolBar.items>
|
||||
<ToolBarItem>
|
||||
|
Reference in New Issue
Block a user