Skip to content

Commit 9a5a9c7

Browse files
author
Vladimir Enchev
committed
tests added
1 parent 8e2a5fe commit 9a5a9c7

File tree

3 files changed

+135
-1
lines changed

3 files changed

+135
-1
lines changed

apps/tests/ui/web-view/test.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>MyTitle</title>
5+
<meta charset="utf-8" />
6+
</head>
7+
<body>
8+
<span style="color:red">Test</span>
9+
</body>
10+
</html>

apps/tests/ui/web-view/web-view-tests.ts

Lines changed: 124 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@ import webViewModule = require("ui/web-view");
1313
// ### Declaring a WebView.
1414
//```XML
1515
// <Page>
16-
// <WebView url="{{ someUrl }}" />
16+
// <WebView src="{{ someUrl | pathToLocalFile | htmlString }}" />
1717
// </Page>
1818
//```
19+
1920
// </snippet>
2021

2122
var _createWebViewFunc = function (): webViewModule.WebView {
@@ -76,6 +77,128 @@ export var testLoadExistingUrl = function () {
7677
}
7778
}
7879

80+
export var testLoadLocalFile = function () {
81+
var newPage: page.Page;
82+
var webView = _createWebViewFunc();
83+
var pageFactory = function (): page.Page {
84+
newPage = new page.Page();
85+
newPage.content = webView;
86+
return newPage;
87+
};
88+
89+
helper.navigate(pageFactory);
90+
91+
var testFinished = false;
92+
var actualHtml;
93+
var actualTitle;
94+
var actualError;
95+
96+
var expectedTitle = 'MyTitle';
97+
var expectedHtml = '<span style="color:red">Test</span>';
98+
99+
// <snippet module="ui/web-view" title="WebView">
100+
// ### Using WebView
101+
// ``` JavaScript
102+
webView.on(webViewModule.WebView.loadFinishedEvent, function (args: webViewModule.LoadEventData) {
103+
// <hide>
104+
if (webView.ios) {
105+
actualHtml = webView.ios.stringByEvaluatingJavaScriptFromString("document.body.innerHTML").trim();
106+
} else if (webView.android) {
107+
actualTitle = webView.android.getTitle()
108+
}
109+
110+
actualError = args.error;
111+
testFinished = true;
112+
// </hide>
113+
var message;
114+
if (!args.error) {
115+
message = "WebView finished loading " + args.url;
116+
}
117+
else {
118+
message = "Error loading " + args.url + ": " + args.error;
119+
}
120+
//console.log(message);
121+
});
122+
webView.src = "~/ui/web-view/test.html";
123+
124+
TKUnit.wait(4);
125+
126+
helper.goBack();
127+
128+
if (testFinished) {
129+
if (webView.ios) {
130+
TKUnit.assert(actualHtml === expectedHtml, "File ~/ui/web-view/test.html not loaded properly. Actual: " + actualHtml);
131+
} else if (webView.android) {
132+
TKUnit.assert(actualTitle === expectedTitle, "File ~/ui/web-view/test.html not loaded properly. Actual: " + actualTitle);
133+
}
134+
TKUnit.assert(actualError === undefined, actualError);
135+
}
136+
else {
137+
TKUnit.assert(false, "TIMEOUT");
138+
}
139+
}
140+
141+
export var testLoadHTMLString = function () {
142+
var newPage: page.Page;
143+
var webView = _createWebViewFunc();
144+
var pageFactory = function (): page.Page {
145+
newPage = new page.Page();
146+
newPage.content = webView;
147+
return newPage;
148+
};
149+
150+
helper.navigate(pageFactory);
151+
152+
var testFinished = false;
153+
var actualHtml;
154+
var actualTitle;
155+
var actualError;
156+
157+
var expectedTitle = 'MyTitle';
158+
var expectedHtml = '<span style="color:red">Test</span>';
159+
160+
// <snippet module="ui/web-view" title="WebView">
161+
// ### Using WebView
162+
// ``` JavaScript
163+
webView.on(webViewModule.WebView.loadFinishedEvent, function (args: webViewModule.LoadEventData) {
164+
// <hide>
165+
if (webView.ios) {
166+
actualHtml = webView.ios.stringByEvaluatingJavaScriptFromString("document.body.innerHTML").trim();
167+
} else if (webView.android) {
168+
actualTitle = webView.android.getTitle()
169+
}
170+
171+
actualError = args.error;
172+
testFinished = true;
173+
// </hide>
174+
var message;
175+
if (!args.error) {
176+
message = "WebView finished loading " + args.url;
177+
}
178+
else {
179+
message = "Error loading " + args.url + ": " + args.error;
180+
}
181+
//console.log(message);
182+
});
183+
webView.src = '<!DOCTYPE html><html><head><title>MyTitle</title><meta charset="utf-8" /></head><body><span style="color:red">Test</span></body></html>';
184+
185+
TKUnit.wait(4);
186+
187+
helper.goBack();
188+
189+
if (testFinished) {
190+
if (webView.ios) {
191+
TKUnit.assert(actualHtml === expectedHtml, "HTML string not loaded properly. Actual: " + actualHtml);
192+
} else if (webView.android) {
193+
TKUnit.assert(actualTitle === expectedTitle, "HTML string not loaded properly. Actual: " + actualTitle);
194+
}
195+
TKUnit.assert(actualError === undefined, actualError);
196+
}
197+
else {
198+
TKUnit.assert(false, "TIMEOUT");
199+
}
200+
}
201+
79202
export var testLoadInvalidUrl = function () {
80203
var newPage: page.Page;
81204
var webView = _createWebViewFunc();

ui/web-view/web-view.android.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ export class WebView extends common.WebView {
8080
trace.write("WebView._loadSrc(" + src + ")", trace.categories.Debug);
8181

8282
this._android.stopLoading();
83+
this._android.loadUrl("about:blank");
8384

8485
if (utils.isFileOrResourcePath(src)) {
8586

0 commit comments

Comments
 (0)