testMakeUnselectable() {
    const div = dom.createElement(TagName.DIV);
    div.innerHTML = '<div>No input</div>' +
        '<p><input type="checkbox">Checkbox</p>' +
        '<span><input type="text"></span>';
    document.body.appendChild(div);

    const eventHandler = new LooseMock(EventHandler);
    if (BrowserFeature.HAS_UNSELECTABLE_STYLE) {
      eventHandler.listen(
          div, EventType.MOUSEDOWN, mockmatchers.isFunction, true);
    }
    eventHandler.$replay();

    const childDiv = div.firstChild;
    const p = div.childNodes[1];
    const span = div.lastChild;
    const checkbox = p.firstChild;
    const text = span.firstChild;

    style.makeUnselectable(div, eventHandler);

    assertEquals(
        'For browsers with non-overridable selectability, the root should be ' +
            'selectable.  Otherwise it should be unselectable.',
        !BrowserFeature.HAS_UNSELECTABLE_STYLE, googStyle.isUnselectable(div));
    assertTrue(googStyle.isUnselectable(childDiv));
    assertTrue(googStyle.isUnselectable(p));
    assertTrue(googStyle.isUnselectable(checkbox));

    assertEquals(
        'For browsers with non-overridable selectability, the span will be ' +
            'selectable.  Otherwise it will be unselectable. ',
        !BrowserFeature.HAS_UNSELECTABLE_STYLE, googStyle.isUnselectable(span));
    assertFalse(googStyle.isUnselectable(text));

    eventHandler.$verify();
  }
@suppress {missingProperties,checkTypes} suppression added to enable type
     checking