tree fb5261949fc5c3d71d28aeea53f88de9d44ceaeb
parent 373df2959fa6c45a292701e655066fb5c1b0e7a9
author meade <meade@chromium.org> 1480575495 -0800
committer Commit bot <commit-bot@chromium.org> 1480575800 +0000

Add a property test generator for testing the inline StylePropertyMap

This will allow easier testing of each property as we add support in
CSS Typed OM, as we will not have to hand-write exhaustive tests for each
property, and we will easily be able to add a new test that applies to
every element easily if we need to later.

The standard set of tests is:

*single-valued properties*
- Setting with a sequence of valid values throws
- Calling append with a valid value throws

*list-valued properties*
- Setting with a sequence of valid values works
- Setting with a sequence containing valid and invalid values throws
- Append succeeds with a valid value
- Appending a sequence of valid values succeeds
- Append throws when given an invalid value
- Append throws when given a sequence containing valid and invalid values
- GetAll when the property is set to a list returns all the properties

*common*
- Can be set to each valid keyword (automatically adds initial, inherit
    and unset)
- Can be set to each given valid instance of StyleValue
- Setting to an invalid type throws (automatically adds null, undefined,
    true, false, 1, 'hello', {}, and a fake keyword)
- Get returns the right KeywordValue when the property is set to each
    valid keyword
- Get returns the right StyleValue when the property is set to .cssText
    of each given valid StyleValue
- GetAll works when the property is set to a valid StyleValue instance
- Delete removes the style from the element
- GetProperties includes the name of the property when it is set
    to something

I've added example tests for "bottom" and "animation-direction", as
semi-random, convenient single-valued and list-valued properties.

Note that since getting CSSKeyword from a StylePropertyMap is not yet fully
supported, the new tests fail.

BUG=545318

Review-Url: https://codereview.chromium.org/2529043002
Cr-Commit-Position: refs/heads/master@{#435569}
