| 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>
|
|
|