| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script> |
| description("This test checks the SVGViewSpec API"); |
| |
| var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"); |
| var currentView = svgElement.currentView; |
| svgElement.setAttribute("id", "test"); |
| svgElement.setAttribute("width", "150"); |
| svgElement.setAttribute("height", "50"); |
| svgElement.setAttribute("display", "block"); |
| |
| debug(""); |
| debug("Check initial SVGSVGElement.currentView values on a SVGSVGElement"); |
| shouldBe("currentView.transform.numberOfItems", "0"); |
| shouldBeNull("currentView.viewTarget"); |
| shouldBe("currentView.zoomAndPan", "SVGViewElement.SVG_ZOOMANDPAN_MAGNIFY"); |
| shouldBe("currentView.viewBox.baseVal.x", "0"); |
| shouldBe("currentView.viewBox.baseVal.y", "0"); |
| shouldBe("currentView.viewBox.baseVal.width", "0"); |
| shouldBe("currentView.viewBox.baseVal.height", "0"); |
| shouldBe("currentView.preserveAspectRatio.baseVal.align", "SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID"); |
| shouldBe("currentView.preserveAspectRatio.baseVal.meetOrSlice", "SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET"); |
| shouldBeEqualToString("currentView.viewBoxString", "0 0 0 0"); |
| shouldBeEqualToString("currentView.preserveAspectRatioString", "xMidYMid meet"); |
| shouldBeEqualToString("currentView.transformString", ""); |
| shouldBeEqualToString("currentView.viewTargetString", ""); |
| shouldBe("currentView.zoomAndPan", "SVGViewElement.SVG_ZOOMANDPAN_MAGNIFY"); |
| |
| debug(""); |
| debug("Try changing zoomAndPan - none of these will work, as SVGViewSpec is fully readonly - even the animated properties it inherits from parent classes like SVGZoomAndPan/SVGFitToViewBox"); |
| shouldThrow("currentView.zoomAndPan = SVGViewElement.SVG_ZOOMANDPAN_DISABLE"); |
| shouldBe("currentView.zoomAndPan", "SVGViewElement.SVG_ZOOMANDPAN_MAGNIFY"); |
| |
| debug(""); |
| debug("Try changing viewBox - this has no affect on the SVGSVGElement the viewSpec belongs to - it exposed all its properties as read-only"); |
| shouldThrow("currentView.viewBox.baseVal.x = 10"); |
| shouldBe("currentView.viewBox.baseVal.x", "0"); |
| shouldThrow("currentView.viewBox.baseVal.y = 20"); |
| shouldBe("currentView.viewBox.baseVal.y", "0"); |
| shouldThrow("currentView.viewBox.baseVal.width = 50"); |
| shouldBe("currentView.viewBox.baseVal.width", "0"); |
| shouldThrow("currentView.viewBox.baseVal.height = 100"); |
| shouldBe("currentView.viewBox.baseVal.height", "0"); |
| shouldBeEqualToString("currentView.viewBoxString", "0 0 0 0"); |
| |
| debug(""); |
| debug("Try changing viewBoxString"); |
| shouldBeEqualToString("currentView.viewBoxString = '1 2 3 4'", "1 2 3 4"); |
| shouldBeEqualToString("currentView.viewBoxString", "0 0 0 0"); |
| |
| debug(""); |
| debug("Try changing preserveAspectRatio"); |
| shouldThrow("currentView.preserveAspectRatio.baseVal.align = SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN"); |
| shouldBe("currentView.preserveAspectRatio.baseVal.align", "SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID"); |
| shouldThrow("currentView.preserveAspectRatio.baseVal.meetOrSlice = SVGPreserveAspectRatio.SVG_MEETORSLICE_SLICE"); |
| shouldBe("currentView.preserveAspectRatio.baseVal.meetOrSlice", "SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET"); |
| |
| debug(""); |
| debug("Try changing preserveAspectRatioString"); |
| shouldBeEqualToString("currentView.preserveAspectRatioString = 'xMinYMin slice'", "xMinYMin slice"); |
| shouldBeEqualToString("currentView.preserveAspectRatioString", "xMidYMid meet"); |
| |
| |
| debug(""); |
| debug("Try changing transformString"); |
| shouldBeEqualToString("currentView.transformString = 'rotate(90)'", "rotate(90)"); |
| shouldBeEqualToString("currentView.transformString", ""); |
| |
| |
| debug(""); |
| debug("Try changing viewTarget"); |
| shouldBe("currentView.viewTarget = svgElement", "svgElement"); |
| shouldBeNull("currentView.viewTarget"); |
| |
| |
| debug(""); |
| debug("Try changing viewTargetString"); |
| shouldBeEqualToString("currentView.viewTargetString = '#test'", "#test"); |
| shouldBeEqualToString("currentView.viewTargetString", ""); |
| |
| debug(""); |
| debug("Try changing transform"); |
| shouldThrow("currentView.transform.clear()"); |
| shouldBe("currentView.transform.numberOfItems", "0"); |
| |
| successfullyParsed = true; |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |