wpt / svg / types / scripted / SVGAnimatedInteger.html

Status: FAIL | Duration: 49ms | Subtests: 0/1 | Open test on wpt.live | wpt.fyi

/svg/types/scripted/SVGAnimatedInteger.html

<!DOCTYPE HTML>
<title>SVGAnimatedInteger interface - utilizing the targetX property of SVGFEConvolveMatrix</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(function() {
  // This test checks the SVGAnimatedInteger API - utilizing the targetX property of SVGFEConvolveMatrix.

  var feConvolveMatrix = document.createElementNS("http://www.w3.org/2000/svg", "feConvolveMatrix");

  // Check initial targetX value.
  assert_true(feConvolveMatrix.targetX instanceof SVGAnimatedInteger);
  assert_equals(typeof(feConvolveMatrix.targetX.baseVal), "number");
  assert_equals(feConvolveMatrix.targetX.baseVal, 0);

  // Check that integers are static, caching value in a local variable and modifying it, should have no effect.
  var numRef = feConvolveMatrix.targetX.baseVal;
  numRef = 100;
  assert_equals(numRef, 100);
  assert_equals(feConvolveMatrix.targetX.baseVal, 0);

  // Check assigning various valid and invalid values.
  feConvolveMatrix.targetX.baseVal = -1;
  // Negative values are allowed from SVG DOM, but should lead to an error when rendering (disable the filter)
  assert_equals(feConvolveMatrix.targetX.baseVal, -1);
  feConvolveMatrix.targetX.baseVal = 300;
  assert_equals(feConvolveMatrix.targetX.baseVal, 300);
  // ECMA-262, 9.5, "ToInt32"
  feConvolveMatrix.targetX.baseVal = 'aString';
  assert_equals(feConvolveMatrix.targetX.baseVal, 0);
  feConvolveMatrix.targetX.baseVal = feConvolveMatrix;
  assert_equals(feConvolveMatrix.targetX.baseVal, 0);
  feConvolveMatrix.targetX.baseVal = 300;
  assert_equals(feConvolveMatrix.targetX.baseVal, 300);

  // Check initial orderX value.
  assert_true(feConvolveMatrix.orderX instanceof SVGAnimatedInteger);
  assert_equals(typeof(feConvolveMatrix.orderX.baseVal), "number");
  assert_equals(feConvolveMatrix.orderX.baseVal, 3);

  // Check assigning various valid and invalid values.
  feConvolveMatrix.setAttribute("order", "5");
  assert_equals(feConvolveMatrix.orderX.baseVal, 5);
  feConvolveMatrix.setAttribute("order", "-1.5");
  // Invalid values should result in the initial value being returned
  // For orderX that is 3 per
  // https://www.w3.org/TR/filter-effects-1/#element-attrdef-order
  assert_equals(feConvolveMatrix.orderX.baseVal, 3);
  feConvolveMatrix.orderX.baseVal = -2;
  // Negative values are allowed from SVG DOM, but should lead to an error when rendering (disable the filter)
  assert_equals(feConvolveMatrix.orderX.baseVal, -2);
});
</script>