haikuwebkit/LayoutTests/svg/dynamic-updates/SVG-dynamic-css-transform-e...

61 lines
3.3 KiB
Plaintext
Raw Permalink Normal View History

First step towards http://webkit.org/b/70025 Allow -webkit-transform to be have effect to SVG elements. Currently, the CSS transform takes precedence over the SVG transform attribute Allow SVG elements to be transformed using webkit-transform https://bugs.webkit.org/show_bug.cgi?id=71309 Patch by Raul Hudea <rhudea@adobe.com> on 2011-11-23 Reviewed by Nikolas Zimmermann. Source/WebCore: Tests: svg/clip-path/clip-path-css-transform-1.svg svg/clip-path/clip-path-css-transform-2.svg svg/custom/clip-path-with-css-transform-1.svg svg/custom/clip-path-with-css-transform-2.svg svg/custom/pointer-events-image-css-transform.svg svg/custom/pointer-events-text-css-transform.svg svg/dom/css-transforms.xhtml svg/dynamic-updates/SVG-dynamic-css-transform.html svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting.html svg/transforms/svg-css-transforms-clip-path.xhtml svg/transforms/svg-css-transforms.xhtml * manual-tests/svg-animation-css-transform.html: Added. * manual-tests/svg-css-animate-compound.html: Added. * manual-tests/svg-css-transition-compound.html: Added. * rendering/svg/RenderSVGModelObject.cpp: (WebCore::RenderSVGModelObject::styleWillChange): Set the updateTransform flag on SVG elements whenever a CSS transform is present on the style * svg/SVGStyledTransformableElement.cpp: (WebCore::SVGStyledTransformableElement::animatedLocalTransform): Use the RenderStyle's transform (if it exists) over the SVG's transform * svg/SVGTextElement.cpp: (WebCore::SVGTextElement::animatedLocalTransform): Use the RenderStyle's transform (if it exists) over the SVG's transform LayoutTests: * platform/chromium/test_expectations.txt: * platform/mac/svg/clip-path/clip-path-css-transform-1-expected.png: Added. * platform/mac/svg/clip-path/clip-path-css-transform-1-expected.txt: Added. * platform/mac/svg/clip-path/clip-path-css-transform-2-expected.png: Added. * platform/mac/svg/clip-path/clip-path-css-transform-2-expected.txt: Added. * platform/mac/svg/custom/clip-path-with-css-transform-1-expected.png: Added. * platform/mac/svg/custom/clip-path-with-css-transform-1-expected.txt: Added. * platform/mac/svg/custom/clip-path-with-css-transform-2-expected.png: Added. * platform/mac/svg/custom/clip-path-with-css-transform-2-expected.txt: Added. * platform/mac/svg/custom/pointer-events-image-css-transform-expected.png: Added. * platform/mac/svg/custom/pointer-events-image-css-transform-expected.txt: Added. * platform/mac/svg/custom/pointer-events-text-css-transform-expected.png: Added. * platform/mac/svg/custom/pointer-events-text-css-transform-expected.txt: Added. * platform/mac/svg/dom/css-transforms-expected.png: Added. * platform/mac/svg/dynamic-updates/SVG-dynamic-css-transform-expected.png: Added. * platform/mac/svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting-expected.png: Added. * platform/mac/svg/transforms/svg-css-transforms-clip-path-expected.png: Added. * platform/mac/svg/transforms/svg-css-transforms-clip-path-expected.txt: Added. * platform/mac/svg/transforms/svg-css-transforms-expected.png: Added. * platform/mac/svg/transforms/svg-css-transforms-expected.txt: Added. * svg/clip-path/clip-path-css-transform-1.svg: Added. * svg/clip-path/clip-path-css-transform-2.svg: Added. * svg/custom/clip-path-with-css-transform-1.svg: Added. * svg/custom/clip-path-with-css-transform-2.svg: Added. * svg/custom/pointer-events-image-css-transform.svg: Added. * svg/custom/pointer-events-text-css-transform.svg: Added. * svg/dom/css-transforms-expected.txt: Added. * svg/dom/css-transforms.xhtml: Added. * svg/dynamic-updates/SVG-dynamic-css-transform-expected.txt: Added. * svg/dynamic-updates/SVG-dynamic-css-transform.html: Added. * svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting-expected.txt: Added. * svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting.html: Added. * svg/dynamic-updates/script-tests/SVGClipPathElement-css-transform-influences-hitTesting.js: Added. (executeBackgroundTest): (executeTest): * svg/transforms/svg-css-transforms-clip-path.xhtml: Added. * svg/transforms/svg-css-transforms.xhtml: Added. Canonical link: https://commits.webkit.org/89545@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@101062 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2011-11-23 11:34:37 +00:00
SVG 1.1 dynamic update tests
Tests dynamic updates of the '-webkit-transform' on SVG element
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Also, to pass the test, the rectangles should be rotated with 45deg
Transform via style attribute
PASS rect1.style.webkitTransform is "translate(100px, 25px) scale(2) rotate(45deg)"
PASS dumpMatrix(rect1.getCTM()) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect1.style.webkitTransform)) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect1.style.webkitTransform)) is dumpMatrix(rect1.getCTM())
PASS rect1.transform.baseVal.numberOfItems is 0
PASS rect1.getAttribute('transform') is null
PASS dumpMatrix(rect2.getCTM()) is "[0.0 1.0 -1.0 0.0 1000.0 1000.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform)) is "[1.0 0.0 0.0 1.0 0.0 0.0]"
PASS rect2.style.webkitTransform is "translate(100px, 25px) scale(2) rotate(45deg)"
PASS dumpMatrix(rect2.getCTM()) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform)) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform)) is dumpMatrix(rect2.getCTM())
PASS rect2.transform.baseVal.numberOfItems is 2
PASS rect2.getAttribute('transform') is "translate(1000, 1000) rotate(90)"
PASS dumpTransform(rect2.transform.baseVal.getItem(0)) is "type=SVG_TRANSFORM_TRANSLATE matrix=[1.0 0.0 0.0 1.0 1000.0 1000.0]"
PASS dumpTransform(rect2.transform.baseVal.getItem(1)) is "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"
Transform via CSS
PASS rect3.style.webkitTransform is "translate(100px, 25px) scale(2) rotate(45deg)"
PASS dumpMatrix(rect3.getCTM()) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect3.style.webkitTransform)) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect3.style.webkitTransform)) is dumpMatrix(rect3.getCTM())
PASS rect3.transform.baseVal.numberOfItems is 0
PASS rect3.getAttribute('transform') is null
PASS dumpMatrix(rect2.getCTM()) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform)) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
PASS rect4.style.webkitTransform is "translate(100px, 25px) scale(2) rotate(45deg)"
PASS dumpMatrix(rect4.getCTM()) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect4.style.webkitTransform)) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect4.style.webkitTransform)) is dumpMatrix(rect4.getCTM())
PASS rect4.transform.baseVal.numberOfItems is 2
PASS rect4.getAttribute('transform') is "translate(1000, 1000) rotate(90)"
PASS dumpTransform(rect4.transform.baseVal.getItem(0)) is "type=SVG_TRANSFORM_TRANSLATE matrix=[1.0 0.0 0.0 1.0 1000.0 1000.0]"
PASS dumpTransform(rect4.transform.baseVal.getItem(1)) is "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"
Transform on wrapper div
PASS rect5.style.webkitTransform is ""
PASS dumpMatrix(rect5.getCTM()) is "[1.0 0.0 0.0 1.0 0.0 0.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect5.style.webkitTransform)) is "[1.0 0.0 0.0 1.0 0.0 0.0]"
PASS dumpMatrix(new WebKitCSSMatrix(rect5.style.webkitTransform)) is dumpMatrix(rect5.getCTM())
PASS rect5.transform.baseVal.numberOfItems is 0
PASS rect5.getAttribute('transform') is null
PASS successfullyParsed is true
TEST COMPLETE