From a63f46ee83390fb70df3234aecfbac1718be8d0b Mon Sep 17 00:00:00 2001 From: Nedyalko Nikolov Date: Fri, 21 Oct 2016 14:26:37 +0300 Subject: [PATCH] Added pressed, active and disabled states for button. --- tests/app/ui/button/button-tests.ts | 42 ++++++++++++++++++++++++ tests/app/ui/label/label-tests.ts | 16 +++++++++ tns-core-modules/ui/button/button.ios.ts | 2 +- tns-core-modules/ui/core/view-common.ts | 41 +++++++++++++++++++---- 4 files changed, 94 insertions(+), 7 deletions(-) diff --git a/tests/app/ui/button/button-tests.ts b/tests/app/ui/button/button-tests.ts index 9b1da062b..78abc6800 100644 --- a/tests/app/ui/button/button-tests.ts +++ b/tests/app/ui/button/button-tests.ts @@ -258,6 +258,48 @@ export var testNativeTextAlignmentFromCss = function () { }); } +export var test_StateHighlighted_also_fires_pressedState = function () { + helper.buildUIAndRunTest(_createButtonFunc(), function (views: Array) { + var view = views[0]; + var page = views[1]; + var expectedColor = "#ffff0000"; + page.css = "button:pressed { background-color: " + expectedColor + "; }"; + + view._goToVisualState('highlighted'); + + var actualResult = buttonTestsNative.getNativeBackgroundColor(view); + TKUnit.assert(actualResult.hex === expectedColor, "Actual: " + actualResult.hex + "; Expected: " + expectedColor); + }); +} + +export var test_StateHighlighted_also_fires_activeState = function () { + helper.buildUIAndRunTest(_createButtonFunc(), function (views: Array) { + var view = views[0]; + var page = views[1]; + var expectedColor = "#ffff0000"; + page.css = "button:active { background-color: " + expectedColor + "; }"; + + view._goToVisualState('highlighted'); + + var actualResult = buttonTestsNative.getNativeBackgroundColor(view); + TKUnit.assert(actualResult.hex === expectedColor, "Actual: " + actualResult.hex + "; Expected: " + expectedColor); + }); +} + +export var test_applying_disabled_visual_State_when_button_is_disable = function () { + helper.buildUIAndRunTest(_createButtonFunc(), function (views: Array) { + var view = views[0]; + var page = views[1]; + var expectedColor = "#ffff0000"; + page.css = "button:disabled { background-color: " + expectedColor + "; }"; + + view.isEnabled = false; + + var actualResult = buttonTestsNative.getNativeBackgroundColor(view); + TKUnit.assert(actualResult.hex === expectedColor, "Actual: " + actualResult.hex + "; Expected: " + expectedColor); + }); +} + export var testNativeTextAlignmentFromLocal = function () { helper.buildUIAndRunTest(_createButtonFunc(), function (views: Array) { var view = views[0]; diff --git a/tests/app/ui/label/label-tests.ts b/tests/app/ui/label/label-tests.ts index 53303bc39..f2eff2598 100644 --- a/tests/app/ui/label/label-tests.ts +++ b/tests/app/ui/label/label-tests.ts @@ -23,6 +23,7 @@ import {Label} from "ui/label"; import {LayoutBase} from "ui/layouts/layout-base"; import * as helper from "../helper"; import viewModule = require("ui/core/view"); +import {Page} from "ui/page"; export class LabelTest extends testModule.UITest { @@ -666,3 +667,18 @@ export function test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedT TKUnit.assertEqual(view.style.letterSpacing, 1, "LetterSpacing"); }); } + +export var test_applying_disabled_visual_State_when_label_is_disable = function () { + let view = new Label(); + helper.buildUIAndRunTest(view, function (views: Array) { + var view =