<!doctype html>
<title>Historical Geometry APIs</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<link rel=help href="https://drafts.fxtf.org/geometry/#changes">
<script>
// Removed members
[
  // https://github.com/w3c/fxtf-drafts/commit/99e3212469026b2f2f50926a41912d110a1741b7
  ['DOMMatrix', 'scaleNonUniformSelf'],
  // https://github.com/w3c/fxtf-drafts/commit/86da3dc961d442f9d8dc7ab59065a9804e109286
  ['DOMMatrix', 'multiplyBy'],
  ['DOMMatrix', 'preMultiplyBy'],
  ['DOMMatrix', 'translateBy'],
  ['DOMMatrix', 'scaleBy'],
  ['DOMMatrix', 'scale3dBy'],
  ['DOMMatrix', 'scaleNonUniformBy'],
  ['DOMMatrix', 'rotateBy'],
  ['DOMMatrix', 'rotateFromVectorBy'],
  ['DOMMatrix', 'rotateAxisAngleBy'],
  ['DOMMatrix', 'skewXBy'],
  ['DOMMatrix', 'skewYBy'],
  // https://github.com/w3c/fxtf-drafts/commit/555a8c0beb1b7b809ccebd861a0352df31530b56
  ['DOMQuad', 'bounds'],
].forEach(([interf, member]) => {
  test(() => {
    assert_true(interf in self, `${interf} should exist`);
    assert_false(member in self[interf].prototype, 'on prototype');
    const instance = new self[interf]();
    assert_false(member in instance, 'on instance');
  }, `${interf} ${member} must be nuked`);
});

// Removed static methods
// https://github.com/w3c/fxtf-drafts/commit/3c43462bcc857bb830f8af04532cdf33c5a634aa
['DOMMatrix', 'DOMMatrixReadOnly'].forEach(interf => {
  test(() => {
    assert_true(interf in self, `${interf} should exist`);
    assert_false('fromString' in self[interf], 'on interface object');
  }, `${interf} fromString static member must be nuked`);
});

// Optional arguments
[
  // https://github.com/w3c/fxtf-drafts/commit/99e3212469026b2f2f50926a41912d110a1741b7
  ['DOMMatrixReadOnly', 'scale'],
  ['DOMMatrix', 'scaleSelf'],
  // https://github.com/w3c/fxtf-drafts/commit/8493a9c3d94da91ead5db6e05b51319494f5855f
  ['DOMMatrixReadOnly', 'translate'],
  ['DOMMatrixReadOnly', 'scale3d'],
  ['DOMMatrixReadOnly', 'rotateFromVector'],
  ['DOMMatrixReadOnly', 'rotateAxisAngle'],
  ['DOMMatrixReadOnly', 'skewX'],
  ['DOMMatrixReadOnly', 'skewY'],
  ['DOMMatrix', 'translateSelf'],
  ['DOMMatrix', 'scale3dSelf'],
  ['DOMMatrix', 'rotateFromVectorSelf'],
  ['DOMMatrix', 'rotateAxisAngleSelf'],
  ['DOMMatrix', 'skewXSelf'],
  ['DOMMatrix', 'skewYSelf'],
  // https://github.com/w3c/fxtf-drafts/commit/62b9cb9d5be4982d2a9cbf314e3a59efb8a68dd6
  ['DOMPointReadOnly', 'matrixTransform'],
  ['DOMMatrixReadOnly', 'multiply'],
  ['DOMMatrix', 'multiplySelf'],
  ['DOMMatrix', 'preMultiplySelf'],
].forEach(([interf, member]) => {
  test(() => {
    assert_equals(self[interf].prototype[member].length, 0, 'on prototype');
    const instance = new self[interf]();
    assert_equals(instance[member].length, 0, 'on instance');
  }, `${interf} ${member} number of required arguments`);
});

// Renamed interfaces
[
  // https://github.com/w3c/fxtf-drafts/commit/9031c94c8536cec7f7007c18d7be037a793e5ed5
  'CSSMatrix',
  // https://github.com/w3c/csswg-drafts/commit/8d01810fe403bc935c24ee5a29101cac9b958c8c
  'DOMMatrixImmutable',
  // https://github.com/w3c/csswg-drafts/commit/6e05c3ee01528daba6dc0776f342beae577cefa9
  'ClientRect',
  'ClientRectList',
  // Non-standard
  'WebKitPoint',
  'MSCSSMatrix',
].forEach(interf => {
  test(() => {
    assert_false(interf in self);
  }, `${interf} must be nuked`);
});
</script>
