<!doctype html>
<meta charset="utf-8">
<title>Inline StylePropertyMap.delete() with shorthands</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#delete-a-stylepropertymap">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<body>
<div id="log">
<script>
'use strict';

test(t => {
  let [elem, styleMap] = createElementWithInlineStyleMap(t, '');
  assert_equals(elem.style.getPropertyValue('margin'), '');
  assert_equals(elem.style.getPropertyValue('margin-top'), '');
  assert_equals(elem.style.getPropertyValue('margin-left'), '');
  assert_equals(elem.style.getPropertyValue('margin-bottom'), '');
  assert_equals(elem.style.getPropertyValue('margin-right'), '');

  styleMap.delete('margin');
  assert_equals(elem.style.getPropertyValue('margin'), '');
  assert_equals(elem.style.getPropertyValue('margin-top'), '');
  assert_equals(elem.style.getPropertyValue('margin-left'), '');
  assert_equals(elem.style.getPropertyValue('margin-bottom'), '');
  assert_equals(elem.style.getPropertyValue('margin-right'), '');
}, 'Deleting a shorthand property not in the inline style is a no-op');

test(t => {
  let [elem, styleMap] = createElementWithInlineStyleMap(t, 'margin: 10px');
  assert_not_equals(elem.style.getPropertyValue('margin'), '');

  styleMap.delete('margin');
  assert_equals(elem.style.getPropertyValue('margin'), '');
  assert_equals(elem.style.getPropertyValue('margin-top'), '');
  assert_equals(elem.style.getPropertyValue('margin-left'), '');
  assert_equals(elem.style.getPropertyValue('margin-bottom'), '');
  assert_equals(elem.style.getPropertyValue('margin-right'), '');
}, 'Deleting a shorthand property in the inline style removes both it and ' +
   'its longhands');

test(t => {
  let [elem, styleMap] = createElementWithInlineStyleMap(t, 'margin: 10px');
  assert_not_equals(elem.style.getPropertyValue('margin-top'), '');

  styleMap.delete('margin-top');
  assert_equals(elem.style.getPropertyValue('margin'), '');
  assert_equals(elem.style.getPropertyValue('margin-top'), '');
  assert_equals(elem.style.getPropertyValue('margin-left'), '10px');
  assert_equals(elem.style.getPropertyValue('margin-bottom'), '10px');
  assert_equals(elem.style.getPropertyValue('margin-right'), '10px');
}, 'Deleting a longhand property in the inline style removes both it and ' +
   'its shorthand');

</script>
