224 lines
5.4 KiB
JavaScript
224 lines
5.4 KiB
JavaScript
/*
|
|
**********************
|
|
|
|
Left/Right Track Tests
|
|
|
|
**********************
|
|
|
|
This spec has tests for checking that the widths of the left and right
|
|
segments are the correct widths and colors, based on their CSS.
|
|
*/
|
|
describe("Low/High Track Tests", function() {
|
|
|
|
var unstyledID = "low-high-slider";
|
|
var styledID = "low-high-slider-styled";
|
|
|
|
var testSlider;
|
|
|
|
describe("Single-value sliders, no styling", function() {
|
|
|
|
var id = unstyledID;
|
|
|
|
beforeEach(function() {
|
|
testSlider = $("#testSlider1").slider({
|
|
id: id,
|
|
min: 0,
|
|
max: 10,
|
|
value: 5
|
|
});
|
|
});
|
|
|
|
it("low track width is zero", function()
|
|
{
|
|
var leftTrack = $("#" + id + " .slider-track-low");
|
|
expect($(leftTrack).css("width")).toBe("0px");
|
|
});
|
|
|
|
it("high track width is 50%", function()
|
|
{
|
|
var rightTrack = $("#" + id + " .slider-track-high");
|
|
var trackWidth = rightTrack.parent().width();
|
|
expect($(rightTrack).css("width")).toBe((trackWidth / 2) + "px");
|
|
});
|
|
|
|
it("high track is transparent", function()
|
|
{
|
|
var rightTrack = $("#" + id + " .slider-track-high");
|
|
var rightColor = rightTrack.css("background-color");
|
|
var isTransparent = rightColor.match(/rgba\([0-9]{1,3}, [0-9]{1,3}, [0-9]{1,3}, 0\)/);
|
|
expect(isTransparent).toBeTruthy();
|
|
});
|
|
|
|
afterEach(function() {
|
|
if(testSlider) {
|
|
testSlider.slider('destroy');
|
|
testSlider = null;
|
|
}
|
|
});
|
|
});
|
|
|
|
describe("Single-value sliders, with styling", function() {
|
|
|
|
var id = styledID;
|
|
|
|
beforeEach(function() {
|
|
testSlider = $("#testSlider1").slider({
|
|
id: id,
|
|
min: 0,
|
|
max: 10,
|
|
value: 5
|
|
});
|
|
});
|
|
|
|
it("low track width is zero", function()
|
|
{
|
|
var leftTrack = $("#" + id + " .slider-track-low");
|
|
expect($(leftTrack).css("width")).toBe("0px");
|
|
});
|
|
|
|
it("high track width is 50%", function()
|
|
{
|
|
var rightTrack = $("#" + id + " .slider-track-high");
|
|
var trackWidth = rightTrack.parent().width();
|
|
expect($(rightTrack).css("width")).toBe((trackWidth / 2) + "px");
|
|
});
|
|
|
|
it("high track is red", function()
|
|
{
|
|
var rightTrack = $("#" + id + " .slider-track-high");
|
|
var rightColor = rightTrack.css("background-color");
|
|
expect(rightColor).toBe("rgb(255, 0, 0)");
|
|
});
|
|
|
|
afterEach(function() {
|
|
if(testSlider) {
|
|
testSlider.slider('destroy');
|
|
testSlider = null;
|
|
}
|
|
});
|
|
});
|
|
|
|
describe("Range sliders, no styling", function() {
|
|
|
|
var id = unstyledID;
|
|
var values = {
|
|
min: 0,
|
|
max: 10,
|
|
values: [ 4, 6 ]
|
|
};
|
|
|
|
beforeEach(function() {
|
|
testSlider = $("#testSlider1").slider({
|
|
id: id,
|
|
min: values.min,
|
|
max: values.max,
|
|
range: true,
|
|
value: values.values
|
|
});
|
|
});
|
|
|
|
it("low track width is correct", function()
|
|
{
|
|
var leftTrack = $("#" + id + " .slider-track-low");
|
|
|
|
var trackWidth = leftTrack.parent().width();
|
|
var expectedWidth = ((values.values[0] - values.min) / (values.max - values.min)) * trackWidth;
|
|
|
|
expect($(leftTrack).css("width")).toBe(expectedWidth + "px");
|
|
});
|
|
|
|
it("high track width is correct", function()
|
|
{
|
|
var rightTrack = $("#" + id + " .slider-track-high");
|
|
var trackWidth = rightTrack.parent().width();
|
|
|
|
var expectedWidth = ((values.max - values.values[1]) / (values.max - values.min)) * trackWidth;
|
|
|
|
expect($(rightTrack).css("width")).toBe(expectedWidth + "px");
|
|
});
|
|
|
|
it("low track is transparent", function()
|
|
{
|
|
var leftTrack = $("#" + id + " .slider-track-low");
|
|
var leftColor = leftTrack.css("background-color");
|
|
var isTransparent = leftColor.match(/rgba\([0-9]{1,3}, [0-9]{1,3}, [0-9]{1,3}, 0\)/);
|
|
expect(isTransparent).toBeTruthy();
|
|
});
|
|
|
|
it("high track is transparent", function()
|
|
{
|
|
var rightTrack = $("#" + id + " .slider-track-high");
|
|
var rightColor = rightTrack.css("background-color");
|
|
var isTransparent = rightColor.match(/rgba\([0-9]{1,3}, [0-9]{1,3}, [0-9]{1,3}, 0\)/);
|
|
expect(isTransparent).toBeTruthy();
|
|
});
|
|
|
|
afterEach(function() {
|
|
if(testSlider) {
|
|
testSlider.slider('destroy');
|
|
testSlider = null;
|
|
}
|
|
});
|
|
});
|
|
|
|
describe("Range sliders, with styling", function() {
|
|
|
|
var id = styledID;
|
|
var values = {
|
|
min: 0,
|
|
max: 10,
|
|
values: [ 4, 6 ]
|
|
};
|
|
|
|
beforeEach(function() {
|
|
testSlider = $("#testSlider1").slider({
|
|
id: id,
|
|
min: values.min,
|
|
max: values.max,
|
|
range: true,
|
|
value: values.values
|
|
});
|
|
});
|
|
|
|
it("low track width is correct", function()
|
|
{
|
|
var leftTrack = $("#" + id + " .slider-track-low");
|
|
|
|
var trackWidth = leftTrack.parent().width();
|
|
var expectedWidth = ((values.values[0] - values.min) / (values.max - values.min)) * trackWidth;
|
|
|
|
expect($(leftTrack).css("width")).toBe(expectedWidth + "px");
|
|
});
|
|
|
|
it("high track width is correct", function()
|
|
{
|
|
var rightTrack = $("#" + id + " .slider-track-high");
|
|
var trackWidth = rightTrack.parent().width();
|
|
|
|
var expectedWidth = ((values.max - values.values[1]) / (values.max - values.min)) * trackWidth;
|
|
|
|
expect($(rightTrack).css("width")).toBe(expectedWidth + "px");
|
|
});
|
|
|
|
it("low track is green", function()
|
|
{
|
|
var leftTrack = $("#" + id + " .slider-track-low");
|
|
var leftColor = leftTrack.css("background-color");
|
|
expect(leftColor).toBe("rgb(0, 255, 0)");
|
|
});
|
|
|
|
it("high track is red", function()
|
|
{
|
|
var rightTrack = $("#" + id + " .slider-track-high");
|
|
var rightColor = rightTrack.css("background-color");
|
|
expect(rightColor).toBe("rgb(255, 0, 0)");
|
|
});
|
|
|
|
afterEach(function() {
|
|
if(testSlider) {
|
|
testSlider.slider('destroy');
|
|
testSlider = null;
|
|
}
|
|
});
|
|
});
|
|
}); |