testAddRemoveClassName() {
    assertNull(
        'Control must not have any extra class names by default',
        control.getExtraClassNames());
    control.addClassName('foo');
    assertArrayEquals(
        'Control must have expected extra class names', ['foo'],
        control.getExtraClassNames());
    assertNull('Control must not have a DOM', control.getElement());

    control.createDom();
    assertSameElements(
        'Control\'s element must have expected class names',
        ['goog-control', 'foo'], classlist.get(control.getElement()));

    control.addClassName('bar');
    assertArrayEquals(
        'Control must have expected extra class names', ['foo', 'bar'],
        control.getExtraClassNames());
    assertSameElements(
        'Control\'s element must have expected class names',
        ['goog-control', 'foo', 'bar'], classlist.get(control.getElement()));

    control.addClassName('bar');
    assertArrayEquals(
        'Adding the same class name again must be a no-op', ['foo', 'bar'],
        control.getExtraClassNames());
    assertSameElements(
        'Adding the same class name again must be a no-op',
        ['goog-control', 'foo', 'bar'], classlist.get(control.getElement()));

    control.addClassName(null);
    assertArrayEquals(
        'Adding null class name must be a no-op', ['foo', 'bar'],
        control.getExtraClassNames());
    assertSameElements(
        'Adding null class name must be a no-op',
        ['goog-control', 'foo', 'bar'], classlist.get(control.getElement()));

    control.removeClassName(null);
    assertArrayEquals(
        'Removing null class name must be a no-op', ['foo', 'bar'],
        control.getExtraClassNames());
    assertSameElements(
        'Removing null class name must be a no-op',
        ['goog-control', 'foo', 'bar'], classlist.get(control.getElement()));

    control.removeClassName('foo');
    assertArrayEquals(
        'Control must have expected extra class names', ['bar'],
        control.getExtraClassNames());
    assertSameElements(
        'Control\'s element must have expected class names',
        ['goog-control', 'bar'], classlist.get(control.getElement()));

    control.removeClassName('bar');
    assertNull(
        'Control must not have any extra class names',
        control.getExtraClassNames());
    assertSameElements(
        'Control\'s element must have expected class names', ['goog-control'],
        classlist.get(control.getElement()));
  }
Tests {@link Control#addExtraClassName} and
{@link Control#removeExtraClassName}.