| <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> |