testCheckboxFireEvents() {
    const node = dom.getElement('demoSelectionMenuButton');
    selectionMenuButton.decorate(node);

    let menuItemClicked = 0;
    let lastMenuItemClicked = null;
    events.listen(
        selectionMenuButton.getMenu(), Component.EventType.ACTION, (e) => {
          menuItemClicked++;
          lastMenuItemClicked = e.target;
        });

    const checkbox = dom.getElement('demoCheckbox');
    assertFalse(
        'Checkbox must be unchecked (i.e. unselected)', checkbox.checked);

    /**
     * @suppress {strictMissingProperties} suppression added to enable type
     * checking
     */
    checkbox.checked = true;
    testingEvents.fireClickSequence(checkbox);
    assertFalse(
        'Menu must be closed when clicking checkbox',
        selectionMenuButton.isOpen());
    assertEquals(
        'Number of menu items clicked should be 1', 1, menuItemClicked);
    assertEquals(
        'menuItem1 should be the last menuitem clicked',
        dom.getElement('menuItem1'), lastMenuItemClicked.getElement());

    /**
     * @suppress {strictMissingProperties} suppression added to enable type
     * checking
     */
    checkbox.checked = false;
    testingEvents.fireClickSequence(checkbox);
    assertFalse(
        'Menu must be closed when clicking checkbox',
        selectionMenuButton.isOpen());
    assertEquals(
        'Number of menu items clicked should be 2', 2, menuItemClicked);
    assertEquals(
        'menuItem2 should be the last menuitem clicked',
        dom.getElement('menuItem2'), lastMenuItemClicked.getElement());
  }
Tests that the checkbox fires the same events as the first 2 items.
     @suppress {strictMissingProperties} suppression added to enable type
     checking