This test checks to ensure that window.localStorage and window.sessionStorage are not rendered unusable by setting a key with the same name as a storage function such that the function is hidden.

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


PASS storage.getItem('clear') is "almost"
PASS storage.getItem('key') is "too"
PASS storage.getItem('getItem') is "funny"
PASS storage.getItem('removeItem') is "to"
PASS storage.getItem('length') is "be"
PASS storage.getItem('setItem') is "true"
PASS storage.getItem('clear') is "almost"
PASS storage.getItem('key') is "too"
PASS storage.getItem('getItem') is "funny"
PASS storage.getItem('removeItem') is "to"
PASS storage.getItem('length') is "be"
PASS storage.getItem('setItem') is "true"
PASS successfullyParsed is true

TEST COMPLETE

