OLD | NEW |
| (Empty) |
1 <?xml version="1.0" encoding="UTF-8"?> | |
2 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Full//EN" "http://www.w3.org/Graphics/
SVG/1.1/DTD/svg11-flat.dtd"> | |
3 <svg version="1.1" baseProfile="full" id="svg-root" width="100%" height="100%" v
iewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" | |
4 xmlns:xlink="http://www.w3.org/1999/xlink" onload="doSelection(0,0);"> | |
5 <!--========================================================================--
> | |
6 <!--= Copyright 2006 World Wide Web Consortium, (Massachusetts =--> | |
7 <!--= Institute of Technology, European Research Consortium for =--> | |
8 <!--= Informatics and Mathematics (ERCIM), Keio University). =--> | |
9 <!--= All Rights Reserved. =--> | |
10 <!--= See http://www.w3.org/Consortium/Legal/. =--> | |
11 <!--========================================================================--
> | |
12 <!-- NOTE: CVS will automatically update the --> | |
13 <!-- "$RCSfile: text-tselect-02-f.svg,v $" and "$Revision: 1.2 $"
--> | |
14 <!-- fields in the file. --> | |
15 <!-- There is no need to update this information. --> | |
16 <!-- =====================================================================--> | |
17 <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" revi
ewer="CL" owner="ED" desc="Tests bidirectional text selection" status="created"
version="$Revision: 1.2 $" testname="$RCSfile: text-tselect-02-f.svg,v $"> | |
18 <OperatorScript> | |
19 <Paragraph> | |
20 This test demonstrates text selection of bidirectional text. | |
21 The initial result should be that the first 9 characters in logi
cal order | |
22 starting from logical position 0 are selected. Visually the sele
ction is | |
23 discontigous and these substrings must be selected (listed in vi
sual order): | |
24 </Paragraph> | |
25 <Paragraph> | |
26 "abc" | |
27 </Paragraph> | |
28 <Paragraph> | |
29 the space between "c" and "ו" | |
30 </Paragraph> | |
31 <Paragraph> | |
32 "1" | |
33 </Paragraph> | |
34 <Paragraph> | |
35 the space between "3" and "ג" | |
36 </Paragraph> | |
37 <Paragraph> | |
38 "אבג" | |
39 </Paragraph> | |
40 <Paragraph> | |
41 If only the substrings listed above were selected then the test
has passed. | |
42 </Paragraph> | |
43 <Paragraph> | |
44 A user agent that allows selecting text in logical order would h
ave generated the same selection | |
45 as in this testcase if the user started the selection on the cha
racter "a" and ended it on the | |
46 character "1". | |
47 | |
48 A user agent that allows selecting text in visual order would no
t have a discontigous selection | |
49 if the user started the selection on the character "a" and ended
it on the character "1". The copied | |
50 text would be discontigous instead in this case. | |
51 | |
52 Note that the SVG DOM method requires logical order text selecti
on, so for both types of user agents | |
53 this testcase must look the same. | |
54 </Paragraph> | |
55 <Paragraph> | |
56 The testcase also shows what happens when the selection is modif
ied via DOM (click the buttons below | |
57 the bidi-text). Compliant viewers must throw an exception when t
he first parameter handed | |
58 to SVGTextContentElement.selectSubString is out-of-range. | |
59 That means the variable 'startIndex' must always be in the range
0 <= startIndex <= 18. | |
60 It can be noted that the parameter 'numChars' is not restricted
in this way. | |
61 </Paragraph> | |
62 <Paragraph> | |
63 Note that the color of the text selection is UA dependent and no
t defined in the SVG specification. | |
64 </Paragraph> | |
65 </OperatorScript> | |
66 </SVGTestCase> | |
67 <title id="test-title">$RCSfile: text-tselect-02-f.svg,v $</title> | |
68 <!--======================================================================--> | |
69 <!--Content of Test Case follows... =====================--> | |
70 <!--======================================================================--> | |
71 <g id="test-body-content"> | |
72 <defs> | |
73 <script><![CDATA[ | |
74 var startIndex = 0; | |
75 var numChars = 9; | |
76 | |
77 function doSelection(indexDelta, numCharsDelta) | |
78 { | |
79 try | |
80 { | |
81 document.getElementById('text').selectSubString(
startIndex+indexDelta, numChars+numCharsDelta); | |
82 } | |
83 catch(e) | |
84 { | |
85 if(e.code == DOMException.INDEX_SIZE_ERR) | |
86 { | |
87 // If there was an error, re-select the
last range | |
88 document.getElementById('text').selectSu
bString(startIndex, numChars); | |
89 return; | |
90 } | |
91 } | |
92 | |
93 startIndex += indexDelta; | |
94 numChars += numCharsDelta; | |
95 | |
96 document.getElementById('info').firstChild.data = "Start
Index: " + startIndex + ". NumChars: " + numChars; | |
97 } | |
98 ]]></script> | |
99 </defs> | |
100 | |
101 <g transform="translate(0,60)"> | |
102 <text id="info" font-size="16" x="10" y="70">StartIndex: 0 NumCh
ars: 0</text> | |
103 | |
104 <text id="text" font-size="48" y="128" x="10"> | |
105 abc אבג 123 דהו def | |
106 </text> | |
107 | |
108 <g id="buttons"> | |
109 <rect x="10" y="160" width="100" height="20" fill="blue"
onclick="doSelection(1,0);"/> | |
110 <text x="60" y="175" text-anchor="middle" font-size="16"
fill="white" pointer-events="none">startIndex++</text> | |
111 | |
112 <rect x="120" y="160" width="100" height="20" fill="blue
" onclick="doSelection(-1,0);"/> | |
113 <text x="170" y="175" text-anchor="middle" font-size="16
" fill="white" pointer-events="none">startIndex--</text> | |
114 | |
115 <rect x="230" y="160" width="100" height="20" fill="blue
" onclick="doSelection(0,1);"/> | |
116 <text x="280" y="175" text-anchor="middle" font-size="16
" fill="white" pointer-events="none">numChars++</text> | |
117 | |
118 <rect x="340" y="160" width="100" height="20" fill="blue
" onclick="doSelection(0,-1);"/> | |
119 <text x="390" y="175" text-anchor="middle" font-size="16
" fill="white" pointer-events="none">numChars--</text> | |
120 </g> | |
121 </g> | |
122 </g> | |
123 <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$
Revision: 1.2 $</text> | |
124 <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke=
"#000"/> | |
125 <script> | |
126 if (window.testRunner) | |
127 window.testRunner.dumpSelectionRect(); | |
128 document.execCommand("SelectAll"); | |
129 </script> | |
130 </svg> | |
OLD | NEW |