mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00
183 lines
5.5 KiB
TypeScript
183 lines
5.5 KiB
TypeScript
import * as TKUnit from "../../tk-unit";
|
|
import * as testModule from "../../ui-test";
|
|
|
|
// >> webview-require
|
|
import * as webViewModule from "tns-core-modules/ui/web-view";
|
|
// << webview-require
|
|
|
|
// >> declare-webview-xml
|
|
// <Page>
|
|
// {%raw%}<WebView src="{{ someUrl | pathToLocalFile | htmlString }}" />{%endraw%}
|
|
// </Page>
|
|
// << declare-webview-xml
|
|
|
|
export class WebViewTest extends testModule.UITest<webViewModule.WebView> {
|
|
|
|
public create(): webViewModule.WebView {
|
|
// >> declare-webview
|
|
let webView = new webViewModule.WebView();
|
|
|
|
// << declare-webview
|
|
return webView;
|
|
}
|
|
|
|
public testLoadExistingUrl(done) {
|
|
let webView = this.testView;
|
|
|
|
// >> webview-url
|
|
webView.on(webViewModule.WebView.loadFinishedEvent, function (args: webViewModule.LoadEventData) {
|
|
let message;
|
|
if (!args.error) {
|
|
message = "WebView finished loading " + args.url;
|
|
}
|
|
else {
|
|
message = "Error loading " + args.url + ": " + args.error;
|
|
}
|
|
|
|
// >> (hide)
|
|
try {
|
|
TKUnit.assertNull(args.error, args.error);
|
|
TKUnit.assertEqual(args.url, "https://github.com/", "args.url");
|
|
done(null);
|
|
}
|
|
catch (e) {
|
|
done(e);
|
|
}
|
|
|
|
// << (hide)
|
|
});
|
|
webView.src = "https://github.com/";
|
|
// << webview-url
|
|
}
|
|
|
|
public testLoadLocalFile(done) {
|
|
let webView = this.testView;
|
|
|
|
// >> webview-localfile
|
|
webView.on(webViewModule.WebView.loadFinishedEvent, function (args: webViewModule.LoadEventData) {
|
|
// >> (hide)
|
|
let actual;
|
|
let expectedTitle = "MyTitle";
|
|
|
|
if (webView.ios) {
|
|
actual = webView.ios.title;
|
|
} else if (webView.android) {
|
|
actual = webView.android.getTitle();
|
|
}
|
|
|
|
try {
|
|
TKUnit.assertNull(args.error, args.error);
|
|
TKUnit.assertEqual(actual, expectedTitle, "File ~/ui/web-view/test.html not loaded properly.");
|
|
done(null);
|
|
}
|
|
catch (e) {
|
|
done(e);
|
|
}
|
|
// << (hide)
|
|
|
|
let message;
|
|
if (!args.error) {
|
|
message = "WebView finished loading " + args.url;
|
|
}
|
|
else {
|
|
message = "Error loading " + args.url + ": " + args.error;
|
|
}
|
|
});
|
|
webView.src = "~/ui/web-view/test.html";
|
|
// << webview-localfile
|
|
}
|
|
|
|
public testLoadLocalFileWithSpaceInPath(done) {
|
|
let webView = this.testView;
|
|
|
|
webView.on(webViewModule.WebView.loadFinishedEvent, function (args: webViewModule.LoadEventData) {
|
|
let actual;
|
|
let expectedTitle = "MyTitle";
|
|
|
|
if (webView.ios) {
|
|
actual = webView.ios.title;
|
|
} else if (webView.android) {
|
|
actual = webView.android.getTitle();
|
|
}
|
|
|
|
try {
|
|
TKUnit.assertNull(args.error, args.error);
|
|
TKUnit.assertEqual(actual, expectedTitle, "File ~/ui/web-view/test.html not loaded properly.");
|
|
done(null);
|
|
}
|
|
catch (e) {
|
|
done(e);
|
|
}
|
|
|
|
let message;
|
|
if (!args.error) {
|
|
message = "WebView finished loading " + args.url;
|
|
}
|
|
else {
|
|
message = "Error loading " + args.url + ": " + args.error;
|
|
}
|
|
});
|
|
webView.src = "~/ui/web-view/test with spaces.html";
|
|
}
|
|
|
|
public testLoadHTMLString(done) {
|
|
let webView = this.testView;
|
|
|
|
// >> webview-string
|
|
webView.on(webViewModule.WebView.loadFinishedEvent, function (args: webViewModule.LoadEventData) {
|
|
// >> (hide)
|
|
|
|
let actual;
|
|
const expected = "MyTitle";
|
|
|
|
if (webView.ios) {
|
|
actual = webView.ios.title;
|
|
} else if (webView.android) {
|
|
actual = webView.android.getTitle();
|
|
}
|
|
|
|
try {
|
|
TKUnit.assertNull(args.error, args.error);
|
|
TKUnit.assertEqual(actual, expected, "HTML string not loaded properly. Actual: ");
|
|
done(null);
|
|
}
|
|
catch (e) {
|
|
done(e);
|
|
}
|
|
// << (hide)
|
|
|
|
let message;
|
|
if (!args.error) {
|
|
message = "WebView finished loading " + args.url;
|
|
}
|
|
else {
|
|
message = "Error loading " + args.url + ": " + args.error;
|
|
}
|
|
});
|
|
webView.src = "<!DOCTYPE html><html><head><title>MyTitle</title><meta charset=\"utf-8\" /></head><body><span style=\"color:red\">TestÖ</span></body></html>";
|
|
// << webview-string
|
|
}
|
|
|
|
public testLoadUpperCaseSrc(done) {
|
|
let webView = this.testView;
|
|
let targetSrc = "HTTPS://github.com/";
|
|
|
|
webView.on(webViewModule.WebView.loadFinishedEvent, function (args: webViewModule.LoadEventData) {
|
|
try {
|
|
TKUnit.assertNull(args.error, args.error);
|
|
TKUnit.assertEqual(args.url, targetSrc.toLowerCase(), "args.url");
|
|
done(null);
|
|
}
|
|
catch (e) {
|
|
done(e);
|
|
}
|
|
});
|
|
|
|
webView.src = targetSrc;
|
|
}
|
|
}
|
|
|
|
export function createTestCase(): WebViewTest {
|
|
return new WebViewTest();
|
|
}
|