| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <title>WebStorage Test: Storage - set key with the same name as storage function</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <div id="log"></div> |
| <script> |
| ["localStorage", "sessionStorage"].forEach(function(name) { |
| test(function() { |
| var storage = window[name]; |
| storage.clear(); |
| |
| runTest(); |
| function doWedgeThySelf() { |
| storage.setItem("clear", "almost"); |
| storage.setItem("key", "too"); |
| storage.setItem("getItem", "funny"); |
| storage.setItem("removeItem", "to"); |
| storage.setItem("length", "be"); |
| storage.setItem("setItem", "true"); |
| } |
| |
| function runTest() { |
| doWedgeThySelf(); |
| |
| assert_equals(storage.getItem('clear'), "almost"); |
| assert_equals(storage.getItem('key'), "too"); |
| assert_equals(storage.getItem('getItem'), "funny"); |
| assert_equals(storage.getItem('removeItem'), "to"); |
| assert_equals(storage.getItem('length'), "be"); |
| assert_equals(storage.getItem('setItem'), "true"); |
| |
| // Test to see if an exception is thrown for any of the built in |
| // functions. |
| storage.setItem("test", "123"); |
| storage.key(0); |
| storage.getItem("test"); |
| storage.removeItem("test"); |
| storage.clear(); |
| assert_equals(storage.length, 0); |
| } |
| |
| }, name + " should be not rendered unusable by setting a key with the same name as a storage function such that the function is hidden"); |
| }); |
| </script> |
| </body> |
| </html> |
| |