<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS UI Level 3: getComputedStyle().outlineWidth</title>
<link rel="help" href="https://drafts.csswg.org/css-ui-3/#outline-width">
<meta name="assert" content="outline-width computed value is absolute length, 0 if the outline style is none.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<style>
  #target {
    font-size: 40px;

    border-style: dotted; /* Avoid border-*-width computed style 0 */
    border-top-width: thin;
    border-right-width: medium;
    border-bottom-width: thick;

    outline-style: dotted; /* Avoid outline-width computed style 0 */
  }
</style>
<div id="target"></div>
<script>
test_computed_value("outline-width", "2.5px", "2px");
test_computed_value("outline-width", "10px");
test_computed_value("outline-width", "0.5em", "20px");
test_computed_value("outline-width", "calc(10px + 0.5em)", "30px");
test_computed_value("outline-width", "calc(10px - 0.5em)", "0px");

test_computed_value("outline-width", "thin", getComputedStyle(target).borderTopWidth);
test_computed_value("outline-width", "medium", getComputedStyle(target).borderRightWidth);
test_computed_value("outline-width", "thick", getComputedStyle(target).borderBottomWidth);

test(() => {
  target.style['outline-width'] = '10px';
  target.style['outline-style'] = 'none';
  assert_equals(getComputedStyle(target)['outline-width'], '0px');
  target.style['outline-style'] = '';
}, 'outline-width is 0 when outline-style is none');
</script>
</body>
</html>
