Support activity-toggle in otherwise non-toggle buttons
Change-Id: I263c1bad69bc7af3089b802e0cea9a3cc22835fe
diff --git a/dev/js/spec/buttongroupSpec.js b/dev/js/spec/buttongroupSpec.js
index 29fb4f5..9f20042 100644
--- a/dev/js/spec/buttongroupSpec.js
+++ b/dev/js/spec/buttongroupSpec.js
@@ -252,6 +252,36 @@
expect(e.children[1].getAttribute("title")).toBe("Haha");
});
+ it('should support active state on regular buttons', function () {
+ var group = buttonGroupClass.create();
+ let active = stateClass.create();
+ let count = 0;
+
+ group.add('Meta', {'active': active}, function () {
+ count++;
+ });
+
+ let e = group.element();
+ let button = e.firstChild;
+ let check = button.firstChild;
+
+ expect(check.classList.contains("check")).toBeTruthy();
+ expect(check.classList.contains("button-icon")).toBeTruthy();
+ expect(active.get()).toBeFalsy();
+ expect(check.classList.contains("checked")).toBeFalsy();
+ expect(count).toEqual(0);
+
+ // Clicking the check toggles active state, but does not trigger callback.
+ check.click();
+ expect(active.get()).toBeTruthy();
+ expect(check.classList.contains("checked")).toBeTruthy();
+ expect(count).toEqual(0);
+
+ // Clicking the button still triggers the callback.
+ button.click();
+ expect(count).toEqual(1);
+ });
+
it('should allow adoption', function () {
const el = document.createElement('div');