From 1b5e6eb74386ccd6c857a9772b6f779771c5e5a2 Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Wed, 3 Jun 2015 17:35:53 +0300 Subject: [PATCH] tests added --- .../segmented-bar-tests-native.android.ts | 14 +++++++++++++ .../segmented-bar-tests-native.d.ts | 2 ++ .../segmented-bar-tests-native.ios.ts | 9 ++++++++ .../ui/segmented-bar/segmented-bar-tests.ts | 21 +++++++++++++++++++ 4 files changed, 46 insertions(+) diff --git a/apps/tests/ui/segmented-bar/segmented-bar-tests-native.android.ts b/apps/tests/ui/segmented-bar/segmented-bar-tests-native.android.ts index 7cc46f59d..b4df44b1b 100644 --- a/apps/tests/ui/segmented-bar/segmented-bar-tests-native.android.ts +++ b/apps/tests/ui/segmented-bar/segmented-bar-tests-native.android.ts @@ -1,5 +1,19 @@ import segmentedBarModule = require("ui/segmented-bar"); +import color = require("color"); export function getNativeItemsCount(bar: segmentedBarModule.SegmentedBar): number { return (bar.android).getTabWidget().getTabCount(); +} + +export function checkNativeItemsTextColor(bar: segmentedBarModule.SegmentedBar): boolean { + var isValid = true; + + for (var tabIndex = 0; tabIndex < bar.android.getTabWidget().getTabCount(); tabIndex++) { + var tabChild = bar.android.getTabWidget().getChildTabViewAt(tabIndex); + var t = tabChild.getChildAt(1); + + isValid = bar.color && bar.color.android === t.getCurrentTextColor(); + } + + return isValid; } \ No newline at end of file diff --git a/apps/tests/ui/segmented-bar/segmented-bar-tests-native.d.ts b/apps/tests/ui/segmented-bar/segmented-bar-tests-native.d.ts index e19fbcac1..ce4e435cf 100644 --- a/apps/tests/ui/segmented-bar/segmented-bar-tests-native.d.ts +++ b/apps/tests/ui/segmented-bar/segmented-bar-tests-native.d.ts @@ -2,3 +2,5 @@ import segmentedBarModule = require("ui/segmented-bar"); export declare function getNativeItemsCount(bar: segmentedBarModule.SegmentedBar): number; + +export declare function checkNativeItemsTextColor(bar: segmentedBarModule.SegmentedBar): boolean; diff --git a/apps/tests/ui/segmented-bar/segmented-bar-tests-native.ios.ts b/apps/tests/ui/segmented-bar/segmented-bar-tests-native.ios.ts index 81bc3502f..39766a1b9 100644 --- a/apps/tests/ui/segmented-bar/segmented-bar-tests-native.ios.ts +++ b/apps/tests/ui/segmented-bar/segmented-bar-tests-native.ios.ts @@ -2,4 +2,13 @@ export function getNativeItemsCount(bar: segmentedBarModule.SegmentedBar): number { return (bar.ios).numberOfSegments; +} + +export function checkNativeItemsTextColor(bar: segmentedBarModule.SegmentedBar): boolean { + var isValid = true; + + var attrs = (bar.ios).titleTextAttributesForState(UIControlState.UIControlStateNormal); + isValid = bar.color && attrs && attrs.valueForKey(NSForegroundColorAttributeName) === bar.color.ios; + + return isValid; } \ No newline at end of file diff --git a/apps/tests/ui/segmented-bar/segmented-bar-tests.ts b/apps/tests/ui/segmented-bar/segmented-bar-tests.ts index c740feeaa..68faee747 100644 --- a/apps/tests/ui/segmented-bar/segmented-bar-tests.ts +++ b/apps/tests/ui/segmented-bar/segmented-bar-tests.ts @@ -2,6 +2,9 @@ import helper = require("../helper"); import viewModule = require("ui/core/view"); import segmentedBarTestsNative = require("./segmented-bar-tests-native"); +import bindable = require("ui/core/bindable"); +import observable = require("data/observable"); +import color = require("color"); // // # SegmentedBar @@ -57,6 +60,24 @@ export var testWhenSettingItemsToNonEmptyArrayTheSameAmountOfNativeItemsIsCreate }); } +export var testWhenItemsAreBoundTheTextColorIsPreserved = function () { + helper.buildUIAndRunTest(_createSegmentedBar(), function (views: Array) { + var segmentedBar = views[0]; + segmentedBar.color = new color.Color("red"); + + var model = new observable.Observable(); + model.set("items", [{ title: "One" }, { title: "Two" }, { title: "Three" }]); + var options: bindable.BindingOptions = { + sourceProperty: "items", + targetProperty: "items" + } + + segmentedBar.bind(options, model); + + TKUnit.assert(segmentedBarTestsNative.checkNativeItemsTextColor(segmentedBar), "Items text color not preserved" + "; Expected: " + segmentedBar.color); + }); +} + export var testWhenSettingItemsToEmptyArrayZeroNativeItemsAreCreated = function () { helper.buildUIAndRunTest(_createSegmentedBar(), function (views: Array) { var segmentedBar = views[0];