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); }); }); });