Test case for bug http://webkit.org/b/98455. The testcase checks if the max-width property overrides the computed width of a html container with display:table.
A html container with display:table should not exceed the max-width even if its calculated width is greater than the max-width value.
However when min-width property is set and its value is greated than the max-width value, the width of the container must be equal to the min-width value.

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


Note:The width of the css tables inclusive of its border width.

PASS maxGreatThanMinWidthAutoLayout.getBoundingClientRect().width is 202
PASS minGreatThanMaxWidthAutoLayout.getBoundingClientRect().width is 202
PASS onlyMaxWidthAutoLayout.getBoundingClientRect().width is 202
PASS maxWidthZeroAutoLayout.getBoundingClientRect().width is 182
PASS maxGreatThanMinWidthFixedLayout.getBoundingClientRect().width is 202
PASS minGreatThanMaxWidthFixedLayout.getBoundingClientRect().width is 202
PASS onlyMaxWidthFixedLayout.getBoundingClientRect().width is 202
PASS maxWidthZeroFixedLayout.getBoundingClientRect().width is 2
PASS successfullyParsed is true

TEST COMPLETE

