Add toggle button to buttongroup
Change-Id: I8b65001ca0e39dc4a04d19ee1e8a90fdb414b35f
diff --git a/dev/js/spec/buttongroupSpec.js b/dev/js/spec/buttongroupSpec.js
index a25d15c..9183759 100644
--- a/dev/js/spec/buttongroupSpec.js
+++ b/dev/js/spec/buttongroupSpec.js
@@ -1,4 +1,4 @@
-define(['buttongroup'], function (buttonGroupClass) {
+define(['buttongroup','state'], function (buttonGroupClass, stateClass) {
var FunObj = {
count : 0,
@@ -109,5 +109,35 @@
it('should open lists', function () {
});
+
+ it('should support toggle buttons', function () {
+ var group = buttonGroupClass.create();
+
+ let s = stateClass.create();
+
+ expect(s.get()).toBeFalsy();
+
+ group.addToggle('example',["examplecls"],s);
+
+ let e = group.element();
+
+ expect(e.firstChild.getAttribute("title")).toBe("example");
+ expect(e.firstChild.classList.contains("examplecls")).toBeTruthy();
+
+ expect(e.firstChild.firstChild.classList.contains("check")).toBeTruthy();
+ expect(e.firstChild.firstChild.classList.contains("button-icon")).toBeTruthy();
+ expect(e.firstChild.lastChild.textContent).toBe("example");
+
+ // Check state
+ expect(s.get()).toBeFalsy();
+ expect(e.firstChild.firstChild.classList.contains("checked")).toBeFalsy();
+
+ // Click on the button
+ e.firstChild.click();
+
+ // Check state
+ expect(s.get()).toBeTruthy();
+ expect(e.firstChild.firstChild.classList.contains("checked")).toBeTruthy();
+ });
});
});