<!doctype html>
<meta charset="utf-8">
<title>'tab-size' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';

runPropertyTests('tab-size', [
  {
    // tab-size can be a non-negative number
    syntax: '<number>',
    specified: (input, result) => {
      if (input instanceof CSSUnitValue && (!Number.isInteger(input.value) || input.value < 0))
        assert_style_value_equals(result, new CSSMathSum(input));
      else
        assert_style_value_equals(result, input);
    },
    computed: (input, result) => {
      const number = input.to('number');
      if (number < 0)
        assert_style_value_equals(result, new CSSUnitValue(0, 'number'));
      else if (!Number.isInteger(number.value))
        assert_style_value_equals(result, new CSSUnitValue(number.value, 'number'));
      else
        assert_style_value_equals(result, number);
    }
  },
  {
    syntax: '<length>',
    specified: assert_is_equal_with_range_handling
  },
]);

</script>
