<!DOCTYPE html>
<meta name="assert" content="This test checks that an inline-layout() function is parses and serializes correctly from inline style." />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<div id=test1></div>
<div id=test2></div>
<div id=test3></div>
<script>
test(function() {
  const test1 = document.getElementById('test1');
  assert_equals(test1.style.display, '');

  test1.style.display = 'inline-layout(test1)';
  assert_equals(test1.style.display, 'inline-layout(test1)');
});

test(function() {
  const test2 = document.getElementById('test2');
  assert_equals(test2.style.display, '');

  // inline-layout() should fail to parse.
  test2.style.display = 'inline-layout()';
  assert_equals(test2.style.display, '');
});

test(function() {
  const test3 = document.getElementById('test3');
  assert_equals(test3.style.display, '');

  // inline-layout(test3, invalid) should fail to parse.
  test3.style.display = 'inline-layout(test3, invalid)';
  assert_equals(test3.style.display, '');
});
</script>
