diff --git a/apps/tests/ui/text-field/text-field-tests.ts b/apps/tests/ui/text-field/text-field-tests.ts index d1cfcf555..8763b1259 100644 --- a/apps/tests/ui/text-field/text-field-tests.ts +++ b/apps/tests/ui/text-field/text-field-tests.ts @@ -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) { + var 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) { + var 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) { diff --git a/apps/tests/ui/text-view/text-view-tests.ts b/apps/tests/ui/text-view/text-view-tests.ts index 78cde0533..76e79c732 100644 --- a/apps/tests/ui/text-view/text-view-tests.ts +++ b/apps/tests/ui/text-view/text-view-tests.ts @@ -70,6 +70,30 @@ export var testSetText = function () { }); } +export var testSetTextNull = function () { + helper.buildUIAndRunTest(_createTextViewFunc(), function (views: Array) { + var 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) { + var 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 () { diff --git a/ui/editable-text-base/editable-text-base.android.ts b/ui/editable-text-base/editable-text-base.android.ts index 8f57c6e0a..5a10f41c6 100644 --- a/ui/editable-text-base/editable-text-base.android.ts +++ b/ui/editable-text-base/editable-text-base.android.ts @@ -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); } } diff --git a/ui/text-view/text-view.ios.ts b/ui/text-view/text-view.ios.ts index aa0d4755d..a05024257 100644 --- a/ui/text-view/text-view.ios.ts +++ b/ui/text-view/text-view.ios.ts @@ -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 + ""; (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 + ""; (this.ios).isShowingHint = false; } }