summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/dom/elements/global-attributes/dataset-set.html
blob: a5bc177f504f9aa5acbad5e67a31a9145c486dd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<html>
  <head>
    <title>Dataset - Set</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
  </head>
  <body>
    <h1>Dataset - Set</h1>
    <div id="log"></div>
    <script>
      function testSet(prop, expected)
      {
        var d = document.createElement("div");
        d.dataset[prop] = "value";
        return d.getAttribute(expected) == "value";
      }

      test(function() { assert_true(testSet('foo', 'data-foo')); },
        "Setting element.dataset['foo'] should also change the value of element.getAttribute('data-foo')");
      test(function() { assert_true(testSet('fooBar', 'data-foo-bar')); },
        "Setting element.dataset['fooBar'] should also change the value of element.getAttribute('data-foo-bar')");
      test(function() { assert_true(testSet('-', 'data--')); },
        "Setting element.dataset['-'] should also change the value of element.getAttribute('data--')");
      test(function() { assert_true(testSet('Foo', 'data--foo')); },
        "Setting element.dataset['Foo'] should also change the value of element.getAttribute('data--foo')");
      test(function() { assert_true(testSet('-Foo', 'data---foo')); },
        "Setting element.dataset['-Foo'] should also change the value of element.getAttribute('data---foo')");
      test(function() { assert_true(testSet('', 'data-')); },
        "Setting element.dataset[''] should also change the value of element.getAttribute('data-')");
      test(function() { assert_true(testSet('\xE0', 'data-\xE0')); },
        "Setting element.dataset['\xE0'] should also change the value of element.getAttribute('data-\xE0')");
      test(function() { assert_throws_dom('SYNTAX_ERR', function() { testSet('-foo', 'dummy') }); },
        "Setting element.dataset['-foo'] should throw a SYNTAX_ERR");
      test(function() { assert_throws_dom('INVALID_CHARACTER_ERR', function() { testSet('foo\x20', 'dummy') }); },
        "Setting element.dataset['foo\x20'] should throw an INVALID_CHARACTER_ERR");
      test(function() { assert_throws_dom('INVALID_CHARACTER_ERR', function() { testSet('\u037Efoo', 'dummy') }); },
        "Setting element.dataset['\u037Efoo'] should throw an INVALID_CHARACTER_ERR");
      test(function() { assert_true(testSet('\u0BC6foo', 'data-\u0BC6foo')); },
        "Setting element.dataset['\u0BC6foo'] should also change the value of element.getAttribute('\u0BC6foo')");

    </script>
  </body>
</html>