Files
NativeScript/tests/app/ui/placeholder/placeholder-tests.ts
Hristo Hristov 0f14101238 recycling now happens only if nativeView and android properties are not accessed. (#4627)
recycleNativeView filed now accepts: "always" | "never" | "auto". Always will recycle the nativeView no matter if its nativeView or android proprties are accessed. Never will disable recycling. Auto will recycle it only if nativeView and android properties are not accessed.
2017-08-01 15:04:16 +03:00

66 lines
2.4 KiB
TypeScript

import * as TKUnit from "../../TKUnit";
// >> article-creating-view
import { isIOS, isAndroid } from "tns-core-modules/platform";
import * as utils from "tns-core-modules/utils/utils";
import * as helper from "../helper";
import * as viewModule from "tns-core-modules/ui/core/view";
// >> article-require-placeholder-module
import * as placeholderModule from "tns-core-modules/ui/placeholder";
// << article-require-placeholder-module
function creatingView(args) {
let nativeView;
if (isIOS) {
nativeView = UITextView.new();
nativeView.text = "Native";
} else if (isAndroid) {
nativeView = new android.widget.TextView(utils.ad.getApplicationContext());
nativeView.setText("Native");
}
args.view = nativeView;
}
exports.creatingView = creatingView;
// << article-creating-view
export function test_placeholder_creatingView() {
const p = new placeholderModule.Placeholder();
p.on(placeholderModule.Placeholder.creatingViewEvent, (args: placeholderModule.CreateViewEventData) => {
let nativeView;
if (isIOS) {
nativeView = UITextView.new();
nativeView.text = "Native";
} else if (isAndroid) {
nativeView = new android.widget.TextView(utils.ad.getApplicationContext());
nativeView.setText("Native");
}
args.view = nativeView;
});
function testAction(views: Array<viewModule.View>) {
if (isIOS) {
TKUnit.assert(p.nativeViewProtected instanceof UITextView, "nativeView property should be UITextView. Current value: " + p.nativeViewProtected);
} else if (isAndroid) {
TKUnit.assert(p.nativeViewProtected instanceof android.widget.TextView, "Native view should be android.widget.TextView. Current value: " + p.nativeViewProtected);
}
};
helper.buildUIAndRunTest(p, testAction);
}
export function test_placeholder_will_not_crash_wihout_creatingView() {
const p = new placeholderModule.Placeholder();
function testAction(views: Array<viewModule.View>) {
if (isIOS) {
TKUnit.assert(p.ios === undefined, "ios property should be undefined. Current value: " + p.ios);
} else if (isAndroid) {
TKUnit.assert(p.android === undefined, "android view should be undefined. Current value: " + p.android);
}
};
helper.buildUIAndRunTest(p, testAction);
}