| 'use strict'; |
| |
| function test_shorthand_value(property, value, longhands) { |
| const stringifiedValue = JSON.stringify(value); |
| |
| for (let longhand of Object.keys(longhands).sort()) { |
| test(function(){ |
| var div = document.getElementById('target') || document.createElement('div'); |
| div.style[property] = ""; |
| try { |
| div.style[property] = value; |
| |
| const readValue = div.style[longhand]; |
| assert_equals(readValue, longhands[longhand], longhand + " should be canonical"); |
| |
| div.style[longhand] = ""; |
| div.style[longhand] = readValue; |
| assert_equals(div.style[longhand], readValue, "serialization should round-trip"); |
| } finally { |
| div.style[property] = ""; |
| } |
| }, "e.style['" + property + "'] = " + stringifiedValue + " should set " + longhand); |
| } |
| |
| test(function(){ |
| var div = document.getElementById('target') || document.createElement('div'); |
| div.style[property] = ""; |
| try { |
| const expectedLength = div.style.length; |
| div.style[property] = value; |
| assert_true(CSS.supports(property, value)); |
| for (let longhand of Object.keys(longhands).sort()) { |
| div.style[longhand] = ""; |
| } |
| assert_equals(div.style.length, expectedLength); |
| } finally { |
| div.style[property] = ""; |
| } |
| }, "e.style['" + property + "'] = " + stringifiedValue + " should not set unrelated longhands"); |
| } |