<!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>