<!doctype html>
<meta charset=utf-8>
<title>CSS#escape</title>
<link rel=help href=https://drafts.csswg.org/cssom-1/#the-css.escape()-method>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<div id=log></div>
<script>
test(function() {
  assert_equals(CSS.escape.length, 1);
  assert_throws_js(TypeError, function() { CSS.escape(); });
}, "Number of arguments");

test(function() {
  assert_equals(CSS.escape(true), 'true');
  assert_equals(CSS.escape(false), 'false');
  assert_equals(CSS.escape(null), 'null');
  assert_equals(CSS.escape(''), '');
}, "String conversion");

test(function() {
  assert_equals(CSS.escape('\0'), '\uFFFD');
  assert_equals(CSS.escape('a\0'), 'a\uFFFD');
  assert_equals(CSS.escape('\0b'), '\uFFFDb');
  assert_equals(CSS.escape('a\0b'), 'a\uFFFDb');
}, "Null bytes");

test(function() {
  assert_equals(CSS.escape('\uFFFD'), '\uFFFD');
  assert_equals(CSS.escape('a\uFFFD'), 'a\uFFFD');
  assert_equals(CSS.escape('\uFFFDb'), '\uFFFDb');
  assert_equals(CSS.escape('a\uFFFDb'), 'a\uFFFDb');
}, "Replacement character");

test(function() {
  assert_equals(CSS.escape('0a'), '\\30 a');
  assert_equals(CSS.escape('1a'), '\\31 a');
  assert_equals(CSS.escape('2a'), '\\32 a');
  assert_equals(CSS.escape('3a'), '\\33 a');
  assert_equals(CSS.escape('4a'), '\\34 a');
  assert_equals(CSS.escape('5a'), '\\35 a');
  assert_equals(CSS.escape('6a'), '\\36 a');
  assert_equals(CSS.escape('7a'), '\\37 a');
  assert_equals(CSS.escape('8a'), '\\38 a');
  assert_equals(CSS.escape('9a'), '\\39 a');
}, "Number prefix");

test(function() {
  assert_equals(CSS.escape('a0b'), 'a0b');
  assert_equals(CSS.escape('a1b'), 'a1b');
  assert_equals(CSS.escape('a2b'), 'a2b');
  assert_equals(CSS.escape('a3b'), 'a3b');
  assert_equals(CSS.escape('a4b'), 'a4b');
  assert_equals(CSS.escape('a5b'), 'a5b');
  assert_equals(CSS.escape('a6b'), 'a6b');
  assert_equals(CSS.escape('a7b'), 'a7b');
  assert_equals(CSS.escape('a8b'), 'a8b');
  assert_equals(CSS.escape('a9b'), 'a9b');
}, "Letter number prefix");

test(function() {
  assert_equals(CSS.escape('-0a'), '-\\30 a');
  assert_equals(CSS.escape('-1a'), '-\\31 a');
  assert_equals(CSS.escape('-2a'), '-\\32 a');
  assert_equals(CSS.escape('-3a'), '-\\33 a');
  assert_equals(CSS.escape('-4a'), '-\\34 a');
  assert_equals(CSS.escape('-5a'), '-\\35 a');
  assert_equals(CSS.escape('-6a'), '-\\36 a');
  assert_equals(CSS.escape('-7a'), '-\\37 a');
  assert_equals(CSS.escape('-8a'), '-\\38 a');
  assert_equals(CSS.escape('-9a'), '-\\39 a');
}, "Dash number prefix");

test(function() {
  assert_equals(CSS.escape('--a'), '--a');
}, "Double dash prefix");

test(function() {
  assert_equals(CSS.escape('\x01\x02\x1E\x1F'), '\\1 \\2 \\1e \\1f ');

  assert_equals(CSS.escape('\x80\x2D\x5F\xA9'), '\x80\x2D\x5F\xA9');
  assert_equals(CSS.escape('\x7F\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F'), '\\7f \x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F');
  assert_equals(CSS.escape('\xA0\xA1\xA2'), '\xA0\xA1\xA2');
  assert_equals(CSS.escape('a0123456789b'), 'a0123456789b');
  assert_equals(CSS.escape('abcdefghijklmnopqrstuvwxyz'), 'abcdefghijklmnopqrstuvwxyz');
  assert_equals(CSS.escape('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ');

  assert_equals(CSS.escape("hello\\world"), "hello\\\\world", "Backslashes get backslash-escaped");
  assert_equals(CSS.escape("hello\u{1234}world"), "hello\u{1234}world", "Code points greater than U+0080 are preserved");
  assert_equals(CSS.escape("-"), "\\-", "CSS.escape: Single dash escaped");

  assert_equals(CSS.escape('\x20\x21\x78\x79'), '\\ \\!xy');
}, "Various tests");

test(function() {
  // astral symbol (U+1D306 TETRAGRAM FOR CENTRE)
  assert_equals(CSS.escape('\uD834\uDF06'), '\uD834\uDF06');
  // lone surrogates
  assert_equals(CSS.escape('\uDF06'), '\uDF06');
  assert_equals(CSS.escape('\uD834'), '\uD834');
}, "Surrogates");
</script>
