[Forms] Add ColorController spec

Add spec for ColorController, introduced to support color
selection in the Fixed Position toolbar, WTD-881
This commit is contained in:
Victor Woeltjen 2015-02-23 17:06:27 -08:00
parent 00f85447a2
commit 6068f0f9c2
2 changed files with 52 additions and 0 deletions

View File

@ -0,0 +1,51 @@
/*global define,describe,it,expect,beforeEach,waitsFor,jasmine*/
define(
["../../src/controllers/ColorController"],
function (ColorController) {
"use strict";
var COLOR_REGEX = /^#[0-9a-fA-F]{6}$/;
describe("The color picker's controller", function () {
var controller;
beforeEach(function () {
controller = new ColorController();
});
it("exposes groups of colors", function () {
var groups = controller.groups();
// Make sure that the groups array is non-empty
expect(Array.isArray(groups)).toBeTruthy();
expect(groups.length).not.toEqual(0);
groups.forEach(function (group) {
// Make sure each group is a non-empty array
expect(Array.isArray(group)).toBeTruthy();
expect(group.length).not.toEqual(0);
// Make sure they're valid web colors
group.forEach(function (color) {
expect(COLOR_REGEX.test(color)).toBeTruthy();
});
});
});
it("exposes unique colors", function () {
var count = 0, set = {};
// Count each color, and add them to the set
controller.groups().forEach(function (group) {
group.forEach(function (color) {
count += 1;
set[color] = true;
});
})
// Size of set should be number of colors if all were unique
expect(Object.keys(set).length).toEqual(count);
});
});
}
);

View File

@ -1,6 +1,7 @@
[
"MCTControl",
"MCTForm",
"controllers/ColorController",
"controllers/CompositeController",
"controllers/DateTimeController",
"controllers/FormController"