1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Include test fixture.
GEN_INCLUDE(['testing/common_e2e_test_base.js']);
GEN_INCLUDE(['testing/mock_storage.js']);
/** Test fixture for local_storage.js. */
AccessibilityExtensionLocalStorageTest = class extends CommonE2ETestBase {
/** @override */
async setUpDeferred() {
await super.setUpDeferred();
chrome = chrome || {};
chrome.storage = chrome.storage || MockStorage;
}
};
AX_TEST_F(
'AccessibilityExtensionLocalStorageTest', 'Migration', async function() {
localStorage['catSound'] = 'meow';
localStorage['catIsShy'] = String(false);
localStorage['catIsFluffy'] = String(true);
localStorage['pawCount'] = String(4);
localStorage['catLengthInMeters'] = String(.5);
const catToys = [['toy_mouse', 'toy_bird'], ['red_car', 'blue_car']];
localStorage['catToys'] = JSON.stringify(catToys);
const cat = {
sound: 'meow',
isFluffy: true,
pawCount: 4,
lengthInMeters: .5,
toys: ['mouse', 'car'],
children: {},
};
localStorage['cat'] = JSON.stringify(cat);
// Creating more than once instance of LocalStorage causes an error.
delete LocalStorage.instance;
await LocalStorage.init();
// Check that values were migrated.
assertEquals(localStorage['catSound'], undefined);
assertEquals(typeof (LocalStorage.get('catSound')), 'string');
assertEquals(LocalStorage.get('catSound'), 'meow');
// Check that booleans are converted properly.
assertEquals(localStorage['catIsShy'], undefined);
assertEquals(typeof (LocalStorage.get('catIsShy')), 'boolean');
assertFalse(LocalStorage.get('catIsShy'));
assertEquals(localStorage['catIsFluffy'], undefined);
assertEquals(typeof (LocalStorage.get('catIsFluffy')), 'boolean');
assertTrue(LocalStorage.get('catIsFluffy'));
// Check that integers are converted properly.
assertEquals(localStorage['pawCount'], undefined);
assertEquals(typeof (LocalStorage.get('pawCount')), 'number');
assertEquals(LocalStorage.get('pawCount'), 4);
// Check that floating point numbers are converted properly.
assertEquals(localStorage['catLengthInMeters'], undefined);
assertEquals(typeof (LocalStorage.get('catLengthInMeters')), 'number');
assertEquals(LocalStorage.get('catLengthInMeters'), 0.5);
// Check that arrays are parsed correctly, including nested arrays.
assertEquals(localStorage['catToys'], undefined);
assertEquals(typeof (LocalStorage.get('catToys')), 'object');
assertTrue(LocalStorage.get('catToys') instanceof Array);
assertDeepEquals(LocalStorage.get('catToys'), catToys);
// Check that objects are parsed correctly, including all types of
// parameters.
assertEquals(localStorage['cat'], undefined);
assertEquals(typeof (LocalStorage.get('cat')), 'object');
assertDeepEquals(LocalStorage.get('cat'), cat);
});
|