This tests element.dataset.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS testGet('data-foo', 'foo') is true
PASS testGet('data-foo-bar', 'fooBar') is true
PASS testGet('data--', '-') is true
PASS testGet('data--foo', 'Foo') is true
PASS testGet('data---foo', '-Foo') is true
PASS testGet('data---foo--bar', '-Foo-Bar') is true
PASS testGet('data---foo---bar', '-Foo--Bar') is true
PASS testGet('data-foo-', 'foo-') is true
PASS testGet('data-foo--', 'foo--') is true
PASS testGet('data-Foo', 'foo') is true
PASS testGet('data-', '') is true
PASS testGet('data-à', 'à') is true
PASS document.body.dataset.nonExisting is undefined.

PASS matchesNothingInDataset('dataFoo') is true

PASS testSet('foo', 'data-foo') is true
PASS testSet('fooBar', 'data-foo-bar') is true
PASS testSet('-', 'data--') is true
PASS testSet('Foo', 'data--foo') is true
PASS testSet('-Foo', 'data---foo') is true
PASS testSet('', 'data-') is true
PASS testSet('à', 'data-à') is true

PASS testSet('-foo', 'dummy') threw exception Error: SyntaxError: DOM Exception 12.
PASS testSet('foo ', 'dummy') threw exception Error: InvalidCharacterError: DOM Exception 5.
PASS testSet('foo豈', 'dummy') threw exception Error: InvalidCharacterError: DOM Exception 5.

PASS testDelete('data-foo', 'foo') is true
PASS testDelete('data-foo-bar', 'fooBar') is true
PASS testDelete('data--', '-') is true
PASS testDelete('data--foo', 'Foo') is true
PASS testDelete('data---foo', '-Foo') is true
PASS testDelete('data-', '') is true
PASS testDelete('data-à', 'à') is true

PASS testDelete('dummy', '-foo') is false

PASS testForIn(['data-foo', 'data-bar', 'data-baz']) is 3
PASS testForIn(['data-foo', 'data-bar', 'dataFoo']) is 2
PASS testForIn(['data-foo', 'data-bar', 'style']) is 2
PASS testForIn(['data-foo', 'data-bar', 'data-']) is 3

Property override:
PASS Object.prototype.foo = 'on Object'; div.dataset.foo is 'on Object'
PASS div.dataset['foo'] = 'on dataset'; div.dataset.foo is 'on dataset'
PASS div.hasAttribute('data-foo') is true
PASS div.setAttribute('data-foo', 'attr'); div.dataset.foo is 'attr'
Update the JavaScript property:
PASS div.dataset.foo = 'updated'; div.dataset.foo is 'updated'
PASS div.getAttribute('data-foo') is 'updated'
PASS div.dataset.Bar = 'on dataset'; div.dataset.Bar is 'on dataset'
PASS div.hasAttribute('data-Bar') is false
Make the JavaScript property empty:
PASS div.dataset.foo = ''; div.dataset.foo is ''
PASS div.getAttribute('data-foo') is ''
Remove the attribute:
PASS div.removeAttribute('data-foo'); div.dataset.foo is 'on Object'
Remove the JavaScript property:
PASS div.setAttribute('data-foo', 'attr'); delete div.dataset.foo; div.dataset.foo is 'on Object'
PASS div.hasAttribute('foo') is false
PASS delete div.dataset.Bar; div.dataset.Bar is undefined.

PASS successfullyParsed is true

TEST COMPLETE

