Merge pull request #1588 from NativeScript/null-undefined

TextView and TextField shows null and undefined
This commit is contained in:
Vladimir Enchev
2016-02-19 13:43:06 +02:00
4 changed files with 55 additions and 3 deletions

View File

@ -69,6 +69,31 @@ export var testSetText = function () {
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
});
}
export var testSetTextNull = function () {
helper.buildUIAndRunTest(_createTextFieldFunc(), function (views: Array<viewModule.View>) {
var textField = <textFieldModule.TextField>views[0];
textField.text = null;
var expectedValue = "";
var actualValue = textFieldTestsNative.getNativeText(textField);
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
});
}
export var testSetTextUndefined = function () {
helper.buildUIAndRunTest(_createTextFieldFunc(), function (views: Array<viewModule.View>) {
var textField = <textFieldModule.TextField>views[0];
textField.text = undefined;
var expectedValue = "";
var actualValue = textFieldTestsNative.getNativeText(textField);
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
});
}
/* tslint:disable */
export var testSetHintToNumber = function () {
helper.buildUIAndRunTest(_createTextFieldFunc(), function (views: Array<viewModule.View>) {

View File

@ -70,6 +70,30 @@ export var testSetText = function () {
});
}
export var testSetTextNull = function () {
helper.buildUIAndRunTest(_createTextViewFunc(), function (views: Array<viewModule.View>) {
var textView = <textViewModule.TextView>views[0];
textView.text = null;
var expectedValue = "";
var actualValue = textViewTestsNative.getNativeText(textView);
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
});
}
export var testSetTextUndefined = function () {
helper.buildUIAndRunTest(_createTextViewFunc(), function (views: Array<viewModule.View>) {
var textView = <textViewModule.TextView>views[0];
textView.text = undefined;
var expectedValue = "";
var actualValue = textViewTestsNative.getNativeText(textView);
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
});
}
// Supported for ios only.
if (platform.device.os === platform.platformNames.ios) {
exports.test_set_color = function () {

View File

@ -3,6 +3,7 @@ import textBase = require("ui/text-base");
import dependencyObservable = require("ui/core/dependency-observable");
import enums = require("ui/enums");
import utils = require("utils/utils");
import types = require("utils/types");
export class EditableTextBase extends common.EditableTextBase {
private _android: android.widget.EditText;
@ -131,7 +132,8 @@ export class EditableTextBase extends common.EditableTextBase {
public _onTextPropertyChanged(data: dependencyObservable.PropertyChangeData) {
if (this._android) {
this.android.setText(data.newValue + "", android.widget.TextView.BufferType.EDITABLE);
var newValue = types.isNullOrUndefined(data.newValue) ? "" : data.newValue + "";
this.android.setText(newValue, android.widget.TextView.BufferType.EDITABLE);
}
}

View File

@ -5,6 +5,7 @@ import enums = require("ui/enums");
import view = require("ui/core/view");
import style = require("ui/styling/style");
import styling = require("ui/styling");
import types = require("utils/types");
global.moduleMerge(common, exports);
@ -118,13 +119,13 @@ export class TextView extends common.TextView {
public _showHint(hint: string) {
this.ios.textColor = this.ios.textColor ? this.ios.textColor.colorWithAlphaComponent(0.22) : UIColor.blackColor().colorWithAlphaComponent(0.22);
this.ios.text = hint + "";
this.ios.text = types.isNullOrUndefined(hint) ? "" : hint + "";
(<any>this.ios).isShowingHint = true;
}
public _hideHint() {
this.ios.textColor = this.color ? this.color.ios : null;
this.ios.text = this.text + "";
this.ios.text = types.isNullOrUndefined(this.text) ? "" : this.text + "";
(<any>this.ios).isShowingHint = false;
}
}