From 6c68423ee933126cf77f13df0595f7dfd03139fe Mon Sep 17 00:00:00 2001 From: Rossen Hristov Date: Fri, 18 Mar 2016 14:17:08 +0200 Subject: [PATCH 1/2] Update TextBase/Button `text` property when `formattedText` changes Fixes #1794 --- apps/tests/ui/button/button-tests.ts | 36 +++++++++++++++++++ apps/tests/ui/text-field/text-field-tests.ts | 36 +++++++++++++++++++ .../xml-declaration/xml-declaration-tests.ts | 5 +++ ui/button/button-common.ts | 15 +++++--- ui/text-base/text-base-common.ts | 15 +++++--- 5 files changed, 99 insertions(+), 8 deletions(-) diff --git a/apps/tests/ui/button/button-tests.ts b/apps/tests/ui/button/button-tests.ts index 7748cc3a2..ac2a39811 100644 --- a/apps/tests/ui/button/button-tests.ts +++ b/apps/tests/ui/button/button-tests.ts @@ -5,6 +5,8 @@ import pagesModule = require("ui/page"); import buttonTestsNative = require("./button-tests-native"); import colorModule = require("color"); import enums = require("ui/enums"); +import formattedStringModule = require("text/formatted-string"); +import spanModule = require("text/span"); // // # Button @@ -291,3 +293,37 @@ export var testNativeTextAlignmentFromLocal = function () { TKUnit.assert(actualResult === expectedTextAlignment, "Actual: " + actualResult + "; Expected: " + expectedTextAlignment); }); } + +export var test_WhenFormattedTextPropertyChanges_TextIsUpdated_Button = function () { + var firstSpan = new spanModule.Span(); + firstSpan.fontSize = 10; + firstSpan.text = "First"; + var secondSpan = new spanModule.Span(); + secondSpan.fontSize = 15; + secondSpan.text = "Second"; + var thirdSpan = new spanModule.Span(); + thirdSpan.fontSize = 20; + thirdSpan.text = "Third"; + var formattedString1 = new formattedStringModule.FormattedString(); + formattedString1.spans.push(firstSpan); + var formattedString2 = new formattedStringModule.FormattedString(); + formattedString2.spans.push(secondSpan); + formattedString2.spans.push(thirdSpan); + + var view = new buttonModule.Button(); + helper.buildUIAndRunTest(view, function (views: Array) { + TKUnit.assertEqual(view.text, ""); + + view.formattedText = formattedString1; + TKUnit.assertEqual(view.text, "First"); + + view.formattedText = formattedString2; + TKUnit.assertEqual(view.text, "SecondThird"); + + formattedString2.spans[0].text = "Mecond"; + TKUnit.assertEqual(view.text, "MecondThird"); + + view.formattedText = null; + TKUnit.assertEqual(view.text, ""); + }); +} \ No newline at end of file diff --git a/apps/tests/ui/text-field/text-field-tests.ts b/apps/tests/ui/text-field/text-field-tests.ts index 55819cd6d..4e7b25b4d 100644 --- a/apps/tests/ui/text-field/text-field-tests.ts +++ b/apps/tests/ui/text-field/text-field-tests.ts @@ -6,6 +6,8 @@ import textFieldTestsNative = require("./text-field-tests-native"); import colorModule = require("color"); import enums = require("ui/enums"); import platform = require("platform"); +import formattedStringModule = require("text/formatted-string"); +import spanModule = require("text/span"); // // # TextField @@ -468,3 +470,37 @@ export var testMemoryLeak = function (done) { textFieldTestsNative.typeTextNatively(textField, "Hello, world!"); }, done); } + +export var test_WhenFormattedTextPropertyChanges_TextIsUpdated_TextBase = function () { + var firstSpan = new spanModule.Span(); + firstSpan.fontSize = 10; + firstSpan.text = "First"; + var secondSpan = new spanModule.Span(); + secondSpan.fontSize = 15; + secondSpan.text = "Second"; + var thirdSpan = new spanModule.Span(); + thirdSpan.fontSize = 20; + thirdSpan.text = "Third"; + var formattedString1 = new formattedStringModule.FormattedString(); + formattedString1.spans.push(firstSpan); + var formattedString2 = new formattedStringModule.FormattedString(); + formattedString2.spans.push(secondSpan); + formattedString2.spans.push(thirdSpan); + + var view = new textFieldModule.TextField(); + helper.buildUIAndRunTest(view, function (views: Array) { + TKUnit.assertEqual(view.text, ""); + + view.formattedText = formattedString1; + TKUnit.assertEqual(view.text, "First"); + + view.formattedText = formattedString2; + TKUnit.assertEqual(view.text, "SecondThird"); + + formattedString2.spans[0].text = "Mecond"; + TKUnit.assertEqual(view.text, "MecondThird"); + + view.formattedText = null; + TKUnit.assertEqual(view.text, ""); + }); +} \ No newline at end of file diff --git a/apps/tests/xml-declaration/xml-declaration-tests.ts b/apps/tests/xml-declaration/xml-declaration-tests.ts index 5e71f8e14..83a8fd7fa 100644 --- a/apps/tests/xml-declaration/xml-declaration-tests.ts +++ b/apps/tests/xml-declaration/xml-declaration-tests.ts @@ -740,6 +740,7 @@ export function test_parseSpansDirectlyOnLabel() { var page = views[0]; var testLabel =