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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/dom/script-tests/dataset-xhtml.js

Issue 2667393002: Stop using script-tests in fast/dom/. (Closed)
Patch Set: . Created 3 years, 10 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 description("This tests element.dataset for XHTML.");
2
3 function testGet(attr, expected)
4 {
5 var d = document.createElement("div");
6 d.setAttribute(attr, "value");
7 return d.dataset[expected] == "value";
8 }
9
10 shouldBeTrue("testGet('data-foo', 'foo')");
11 shouldBeTrue("testGet('data-foo-bar', 'fooBar')");
12 shouldBeTrue("testGet('data--', '-')");
13 shouldBeTrue("testGet('data--foo', 'Foo')");
14 shouldBeTrue("testGet('data---foo', '-Foo')");
15 shouldBeTrue("testGet('data-', '')");
16 shouldBeTrue("testGet('data-\xE0', '\xE0')");
17 debug("");
18
19 function matchesNothingInDataset(attr)
20 {
21 var d = document.createElement("div");
22 d.setAttribute(attr, "value");
23
24 var count = 0;
25 for (var item in d.dataset)
26 count++;
27 return count == 0;
28 }
29
30 shouldBeTrue("matchesNothingInDataset('dataFoo')");
31 shouldBeTrue("matchesNothingInDataset('data-Foo')");
32 debug("");
33
34 function testSet(prop, expected)
35 {
36 var d = document.createElement("div");
37 d.dataset[prop] = "value";
38 return d.getAttribute(expected) == "value";
39 }
40
41 shouldBeTrue("testSet('foo', 'data-foo')");
42 shouldBeTrue("testSet('fooBar', 'data-foo-bar')");
43 shouldBeTrue("testSet('-', 'data--')");
44 shouldBeTrue("testSet('Foo', 'data--foo')");
45 shouldBeTrue("testSet('-Foo', 'data---foo')");
46 shouldBeTrue("testSet('', 'data-')");
47 shouldBeTrue("testSet('\xE0', 'data-\xE0')");
48 debug("");
49
50 shouldThrow("testSet('-foo', 'dummy')", '"SyntaxError: Failed to set the \'-foo\ ' property on \'DOMStringMap\': \'-foo\' is not a valid property name."');
51 shouldThrow("testSet('foo\x20', 'dummy')", '"InvalidCharacterError: Failed to se t the \'foo\x20\' property on \'DOMStringMap\': \'data-foo\x20\' is not a valid attribute name."');
52 shouldThrow("testSet('foo\uF900', 'dummy')", '"InvalidCharacterError: Failed to set the \'foo\uF900\' property on \'DOMStringMap\': \'data-foo\uF900\' is not a valid attribute name."');
53 debug("");
54
55 function testDelete(attr, prop)
56 {
57 var d = document.createElement("div");
58 d.setAttribute(attr, "value");
59 delete d.dataset[prop];
60 return d.getAttribute(attr) != "value";
61 }
62
63 shouldBeTrue("testDelete('data-foo', 'foo')");
64 shouldBeTrue("testDelete('data-foo-bar', 'fooBar')");
65 shouldBeTrue("testDelete('data--', '-')");
66 shouldBeTrue("testDelete('data--foo', 'Foo')");
67 shouldBeTrue("testDelete('data---foo', '-Foo')");
68 shouldBeTrue("testDelete('data-', '')");
69 shouldBeTrue("testDelete('data-\xE0', '\xE0')");
70 debug("");
71
72 shouldBeFalse("testDelete('dummy', '-foo')");
73 debug("");
74
75 function testForIn(array)
76 {
77 var d = document.createElement("div");
78 for (var i = 0; i < array.length; ++i) {
79 d.setAttribute(array[i], "value");
80 }
81
82 var count = 0;
83 for (var item in d.dataset)
84 count++;
85
86 return count;
87 }
88
89 shouldBe("testForIn(['data-foo', 'data-bar', 'data-baz'])", "3");
90 shouldBe("testForIn(['data-foo', 'data-bar', 'dataFoo'])", "2");
91 shouldBe("testForIn(['data-foo', 'data-bar', 'style'])", "2");
92 shouldBe("testForIn(['data-foo', 'data-bar', 'data-'])", "3");
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698