<!DOCTYPE html>
<html>
<head>
<script src='../../resources/testharness.js'></script>
<script src='../../resources/testharnessreport.js'></script>
</head>
<body>
<div id='testElement'></div>
<script>
testElement.style.lineHeight = '10px';
testElement.style.fontSize = '100px';
var computedStyleMap = testElement.computedStyleMap();
test(function() {
var result = computedStyleMap.get('line-height');
assert_equals(result.constructor.name, CSSUnitValue.name);
assert_equals(result.toString(), '10px');
}, 'Getting a 10px lineHeight results in a CSSUnitValue');
test(function() {
testElement.style.lineHeight = '20px';
var result = computedStyleMap.getAll('line-height');
assert_equals(result.length, 1);
assert_equals(result[0].toString(), '20px');
}, 'getAll for lineHeight returns a single value');
test(function() {
testElement.style.lineHeight = '10%';
var result = computedStyleMap.get('line-height');
assert_equals(result.constructor.name, CSSUnitValue.name);
assert_equals(result.toString(), '10px');
}, 'Getting a 10% lineHeight results in a px CSSUnitValue');
test(function() {
testElement.style.lineHeight = '0.2';
var result = computedStyleMap.get('line-height');
assert_equals(result.constructor.name, CSSUnitValue.name);
assert_equals(result.toString(), '0.2');
}, 'Getting a number lineHeight results in a number CSSUnitValue');
test(function() {
testElement.style.lineHeight = 'calc(10px + 10%)';
var result = computedStyleMap.get('line-height');
assert_equals(result.constructor.name, CSSUnitValue.name);
assert_equals(result.toString(), '20px');
}, 'Getting a calc lineHeight results in a px CSSUnitValue');
test(function() {
testElement.style.lineHeight = 'normal';
var result = computedStyleMap.get('line-height');
assert_equals(result.constructor.name, CSSKeywordValue.name);
assert_equals(result.toString(), 'normal');
}, 'Getting a normal lineHeight results in a CSSKeywordValue');
</script>
</body>
</html>