<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 4: serialization of font-variant</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts-4/#propdef-font-variant">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1797146">
<meta name="assert" content="re-setting font-variant to its serialization should be idempotent">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=target style=""></div>
<script>
test(function(){
    let div = document.getElementById("target");
    let sty = div.style;

    sty.font = "12px serif";
    v = sty.fontVariant;
    assert_in_array(v, ["", "normal"]);  // Accept either explicit 'normal' or empty.
    sty.fontVariant = v;
    assert_equals(sty.fontVariant, v);

    sty.font = "menu";
    v = sty.fontVariant;
    assert_in_array(v, ["", "normal"]);

    sty.font = "12px serif"
    sty.fontVariantNumeric = "tabular-nums";
    v = sty.fontVariant;
    assert_equals(v, "tabular-nums");
    sty.fontVariant = v;
    assert_equals(sty.fontVariant, v);

    sty.font = "menu"
    sty.fontVariantNumeric = "tabular-nums";
    v = sty.fontVariant;
    assert_equals(v, "tabular-nums");
    sty.fontVariant = v;
    assert_equals(sty.fontVariant, v);

    sty.font = "12px serif"
    sty.fontVariantNumeric = "tabular-nums";
    sty.fontVariantCaps = "small-caps";
    v = sty.fontVariant;
    sty.fontVariant = v;
    assert_equals(sty.fontVariant, v);

    sty.font = "menu"
    sty.fontVariantNumeric = "tabular-nums";
    sty.fontVariantCaps = "small-caps";
    v = sty.fontVariant;
    sty.fontVariant = v;
    assert_equals(sty.fontVariant, v);
}, "checking serialized value of font-variant");
</script>
</body>
</html>
