Make color-filter affect caret-color
[WebKit-https.git] / LayoutTests / css3 / unicode-bidi-isolate-basic.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
5 <style>
6 .resultsDiv {
7     position: absolute;
8     top: 0px;
9     left: 0px;
10     -moz-column-width: 13em;
11     -moz-column-gap: 5em;
12     -webkit-columns:1 1px; /* Make as many (overflowing) columns as necessary, but keep them as narrow as possible */
13     -webkit-column-gap: 5em;
14     -webkit-column-fill: auto;
15     columns:1 1px;
16     column-gap: 5em;
17     column-fill: auto;
18     height: 400px;
19 }
20 </style>
21 </head>
22 <body>
23 <div>This table shows unicode-bidi: isolate behavior (in red) with display: inline-block behavior overlapping in green.  You should see no red in this test!  Behavior between these two methods should be identical for non-wrapping strings, assuming unicode-bidi: isolate is implemented and functioning correctly.</div>
24
25 <div id="resultsContainer" style="position: relative">
26 <div id="actual" style="color: red" class="resultsDiv"></div>
27 <div id="expected" style="color: green;" class="resultsDiv"></div>
28 </div>
29
30 <script>
31 var seed = 0;
32
33 var neutrals = ['"', ")", "("];
34 var strongRTLs = ['ש', 'נ', 'ב', 'ג', 'ק', 'כ', 'ע'];
35 var strongLTRs = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
36 var neutral = function() { return neutrals[seed++ % neutrals.length]; }
37 var strongRTL = function() { return strongRTLs[seed++ % strongRTLs.length]; }
38 var strongLTR = function() { return strongLTRs[seed++ % strongLTRs.length]; }
39 var charClassExamples = [neutral, strongRTL, strongLTR];
40 var possibleDirs = ['ltr', 'rtl'];
41
42 var testStyle = "unicode-bidi: -webkit-isolate";
43 var controlStyle = "display: inline-block";
44
45 for (outerDirIndex in possibleDirs) {
46     var outerDir = possibleDirs[outerDirIndex];
47     for (beforeSpanIndex in charClassExamples) {
48         var beforeSpan = charClassExamples[beforeSpanIndex];
49         for (spanDirIndex in possibleDirs) {
50             var spanDir = possibleDirs[spanDirIndex];
51             for (inSpanIndex in charClassExamples) {
52                 var inSpan = charClassExamples[inSpanIndex];
53                 for (afterSpanIndex in charClassExamples) {
54                     var afterSpan = charClassExamples[afterSpanIndex];
55                     function caseWithStyle(spanStyle) {
56                         seed = 0;
57                         var outerDiv = document.createElement("div");
58                         outerDiv.dir = outerDir;
59                         outerDiv.appendChild(document.createTextNode(beforeSpan()));
60                         var span = document.createElement("span");
61                         span.dir = spanDir;
62                         span.setAttribute("style", spanStyle)
63                         span.appendChild(document.createTextNode(inSpan()));
64                         outerDiv.appendChild(span);
65                         outerDiv.appendChild(document.createTextNode(afterSpan()));
66                         return outerDiv;
67                     }
68                     expected.appendChild(caseWithStyle(controlStyle));
69                     actual.appendChild(caseWithStyle(testStyle));
70                 }
71             }
72         }
73     }
74 }
75
76 </script>
77 </table>
78 </body>
79 </html>