File: elementsFromPoint-svg.html

package info (click to toggle)
firefox-esr 140.4.0esr-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,539,276 kB
  • sloc: cpp: 7,381,286; javascript: 6,388,710; ansic: 3,710,139; python: 1,393,780; xml: 628,165; asm: 426,918; java: 184,004; sh: 65,742; makefile: 19,302; objc: 13,059; perl: 12,912; yacc: 4,583; cs: 3,846; pascal: 3,352; lex: 1,720; ruby: 1,226; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (67 lines) | stat: -rw-r--r-- 2,794 bytes parent folder | download | duplicates (28)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<!DOCTYPE HTML>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/elementsFromPoint.js"></script>
<style>
html, body {
    margin: 0;
    padding: 0;
}
#svg {
    margin: 100px;
    background-color: rgba(0,180,0,0.2);
}
rect {
    fill: rgba(180,0,0,0.2);
}
#topLeftRect2NoHitTest {
    pointer-events: none;
}
</style>
<div id='sandbox'>
    <svg id='svg' width='300' height='300'>
        <rect id='topLeftRect1' x='5' y='5' width='90' height='90'/>
        <rect id='topLeftRect2NoHitTest' x='10' y='10' width='80' height='80'/>
        <rect id='topLeftRect3' x='15' y='15' width='70' height='70'/>

        <g id='middleG1'>
            <g id='middleG2'>
                <rect id='middleRect1' x='105' y='105' width='90' height='90'/>
                <rect id='middleRect2' x='110' y='110' width='80' height='80'/>
            </g>
        </g>

        <g id='bottomLeftG'>
            <image id='bottomLeftImage1' x='5' y='205' width='90' height='90' xlink:href='data:image/svg+xml;utf8,<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="rgba(180,0,0,0.2)"/></svg>'/>
            <image id='bottomLeftImage2' x='10' y='210' width='80' height='80' xlink:href='data:image/svg+xml;utf8,<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="rgba(180,0,0,0.2)"/></svg>'/>
        </g>

        <g id='bottomRightG1' transform='translate(300, 300)'>
            <g id='bottomRightG2' transform='translate(-100, -100)'>
                <rect id='bottomRightRect1' x='5' y='5' width='90' height='90'/>
                <rect id='bottomRightRect2' x='110' y='110' width='80' height='80' transform='translate(-100, -100)'/>
            </g>
        </g>
    </svg>
</div>
<script>
test(function() {
    assertElementsFromPoint('document', 125, 125,
        [topLeftRect3, topLeftRect1, svg, sandbox, document.body, document.documentElement]);
}, 'elementsFromPoint for a point inside two rects');

test(function() {
    assertElementsFromPoint('document', 225, 225,
        [middleRect2, middleRect1, svg, sandbox, document.body, document.documentElement]);
}, 'elementsFromPoint for a point inside two rects that are inside a <g>');

test(function() {
    assertElementsFromPoint('document', 125, 325,
        [bottomLeftImage2, bottomLeftImage1, svg, sandbox, document.body, document.documentElement]);
}, 'elementsFromPoint for a point inside two images');

test(function() {
    assertElementsFromPoint('document', 325, 325,
        [bottomRightRect2, bottomRightRect1, svg, sandbox, document.body, document.documentElement]);
}, 'elementsFromPoint for a point inside transformed rects and <g>');
</script>