<!doctype html>
<meta charset="utf-8">
<title>CSSOM - Serialization with variable preserves original serialization.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="longhand-whitespace" style="font-size: var(--a);"></div>
<div id="shorthand-whitespace" style="font: var(--a);"></div>
<div id="longhand" style="font-size:var(--a);"></div>
<div id="shorthand" style="font:var(--a);"></div>
<script>
    test(function() {
        var elem = document.getElementById('longhand-whitespace');

        assert_equals(elem.style.cssText, 'font-size: var(--a);');
    }, 'Longhand with variable preserves original serialization: with withespace')

    test(function() {
        var elem = document.getElementById('shorthand-whitespace');

        assert_equals(elem.style.cssText, 'font: var(--a);');
    }, 'Shorthand with variable preserves original serialization: with withespace')

    test(function() {
        var elem = document.getElementById('longhand');

        assert_equals(elem.style.cssText, 'font-size:var(--a);');
    }, 'Longhand with variable preserves original serialization: without withespace')

    test(function() {
        var elem = document.getElementById('shorthand');

        assert_equals(elem.style.cssText, 'font:var(--a);');
    }, 'Shorthand with variable preserves original serialization: without withespace')
</script>
