Test to make sure text-decoration property returns values properly.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Initial value:
PASS e.style.getPropertyCSSValue('text-decoration') is null
PASS computedStyle.textDecoration is 'none'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSPrimitiveValue]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'none'

Initial value (explicit):
PASS e.style.textDecoration is 'initial'
PASS e.style.getPropertyCSSValue('text-decoration').toString() is '[object CSSValue]'
PASS e.style.getPropertyCSSValue('text-decoration').cssText is 'initial'
PASS computedStyle.textDecoration is 'none'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSPrimitiveValue]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'none'

Value 'none':
PASS e.style.textDecoration is 'none'
PASS e.style.getPropertyCSSValue('text-decoration').toString() is '[object CSSPrimitiveValue]'
PASS e.style.getPropertyCSSValue('text-decoration').cssText is 'none'
PASS computedStyle.textDecoration is 'none'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSPrimitiveValue]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'none'

Value 'underline':
PASS e.style.textDecoration is 'underline'
PASS e.style.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS e.style.getPropertyCSSValue('text-decoration').cssText is 'underline'
PASS computedStyle.textDecoration is 'underline'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'underline'

Value 'overline':
PASS e.style.textDecoration is 'overline'
PASS e.style.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS e.style.getPropertyCSSValue('text-decoration').cssText is 'overline'
PASS computedStyle.textDecoration is 'overline'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'overline'

Value 'line-through':
PASS e.style.textDecoration is 'line-through'
PASS e.style.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS e.style.getPropertyCSSValue('text-decoration').cssText is 'line-through'
PASS computedStyle.textDecoration is 'line-through'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'line-through'

Value 'underline overline line-through':
PASS e.style.textDecoration is 'underline overline line-through'
PASS e.style.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS e.style.getPropertyCSSValue('text-decoration').cssText is 'underline overline line-through'
PASS computedStyle.textDecoration is 'underline overline line-through'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'underline overline line-through'

Value 'blink' (valid but ignored):
PASS e.style.textDecoration is 'blink'
PASS e.style.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS e.style.getPropertyCSSValue('text-decoration').cssText is 'blink'
PASS computedStyle.textDecoration is 'none'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSPrimitiveValue]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'none'

Value '':
PASS e.style.getPropertyCSSValue('text-decoration') is null
PASS computedStyle.textDecoration is 'none'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSPrimitiveValue]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'none'

Parent gets 'underline' value:
PASS e.style.textDecoration is 'underline'
PASS e.style.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS e.style.getPropertyCSSValue('text-decoration').cssText is 'underline'
PASS computedStyle.textDecoration is 'underline'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'underline'

Ancestor should explicitly inherit value from parent when 'inherit' value is used:
PASS e.style.textDecoration is 'inherit'
PASS e.style.getPropertyCSSValue('text-decoration').toString() is '[object CSSValue]'
PASS e.style.getPropertyCSSValue('text-decoration').cssText is 'inherit'
PASS computedStyle.textDecoration is 'underline'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'underline'

Ancestor should not implicitly inherit value from parent (i.e. when value is void):
PASS e.style.getPropertyCSSValue('text-decoration') is null
PASS computedStyle.textDecoration is 'none'
PASS computedStyle.getPropertyCSSValue('text-decoration').toString() is '[object CSSPrimitiveValue]'
PASS computedStyle.getPropertyCSSValue('text-decoration').cssText is 'none'

PASS successfullyParsed is true

TEST COMPLETE

