Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Side by Side Diff: LayoutTests/fast/media/mq-append-delete.html

Issue 15094019: Fixing inconsistency with Media Query append/deleteMedium. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!doctype html>
2 <style type="text/css">@media screen { }</style>
3 <script src="../../resources/testharness.js"></script>
4 <script src="../../resources/testharnessreport.js"></script>
5 <div id=log></div>
6 <script>
7 var rules = document.styleSheets[0].cssRules;
8 var mediaList = rules.item(0).media;
9
10 // - appendMedium()
11
12 test(function () {
13 mediaList.mediaText = "screen";
14 mediaList.appendMedium("tv, screen");
15 assert_equals(mediaList.mediaText, "screen");
16 // CSSOM 4.1: Parsing media query returns none as
17 // there are more than one; terminate steps.
18 }, "Add 'tv, screen' to 'screen'");
19
20 test(function () {
21 mediaList.mediaText = "screen";
22 mediaList.appendMedium("tv");
23 assert_equals(mediaList.mediaText, "screen, tv");
24 // The valid media query is appended.
25 }, "Add 'tv' to 'screen'");
26
27 test(function () {
28 mediaList.mediaText = "screen, tv";
29 mediaList.appendMedium("tv");
30 assert_equals(mediaList.mediaText, "screen, tv");
31 // CSSOM says to ignore if it exists, terminate steps.
32 }, "Add 'tv' to 'screen, tv'");
33
34 test(function () {
35 mediaList.mediaText = "screen, tv";
36 mediaList.appendMedium("screen");
37 assert_equals(mediaList.mediaText, "screen, tv");
38 // CSSOM says to ignore if it exists, where as
39 // CSS 2.1 says to remove existing and then add
40 // it to the end.
41 // http://dev.w3.org/csswg/cssom/#dom-medialist-appendmedium
42 // http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/stylesheets.html
43 }, "Add 'screen' to 'screen, tv'");
44
45 test(function () {
46 mediaList.mediaText = "screen, tv";
47 mediaList.appendMedium(" ");
48 // Ignored; terminate steps.
49 assert_equals(mediaList.mediaText, "screen, tv");
50 }, "Add ' ' to 'screen, tv'");
51
52 test(function () {
53 mediaList.mediaText = "screen, tv";
54 mediaList.appendMedium("");
55 // Ignored; terminate steps.
56 assert_equals(mediaList.mediaText, "screen, tv");
57 }, "Add '' to 'screen, tv'");
58
59 test(function () {
60 mediaList.mediaText = "screen, tv";
61 mediaList.appendMedium(",");
62 assert_equals(mediaList.mediaText, "screen, tv");
63 // CSSOM 4.1: Parsing media query returns none as
64 // there are more than one; terminate steps.
65 }, "Add ',' to 'screen, tv'");
66
67 test(function () {
68 mediaList.mediaText = "screen, tv";
69 mediaList.appendMedium("&invalid");
70 assert_equals(mediaList.mediaText, "screen, tv");
71 // Ignored; terminate steps.
72 }, "Add '&invalid' to 'screen, tv'");
73
74 test(function () {
75 mediaList.mediaText = "screen, tv";
76 mediaList.appendMedium("not all");
77 assert_equals(mediaList.mediaText, "screen, tv, not all");
78 }, "Add 'not all' to 'screen, tv'");
79
80 // - deleteMedium()
81
82 test(function () {
83 mediaList.mediaText = "screen, tv, not all";
84 mediaList.deleteMedium("&invalid");
85 // Ignored; terminate steps.
86 assert_equals(mediaList.mediaText, "screen, tv, not all");
87 }, "Remove '&invalid' from 'screen, tv, not all'");
88
89 test(function () {
90 mediaList.mediaText = "screen, tv";
91 assert_throws("NOT_FOUND_ERR",
92 function () { mediaList.deleteMedium("not all"); }
93 );
94 // Not found; throw NotFoundError.
95 }, "Remove 'not all' from 'screen, tv'");
96
97 test(function () {
98 mediaList.mediaText = "screen, tv";
99 assert_throws("NOT_FOUND_ERR",
100 function () { mediaList.deleteMedium("cow"); }
101 );
102 // Not found; throw NotFoundError.
103 }, "Remove 'cow' from 'screen, tv'");
104
105 test(function () {
106 mediaList.mediaText = "screen, tv, not all";
107 mediaList.deleteMedium("not all");
108 assert_equals(mediaList.mediaText, "screen, tv");
109 // Remove any media query from the collection of media queries
110 // for which comparing the media query returns true.
111 }, "Remove 'not all' from 'screen, tv, not all'");
112
113 test(function () {
114 mediaList.mediaText = "screen, tv";
115 mediaList.deleteMedium("tv");
116 assert_equals(mediaList.mediaText, "screen");
117 // Remove any media query from the collection of media queries
118 // for which comparing the media query returns true.
119 }, "Remove 'tv' from 'screen, tv'");
120
121 test(function () {
122 mediaList.mediaText = "not all, not all, tv, not all";
123 mediaList.deleteMedium("not all");
124 assert_equals(mediaList.mediaText, "tv");
125 // Remove any media query from the collection of media queries
126 // for which comparing the media query returns true.
127 }, "Remove 'not all' from 'not all, not all, tv, not all'");
128
129 test(function () {
130 mediaList.mediaText = "not all, not all, tv, not all";
131 mediaList.deleteMedium("tv");
132 assert_equals(mediaList.mediaText, "not all, not all, not all");
133 // Remove any media query from the collection of media queries
134 // for which comparing the media query returns true.
135 }, "Remove 'tv' from 'not all, not all, tv, not all'");
136
137 test(function () {
138 mediaList.mediaText = "tv, print, screen";
139 mediaList.deleteMedium("tv, print");
140 assert_equals(mediaList.mediaText, "tv, print, screen");
141 // CSSOM 4.1: Parsing media query returns none as
142 // there are more than one; terminate steps.
143 }, "Remove 'tv, print' from 'screen, tv, screen'");
144 </script>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/fast/media/mq-append-delete-expected.txt » ('j') | Source/core/css/MediaList.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698