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