diff options
Diffstat (limited to 'dom/html/test/test_bug658746.html')
-rw-r--r-- | dom/html/test/test_bug658746.html | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/dom/html/test/test_bug658746.html b/dom/html/test/test_bug658746.html new file mode 100644 index 0000000000..260b345300 --- /dev/null +++ b/dom/html/test/test_bug658746.html @@ -0,0 +1,97 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=658746 +--> +<head> + <title>Test for Bug 658746</title> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=658746">Mozilla Bug 658746</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> +<pre id="test"> +<script type="application/javascript"> + +/** Test for Bug 658746 **/ + +/** + * Sets property, gets property and deletes property. + */ +function SetGetDelete(prop) +{ + var el = document.createElement('div'); + + el.dataset[prop] = 'aaaaaa'; + is(el.dataset[prop], 'aaaaaa', 'Dataset property "' + prop + '" should have been set.'); + + delete el.dataset[prop]; + is(el.dataset[prop], undefined, 'Dataset property"' + prop + '" should have been deleted.'); +} + +/** + * Gets, deletes and sets property. Expects exception while trying to set property. + */ +function SetExpectException(prop) +{ + var el = document.createElement('div'); + + is(el.dataset[prop], undefined, 'Dataset property "' + prop + '" should be undefined.'); + delete el.dataset[prop]; + + try { + el.dataset[prop] = "xxxxxx"; + ok(false, 'Exception should have been thrown when setting "' + prop + '".'); + } catch (ex) { + ok(true, 'Exception should have been thrown.'); + } +} + +// Numbers as properties. +SetGetDelete(-12345678901234567000); +SetGetDelete(-1); +SetGetDelete(0); +SetGetDelete(1); +SetGetDelete(12345678901234567000); + +// Floating point numbers as properties. +SetGetDelete(-1.1); +SetGetDelete(0.0); +SetGetDelete(1.1); + +// Hexadecimal numbers as properties. +SetGetDelete(0x3); +SetGetDelete(0xa); + +// Octal numbers as properties. +SetGetDelete(0o3); +SetGetDelete(0o7); + +// String numbers as properties. +SetGetDelete('0'); +SetGetDelete('01'); +SetGetDelete('0x1'); + +// Undefined as property. +SetGetDelete(undefined); + +// Empty arrays as properties. +SetGetDelete(new Array()); +SetGetDelete([]); + +// Non-empty array and object as properties. +SetExpectException(['a', 'b']); +SetExpectException({'a':'b'}); + +// Objects as properties. +SetExpectException(new Object()); +SetExpectException(document); + +</script> +</pre> +</body> +</html> |