Files
NativeScript/apps/tests/ui/styling/visual-state-tests.ts
Erjan Gavalji f15f283c74 Reorder test file structure to match the modules
Needed to have a nice structured cookbook dir in the docs

Includes:
Move the data-module tests under the data dir
Move the frame tests under the ui dir
Rename the dialog.md file to dialogs.md
Fix the web-view title
Add previous_url attributes to each article for SEO
Rename the style dir to styling to match the reference
Fix the frame-tests path
2016-05-05 10:43:35 +03:00

108 lines
4.1 KiB
TypeScript

import TKUnit = require("../../TKUnit");
import view = require("ui/core/view");
import page = require("ui/page");
import vsConstants = require("ui/styling/visual-state-constants");
import types = require("utils/types");
import helper = require("../helper");
export var test_VisualStates_Parsed = function () {
var test = function (views: Array<view.View>) {
var page = <page.Page>views[0];
page.css = "button:hovered { color: red; background-color: orange } button:pressed { color: white; background-color: black }";
var states = page._getStyleScope().getVisualStates(views[1]);
TKUnit.assert(types.isDefined(states));
var counter = 0,
hoveredFound = false,
pressedFound = false;
for (var p in states) {
counter++;
if (p === vsConstants.Hovered) {
hoveredFound = true;
} else if (p === vsConstants.Pressed) {
pressedFound = true;
}
}
TKUnit.assert(counter === 2);
TKUnit.assert(hoveredFound);
TKUnit.assert(pressedFound);
}
helper.do_PageTest_WithButton(test);
}
export var test_goToVisualState = function () {
var test = function (views: Array<view.View>) {
(<page.Page>views[0]).css = "button:hovered { color: red; background-color: orange } button:pressed { color: white; background-color: black }";
var btn = views[1];
btn._goToVisualState("hovered");
TKUnit.assert(btn.visualState === "hovered");
TKUnit.assert(types.isDefined(btn.style.color) && btn.style.color.name === "red");
TKUnit.assert(types.isDefined(btn.style.backgroundColor) && btn.style.backgroundColor.name === "orange");
btn._goToVisualState("pressed");
TKUnit.assert(btn.visualState === "pressed");
TKUnit.assert(types.isDefined(btn.style.color) && btn.style.color.name === "white");
TKUnit.assert(types.isDefined(btn.style.backgroundColor) && btn.style.backgroundColor.name === "black");
}
helper.do_PageTest_WithButton(test);
}
export var test_goToVisualState_NoState_ShouldResetStyledProperties = function () {
var test = function (views: Array<view.View>) {
(<page.Page>views[0]).css = "button:hovered { color: red; background-color: orange }";
var btn = views[1];
btn._goToVisualState("hovered");
TKUnit.assert(btn.visualState === "hovered");
TKUnit.assert(types.isDefined(btn.style.color) && btn.style.color.name === "red");
TKUnit.assert(types.isDefined(btn.style.backgroundColor) && btn.style.backgroundColor.name === "orange");
btn._goToVisualState("pressed");
// since there are no modifiers for the "Pressed" state, the "Normal" state is returned.
TKUnit.assert(btn.visualState === "normal");
// properties are reset (set to undefined)
TKUnit.assert(types.isUndefined(btn.style.color));
TKUnit.assert(types.isUndefined(btn.style.backgroundColor));
}
helper.do_PageTest_WithButton(test);
}
export var test_goToVisualState_NoState_ShouldGoToNormal = function () {
var test = function (views: Array<view.View>) {
(<page.Page>views[0]).css = "button { color: orange; background-color: black } button:hovered { color: red; background-color: orange }";
var btn = views[1];
btn._goToVisualState("hovered");
TKUnit.assert(btn.visualState === "hovered");
TKUnit.assert(types.isDefined(btn.style.color) && btn.style.color.name === "red");
TKUnit.assert(types.isDefined(btn.style.backgroundColor) && btn.style.backgroundColor.name === "orange");
btn._goToVisualState("pressed");
// since there are no modifiers for the "Pressed" state, the "Normal" state is returned.
TKUnit.assert(btn.visualState === "normal");
// the actual state is "normal" and properties are reverted to these settings (if any)
TKUnit.assert(types.isDefined(btn.style.color) && btn.style.color.name === "orange");
TKUnit.assert(types.isDefined(btn.style.backgroundColor) && btn.style.backgroundColor.name === "black");
}
helper.do_PageTest_WithButton(test);
}