URL::appendEncodedHostName is using the deprecated uidna_IDNToASCII function
[WebKit-https.git] / LayoutTests / css3 / supports-dom-api.html
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <script src="../resources/js-test-pre.js"></script>
5 </head>
6 <body>
7 <script>
8     description("Test window.CSS.supports()");
9
10     shouldBeTrue('CSS.supports("display: none")');
11     shouldBeTrue('CSS.supports("(display: none)")');
12     shouldBeTrue('CSS.supports("  display: none ")');
13     shouldBeFalse('CSS.supports("(display: deadbeef)")');
14
15     shouldBeFalse('CSS.supports("display: deadbeef")');
16     shouldBeTrue('CSS.supports("(display: none) and ((display: block) or (display: inline))")');
17     shouldBeTrue('CSS.supports("(not (display: deadbeef)) and (display: block)")');
18     shouldBeTrue('CSS.supports("top: -webkit-calc(80% - 20px)")');
19     shouldBeTrue('CSS.supports("background-color: rgb(0, 128, 0)")');
20     shouldBeTrue('CSS.supports("background: url(\'/blah\')")');
21     shouldBeFalse('CSS.supports("background: invalid(\'/blah\')")');
22     shouldBeFalse('CSS.supports("display: none;")');
23     shouldBeFalse('CSS.supports("display: none; garbage")');
24     shouldBeFalse('CSS.supports("  display: none ; garbage ")');
25
26     // Negation
27     shouldBeTrue('CSS.supports("not (display: deadbeef)")');
28     shouldBeFalse('CSS.supports("not (display: none)")');
29     shouldBeTrue('CSS.supports("not (not (display: none))")');
30     shouldBeFalse('CSS.supports("not (not (not (display: none)))")');
31
32     // Conjunction.
33     shouldBeTrue('CSS.supports("(display: none) and (display: block)")');
34     shouldBeTrue('CSS.supports("(display: none) and (display: block) and (display: inline)")');
35     shouldBeFalse('CSS.supports("(display: none) and (display: block) and (display: deadbeef) and (display: inline)")');
36
37     // Disjunction.
38     shouldBeTrue('CSS.supports("(display: none) or (display: inline)")');
39     shouldBeTrue('CSS.supports("(display: none) or (display: block) or (display: inline)")');
40     shouldBeTrue('CSS.supports("(display: none) or (display: deadbeef) or (display: inline)")');
41     shouldBeFalse('CSS.supports("(display: ohhai) or (display: deadbeef) or (display: rainbows)")');
42
43     // Bad syntax. Can't mix operators without a layer of parentheses..
44     shouldBeFalse('CSS.supports("(display: none) and (display: block) or (display: inline)")');
45     shouldBeFalse('CSS.supports("not (display: deadbeef) and (display: block)")');
46
47     // Mix 'n match.
48     shouldBeTrue('CSS.supports("(not (border: 1px 1px 1px 1px 1px solid #000)) and (display: block)")');
49     shouldBeTrue('CSS.supports("(display: block !important) and ((display: inline) or (display: deadbeef))")');
50     shouldBeTrue('CSS.supports("not ((not (display: block)) or ((display: none) and (deadbeef: 1px)))")');
51
52     // Whitespace/Syntax.
53     shouldBeTrue('CSS.supports("not( display: deadbeef)")');
54     shouldBeTrue('CSS.supports("(display: none)and (   -webkit-transition: all 1s )")');
55     shouldBeTrue('CSS.supports("(display: none)or(-webkit-transition: all 1s)")');
56     shouldBeTrue('CSS.supports("(display: none) or(-webkit-transition: all 1s    )")');
57     shouldBeTrue('CSS.supports("(((((((display: none)))))))")');
58     shouldBeFalse('CSS.supports("(!important)")');
59     shouldBeFalse('CSS.supports("!important")');
60     shouldBeFalse('CSS.supports("not not not not (display: none)")');
61
62     // Functions.
63     shouldBeTrue('CSS.supports("(top: -webkit-calc(80% - 20px))")');
64     shouldBeTrue('CSS.supports("(background-color: rgb(0, 128, 0))")');
65     shouldBeTrue('CSS.supports("(background: url(\'/blah\'))")');
66     shouldBeTrue('CSS.supports("((top: -webkit-calc(80% - 20px)) and (not (background-color: rgb(0, 128, 0)))) or (background: url(\'/blah\'))")');
67     shouldBeFalse('CSS.supports("(background: invalid(\'/blah\'))")');
68
69     // Property/value variant.
70     shouldBeTrue('CSS.supports("top", "20%")');
71     shouldBeTrue('CSS.supports("top", " 20px   ")');
72     shouldBeFalse('CSS.supports("top", "20")');
73     shouldBeFalse('CSS.supports("dis\\nplay", "none")');
74     shouldBeFalse('CSS.supports("display", "rainbow")');
75     shouldBeFalse('CSS.supports("display", "url(rainbow.png)")');
76     shouldBeTrue('CSS.supports(" background   ", "url(rainbow.png)")');
77     shouldBeFalse('CSS.supports("background", "invalid(rainbow.png)")');
78     shouldBeTrue('CSS.supports("background-color", "#000")');
79     shouldBeTrue('CSS.supports("background-color", "rgba(0,0,0,0)")');
80     shouldBeTrue('CSS.supports("background-color", "inherit")');
81
82     shouldBeTrue('CSS.supports("display", "none !important")');
83     shouldBeTrue('CSS.supports("display", "none!important")');
84     shouldBeFalse('CSS.supports("display", "!important none")');
85     shouldBeFalse('CSS.supports("display", "none !important ! important ")');
86     shouldBeTrue('CSS.supports("display", "none ! important")');
87     shouldBeTrue('CSS.supports("display", "none ! \timportant")');
88     shouldBeTrue('CSS.supports("display", "none ! \\nimportant")');
89
90     shouldBeFalse('CSS.supports("", "")');
91     shouldBeFalse('CSS.supports(true, "")');
92     shouldBeFalse('CSS.supports([], "none")');
93     shouldBeFalse('CSS.supports("display", "")');
94     shouldBeFalse('CSS.supports("display:", "none")');
95     shouldBeTrue('CSS.supports("z-index", 1)');
96     shouldBeFalse('CSS.supports("content", [])');
97     shouldBeFalse('CSS.supports("content", "!important")');
98     shouldBeFalse('CSS.supports("(display: none)", undefined)');
99 </script>
100 <script src="../resources/js-test-post.js"></script>
101 </body>
102 </html>