<html> <!-- webkit-test-runner [ internal:CSSLogicalEnabled=true ] -->
<head>
<meta charset="utf-8">
<title>inset does not support quirky-length</title>
<link rel="help" href="https://quirks.spec.whatwg.org/#the-unitless-length-quirk">
<meta name="assert" content="quirky-length is not supported by inset.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="target"></div>
<script>
'use strict';

test(() => {
  const quirky_values = [
    '1',
    '1 2px',
    '1px 2',
    '1 2',
    '1 2px 3px',
    '1px 2 3px',
    '1px 2px 3',
    '1 2 3',
    '1 2px 3px 4px',
    '1px 2 3px 4px',
    '1px 2px 3 4px',
    '1px 2px 3px 4',
    '1 2 3 4'
  ];

  target.style['inset'] = '5px 6px 7px 8px';

  for (let value of quirky_values) {
    target.style['inset'] = value;
    assert_equals(target.style['inset'], '5px 6px 7px 8px', 'inset rejects quirky length "' + value + '"');
  }
}, 'inset does not support quirky length values');

</script>
</body>
</html>
