define(["sugar-web/graphics/menupalette", "sugar-web/graphics/palette"], function (menupalette, palette) {
|
|
|
|
'use strict';
|
|
|
|
describe("menupalette", function () {
|
|
|
|
var invoker;
|
|
var menuData;
|
|
var menuPalette;
|
|
|
|
beforeEach(function () {
|
|
invoker = document.createElement('button');
|
|
|
|
menuData = [
|
|
{
|
|
label: "One",
|
|
id: "one-button",
|
|
icon: true
|
|
},
|
|
{
|
|
label: "Two",
|
|
id: "two-button",
|
|
icon: true
|
|
},
|
|
{
|
|
label: "Three",
|
|
id: "three-button",
|
|
icon: true
|
|
}
|
|
];
|
|
|
|
menuPalette = new menupalette.MenuPalette(invoker, undefined,
|
|
menuData);
|
|
});
|
|
|
|
it("should have a fixed number of clickable items", function () {
|
|
var buttons = menuPalette.getPalette().
|
|
querySelectorAll('.container button');
|
|
expect(buttons.length).toBe(menuData.length);
|
|
});
|
|
|
|
it("should emit a signal with the clicked item", function () {
|
|
var button;
|
|
var buttonSelected;
|
|
|
|
function onItemSelected(event) {
|
|
button = event.detail.target;
|
|
buttonSelected = true;
|
|
}
|
|
|
|
runs(function () {
|
|
buttonSelected = false;
|
|
menuPalette.addEventListener('selectItem', onItemSelected);
|
|
|
|
var buttons = menuPalette.getPalette().
|
|
querySelectorAll('.container button');
|
|
buttons[1].click();
|
|
});
|
|
|
|
waitsFor(function () {
|
|
return buttonSelected;
|
|
}, "should have selected a button");
|
|
|
|
runs(function () {
|
|
expect(button.id).toBe("two-button");
|
|
});
|
|
});
|
|
|
|
it("should be an instance of the child class", function () {
|
|
expect(menuPalette instanceof menupalette.MenuPalette).toBe(true);
|
|
});
|
|
|
|
it("should be an instance of the parent class", function () {
|
|
expect(menuPalette instanceof palette.Palette).toBe(true);
|
|
});
|
|
|
|
});
|
|
});
|