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

