testSetProperties() {
    const attrs = {
      'name': 'test3',
      'title': 'A title',
      'random': 'woop',
      'other-random': null,
      'href': SafeUrl.sanitize('https://google.com'),
      'stringWithTypedStringProp': 'http://example.com/',
      'numberWithTypedStringProp': 123,
      'booleanWithTypedStringProp': true,
    };

    // TODO(johnlenz): Attempting to set an property on a primitive throws in
    // strict mode
    /*
    // Primitives with properties that wrongly indicate that the text is of a
    // type that implements `goog.string.TypedString`. This simulates a property
    // renaming collision with a String, Number or Boolean property set
    // externally. renaming collision with a String property set externally
    // (b/80124112).
    attrs['stringWithTypedStringProp'].implementsGoogStringTypedString = true;
    attrs['numberWithTypedStringProp'].implementsGoogStringTypedString = true;
    attrs['booleanWithTypedStringProp'].implementsGoogStringTypedString = true;
    */

    const el = $('testEl');
    googDom.setProperties(el, attrs);
    assertEquals('test3', el.name);
    assertEquals('A title', el.title);
    assertEquals('woop', el.random);
    assertEquals('https://google.com', el.href);
    assertEquals('http://example.com/', el.stringWithTypedStringProp);
    assertEquals(123, el.numberWithTypedStringProp);
    assertEquals(true, el.booleanWithTypedStringProp);
  }
@suppress {strictMissingProperties,missingProperties} suppression added to
     enable type checking