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

Unified 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: For landing Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | LayoutTests/fast/media/mq-append-delete-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/fast/media/mq-append-delete.html
diff --git a/LayoutTests/fast/media/mq-append-delete.html b/LayoutTests/fast/media/mq-append-delete.html
new file mode 100644
index 0000000000000000000000000000000000000000..c855e7d6c081cacc6ec23999ae9108d4016f9881
--- /dev/null
+++ b/LayoutTests/fast/media/mq-append-delete.html
@@ -0,0 +1,144 @@
+<!doctype html>
+<style type="text/css">@media screen { }</style>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+var rules = document.styleSheets[0].cssRules;
+var mediaList = rules.item(0).media;
+
+// - appendMedium()
+
+test(function () {
+ mediaList.mediaText = "screen";
+ mediaList.appendMedium("tv, screen");
+ assert_equals(mediaList.mediaText, "screen");
+ // CSSOM 4.1: Parsing media query returns none as
+ // there are more than one; terminate steps.
+}, "Add 'tv, screen' to 'screen'");
+
+test(function () {
+ mediaList.mediaText = "screen";
+ mediaList.appendMedium("tv");
+ assert_equals(mediaList.mediaText, "screen, tv");
+ // The valid media query is appended.
+}, "Add 'tv' to 'screen'");
+
+test(function () {
+ mediaList.mediaText = "screen, tv";
+ mediaList.appendMedium("tv");
+ assert_equals(mediaList.mediaText, "screen, tv");
+ // CSSOM says to ignore if it exists, terminate steps.
+}, "Add 'tv' to 'screen, tv'");
+
+test(function () {
+ mediaList.mediaText = "screen, tv";
+ mediaList.appendMedium("screen");
+ assert_equals(mediaList.mediaText, "screen, tv");
+ // CSSOM says to ignore if it exists, where as
+ // CSS 2.1 says to remove existing and then add
+ // it to the end.
+ // http://dev.w3.org/csswg/cssom/#dom-medialist-appendmedium
+ // http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/stylesheets.html
+}, "Add 'screen' to 'screen, tv'");
+
+test(function () {
+ mediaList.mediaText = "screen, tv";
+ mediaList.appendMedium(" ");
+ // Ignored; terminate steps.
+ assert_equals(mediaList.mediaText, "screen, tv");
+}, "Add ' ' to 'screen, tv'");
+
+test(function () {
+ mediaList.mediaText = "screen, tv";
+ mediaList.appendMedium("");
+ // Ignored; terminate steps.
+ assert_equals(mediaList.mediaText, "screen, tv");
+}, "Add '' to 'screen, tv'");
+
+test(function () {
+ mediaList.mediaText = "screen, tv";
+ mediaList.appendMedium(",");
+ assert_equals(mediaList.mediaText, "screen, tv");
+ // CSSOM 4.1: Parsing media query returns none as
+ // there are more than one; terminate steps.
+}, "Add ',' to 'screen, tv'");
+
+test(function () {
+ mediaList.mediaText = "screen, tv";
+ mediaList.appendMedium("&invalid");
+ assert_equals(mediaList.mediaText, "screen, tv");
+ // Ignored; terminate steps.
+}, "Add '&invalid' to 'screen, tv'");
+
+test(function () {
+ mediaList.mediaText = "screen, tv";
+ mediaList.appendMedium("not all");
+ assert_equals(mediaList.mediaText, "screen, tv, not all");
+}, "Add 'not all' to 'screen, tv'");
+
+// - deleteMedium()
+
+test(function () {
+ mediaList.mediaText = "screen, tv, not all";
+ mediaList.deleteMedium("&invalid");
+ // Ignored; terminate steps.
+ assert_equals(mediaList.mediaText, "screen, tv, not all");
+}, "Remove '&invalid' from 'screen, tv, not all'");
+
+test(function () {
+ mediaList.mediaText = "screen, tv";
+ assert_throws("NOT_FOUND_ERR",
+ function () { mediaList.deleteMedium("not all"); }
+ );
+ // Not found; throw NotFoundError.
+}, "Remove 'not all' from 'screen, tv'");
+
+test(function () {
+ mediaList.mediaText = "screen, tv";
+ assert_throws("NOT_FOUND_ERR",
+ function () { mediaList.deleteMedium("cow"); }
+ );
+ // Not found; throw NotFoundError.
+}, "Remove 'cow' from 'screen, tv'");
+
+test(function () {
+ mediaList.mediaText = "screen, tv, not all";
+ mediaList.deleteMedium("not all");
+ assert_equals(mediaList.mediaText, "screen, tv");
+ // Remove any media query from the collection of media queries
+ // for which comparing the media query returns true.
+}, "Remove 'not all' from 'screen, tv, not all'");
+
+test(function () {
+ mediaList.mediaText = "screen, tv";
+ mediaList.deleteMedium("tv");
+ assert_equals(mediaList.mediaText, "screen");
+ // Remove any media query from the collection of media queries
+ // for which comparing the media query returns true.
+}, "Remove 'tv' from 'screen, tv'");
+
+test(function () {
+ mediaList.mediaText = "not all, not all, tv, not all";
+ mediaList.deleteMedium("not all");
+ assert_equals(mediaList.mediaText, "tv");
+ // Remove any media query from the collection of media queries
+ // for which comparing the media query returns true.
+}, "Remove 'not all' from 'not all, not all, tv, not all'");
+
+test(function () {
+ mediaList.mediaText = "not all, not all, tv, not all";
+ mediaList.deleteMedium("tv");
+ assert_equals(mediaList.mediaText, "not all, not all, not all");
+ // Remove any media query from the collection of media queries
+ // for which comparing the media query returns true.
+}, "Remove 'tv' from 'not all, not all, tv, not all'");
+
+test(function () {
+ mediaList.mediaText = "tv, print, screen";
+ mediaList.deleteMedium("tv, print");
+ assert_equals(mediaList.mediaText, "tv, print, screen");
+ // CSSOM 4.1: Parsing media query returns none as
+ // there are more than one; terminate steps.
+}, "Remove 'tv, print' from 'screen, tv, screen'");
+</script>
« no previous file with comments | « no previous file | LayoutTests/fast/media/mq-append-delete-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698