| <html> | |
| <head> | |
| <script src="../../fast/js/resources/js-test-pre.js"></script> | |
| </head> | |
| <body> | |
| <p id="description"></p> | |
| <div id="console"></div> | |
| <script> | |
| description("This tests the parser and serializer for widget region values."); | |
| var style = document.getElementById('description').style; | |
| function parseWidgetRegion(string) | |
| { | |
| try { | |
| style.removeProperty("-webkit-widget-region"); | |
| style.setProperty("-webkit-widget-region", string, ""); | |
| var result = style.getPropertyValue("-webkit-widget-region"); | |
| style.removeProperty("-webkit-widget-region"); | |
| return result; | |
| } catch (e) { | |
| return "" + e; | |
| } | |
| } | |
| function testCanonicalWidgetRegion(string) | |
| { | |
| shouldBe("parseWidgetRegion('" + string + "')", "'" + string + "'"); | |
| } | |
| testCanonicalWidgetRegion('none'); | |
| debug(''); | |
| testCanonicalWidgetRegion('region(label circle)'); | |
| testCanonicalWidgetRegion('region(label circle 1px 2px 3px 4px)'); | |
| testCanonicalWidgetRegion('region(label circle 0px 0px 0px 0px)'); | |
| testCanonicalWidgetRegion('region(label circle auto auto auto auto)'); | |
| testCanonicalWidgetRegion('region(label circle 1px 2px 3px 4px)'); | |
| debug(''); | |
| testCanonicalWidgetRegion('region(label rectangle)'); | |
| testCanonicalWidgetRegion('region(label rectangle 1px 2px 3px 4px)'); | |
| debug(''); | |
| testCanonicalWidgetRegion('region(label circle) region(label circle)'); | |
| testCanonicalWidgetRegion('region(label circle) region(label rectangle)'); | |
| testCanonicalWidgetRegion('region(label circle 1px 2px 3px 4px) region(label rectangle 5px 6px 7px 8px)'); | |
| testCanonicalWidgetRegion('region(label rectangle 1px 2px 3px 4px) region(label circle 5px 6px 7px 8px)'); | |
| debug(''); | |
| debug('Tests to demonstrate that commas are allowed.'); | |
| debug(''); | |
| shouldBe("parseWidgetRegion('region(label, circle)')", "'region(label circle)'"); | |
| shouldBe("parseWidgetRegion('region(label, circle, 1px, 2px, 3px, 4px)')", "'region(label circle 1px 2px 3px 4px)'"); | |
| debug(''); | |
| debug('Tests for variations in whitespace that are allowed.'); | |
| debug(''); | |
| shouldBe("parseWidgetRegion(' region( label circle ) ')", "'region(label circle)'"); | |
| shouldBe("parseWidgetRegion(' region( label circle 1px 2px 3px 4px ) region(label rectangle 5px 6px 7px 8px ) ')", "'region(label circle 1px 2px 3px 4px) region(label rectangle 5px 6px 7px 8px)'"); | |
| shouldBe("parseWidgetRegion('region(label circle 1px 2px 3px 4px)region(label rectangle 5px 6px 7px 8px)')", "'region(label circle 1px 2px 3px 4px) region(label rectangle 5px 6px 7px 8px)'"); | |
| debug(''); | |
| debug('Tests for case insensitivity.'); | |
| debug(''); | |
| shouldBe("parseWidgetRegion('region(label Circle)')", "'region(label circle)'"); | |
| shouldBe("parseWidgetRegion('region(LABEL CIRCLE)')", "'region(LABEL circle)'"); | |
| shouldBe("parseWidgetRegion('region(LaBeL CiRcLe)')", "'region(LaBeL circle)'"); | |
| shouldBe("parseWidgetRegion('region(lAbEl cIrClE)')", "'region(lAbEl circle)'"); | |
| shouldBe("parseWidgetRegion('region(label Rectangle)')", "'region(label rectangle)'"); | |
| shouldBe("parseWidgetRegion('region(LABEL RECTANGLE)')", "'region(LABEL rectangle)'"); | |
| shouldBe("parseWidgetRegion('region(LaBeL ReCtAnGlE)')", "'region(LaBeL rectangle)'"); | |
| shouldBe("parseWidgetRegion('region(lAbEl rEcTaNgLe)')", "'region(lAbEl rectangle)'"); | |
| debug(''); | |
| debug('Some expected failures.'); | |
| debug(''); | |
| shouldBe("parseWidgetRegion('')", "null"); | |
| shouldBe("parseWidgetRegion(' ')", "null"); | |
| shouldBe("parseWidgetRegion('x')", "null"); | |
| shouldBe("parseWidgetRegion('dashboard-')", "null"); | |
| shouldBe("parseWidgetRegion('region')", "null"); | |
| shouldBe("parseWidgetRegion('region(')", "null"); | |
| shouldBe("parseWidgetRegion('region(label')", "null"); | |
| shouldBe("parseWidgetRegion('region(label ')", "null"); | |
| shouldBe("parseWidgetRegion('region(label c')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle')", "null"); | |
| shouldBe("parseWidgetRegion('region(label)')", "null"); | |
| shouldBe("parseWidgetRegion('region (label circle)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label,, circle)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle 1px2px 3px 4px)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label,, circle, 1px, 2px, 3px, 4px)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label, circle 1px 2px 3px 4px)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label, circle, 1px 2px 3px 4px)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label, circle, 1px, 2px 3px 4px)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label, circle, 1px, 2px, 3px 4px)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle, 1px, 2px, 3px, 4px)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle 1px, 2px, 3px, 4px)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle x)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle x x)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle x x x)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle x x x x)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle x x x x x)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle 1px 2px 3px 4px x)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle 1px 2px 3px 4px x x)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle 1px 2px 3px 4px x x x)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle 1px 2px 3px 4px x x x x)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle 1px 2px 3px 4px x x x x x)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label circle 1px 2px 3px 4px circle 5px 6px 7px 8px)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label, circle, 1px, 2px, 3px, 4px, circle, 5px, 6px, 7px, 8px)')", "null"); | |
| shouldBe("parseWidgetRegion('none x')", "null"); | |
| shouldBe("parseWidgetRegion('none x x')", "null"); | |
| shouldBe("parseWidgetRegion('none x x x')", "null"); | |
| shouldBe("parseWidgetRegion('none x x x x')", "null"); | |
| shouldBe("parseWidgetRegion('none region(label, circle)')", "null"); | |
| shouldBe("parseWidgetRegion('region(label, circle) none')", "null"); | |
| shouldBe("parseWidgetRegion('attr(a)')", "null"); | |
| debug(''); | |
| </script> | |
| <script src="../../fast/js/resources/js-test-post.js"></script> | |
| </body> | |
| </html> |