mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00

* chore: move tns-core-modules to nativescript-core * chore: preparing compat generate script * chore: add missing definitions * chore: no need for http-request to be private * chore: packages chore * test: generate tests for tns-core-modules * chore: add anroid module for consistency * chore: add .npmignore * chore: added privateModulesWhitelist * chore(webpack): added bundle-entry-points * chore: scripts * chore: tests changed to use @ns/core * test: add scoped-packages test project * test: fix types * test: update test project * chore: build scripts * chore: update build script * chore: npm scripts cleanup * chore: make the compat pgk work with old wp config * test: generate diff friendly tests * chore: create barrel exports * chore: move files after rebase * chore: typedoc config * chore: compat mode * chore: review of barrels * chore: remove tns-core-modules import after rebase * chore: dev workflow setup * chore: update developer-workflow * docs: experiment with API extractor * chore: api-extractor and barrel exports * chore: api-extractor configs * chore: generate d.ts rollup with api-extractor * refactor: move methods inside Frame * chore: fic tests to use Frame static methods * refactor: create Builder class * refactor: use Builder class in tests * refactor: include Style in ui barrel * chore: separate compat build script * chore: fix tslint errors * chore: update NATIVESCRIPT_CORE_ARGS * chore: fix compat pack * chore: fix ui-test-app build with linked modules * chore: Application, ApplicationSettings, Connectivity and Http * chore: export Trace, Profiling and Utils * refactor: Static create methods for ImageSource * chore: fix deprecated usages of ImageSource * chore: move Span and FormattedString to ui * chore: add events-args and ImageSource to index files * chore: check for CLI >= 6.2 when building for IOS * chore: update travis build * chore: copy Pod file to compat package * chore: update error msg ui-tests-app * refactor: Apply suggestions from code review Co-Authored-By: Martin Yankov <m.i.yankov@gmail.com> * chore: typings and refs * chore: add missing d.ts files for public API * chore: adress code review FB * chore: update api-report * chore: dev-workflow for other apps * chore: api update * chore: update api-report
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 "@nativescript/core/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();
|
|
}
|