define(["sugar-web/graphics/radiobuttonsgroup"], function (
|
|
radioButtonsGroup) {
|
|
|
|
'use strict';
|
|
|
|
var elem1;
|
|
var elem2;
|
|
var elem3;
|
|
|
|
beforeEach(function () {
|
|
elem1 = document.createElement('button');
|
|
elem2 = document.createElement('button');
|
|
elem3 = document.createElement('button');
|
|
});
|
|
|
|
describe("radioToolButton", function () {
|
|
var wasClicked;
|
|
|
|
it("should construct", function () {
|
|
var radio = new radioButtonsGroup.RadioButtonsGroup(
|
|
[elem1, elem2, elem3]);
|
|
expect(radio.elems.length).toBe(3);
|
|
});
|
|
|
|
it("should start active the first by default", function () {
|
|
var radio = new radioButtonsGroup.RadioButtonsGroup(
|
|
[elem1, elem2, elem3]);
|
|
expect(radio.getActive()).toBe(elem1);
|
|
});
|
|
|
|
it("should start active the first with 'active' class", function () {
|
|
elem2.className = "active red";
|
|
elem3.className = "active blue";
|
|
var radio = new radioButtonsGroup.RadioButtonsGroup(
|
|
[elem1, elem2, elem3]);
|
|
expect(radio.getActive()).toBe(elem2);
|
|
});
|
|
|
|
it("should add 'active' class to the selected item", function () {
|
|
var radio = new radioButtonsGroup.RadioButtonsGroup(
|
|
[elem1, elem2, elem3]);
|
|
var elem = radio.getActive();
|
|
expect(elem.classList.contains('active')).toBe(true);
|
|
});
|
|
|
|
it("should change the active one on click", function () {
|
|
var radio = new radioButtonsGroup.RadioButtonsGroup(
|
|
[elem1, elem2, elem3]);
|
|
|
|
// let's click elem2
|
|
|
|
runs(function () {
|
|
wasClicked = false;
|
|
|
|
elem2.onclick = function () {
|
|
wasClicked = true;
|
|
};
|
|
|
|
elem2.click();
|
|
});
|
|
|
|
waitsFor(function () {
|
|
return wasClicked;
|
|
}, "the element should be clicked");
|
|
|
|
runs(function () {
|
|
var elem = radio.getActive();
|
|
expect(elem).toBe(elem2);
|
|
expect(elem.classList.contains('active')).toBe(true);
|
|
});
|
|
|
|
// now let's click elem1
|
|
|
|
runs(function () {
|
|
wasClicked = false;
|
|
|
|
elem1.onclick = function () {
|
|
wasClicked = true;
|
|
};
|
|
|
|
elem1.click();
|
|
});
|
|
|
|
waitsFor(function () {
|
|
return wasClicked;
|
|
}, "the element should be clicked");
|
|
|
|
runs(function () {
|
|
var elem = radio.getActive();
|
|
expect(elem).toBe(elem1);
|
|
expect(elem.classList.contains('active')).toBe(true);
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
});
|