| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| import 'dart:html'; | |
| import 'package:expect/legacy/minitest.dart'; // ignore: deprecated_member_use_from_same_package | |
| main() { | |
| setUp(() { | |
| window.localStorage['key1'] = 'val1'; | |
| window.localStorage['key2'] = 'val2'; | |
| window.localStorage['key3'] = 'val3'; | |
| }); | |
| tearDown(() { | |
| window.localStorage.clear(); | |
| }); | |
| test('containsValue', () { | |
| expect(window.localStorage.containsValue('does not exist'), isFalse); | |
| expect(window.localStorage.containsValue('key1'), isFalse); | |
| expect(window.localStorage.containsValue('val1'), isTrue); | |
| expect(window.localStorage.containsValue('val3'), isTrue); | |
| }); | |
| test('containsKey', () { | |
| expect(window.localStorage.containsKey('does not exist'), isFalse); | |
| expect(window.localStorage.containsKey('val1'), isFalse); | |
| expect(window.localStorage.containsKey('key1'), isTrue); | |
| expect(window.localStorage.containsKey('key3'), isTrue); | |
| }); | |
| test('[]', () { | |
| expect(window.localStorage['does not exist'], isNull); | |
| expect(window.localStorage['key1'], 'val1'); | |
| expect(window.localStorage['key3'], 'val3'); | |
| }); | |
| test('[]=', () { | |
| expect(window.localStorage['key4'], isNull); | |
| window.localStorage['key4'] = 'val4'; | |
| expect(window.localStorage['key4'], 'val4'); | |
| expect(window.localStorage['key3'], 'val3'); | |
| window.localStorage['key3'] = 'val3-new'; | |
| expect(window.localStorage['key3'], 'val3-new'); | |
| }); | |
| test('putIfAbsent', () { | |
| expect(window.localStorage['key4'], isNull); | |
| expect(window.localStorage.putIfAbsent('key4', () => 'val4'), 'val4'); | |
| expect(window.localStorage['key4'], 'val4'); | |
| expect(window.localStorage['key3'], 'val3'); | |
| expect( | |
| window.localStorage.putIfAbsent('key3', () { | |
| fail('should not be called'); | |
| return 'unused'; | |
| }), | |
| 'val3', | |
| ); | |
| expect(window.localStorage['key3'], 'val3'); | |
| }); | |
| test('remove', () { | |
| expect(window.localStorage.remove('does not exist'), isNull); | |
| expect(window.localStorage.remove('key3'), 'val3'); | |
| expect(window.localStorage, equals({'key1': 'val1', 'key2': 'val2'})); | |
| }); | |
| test('clear', () { | |
| window.localStorage.clear(); | |
| expect(window.localStorage, equals({})); | |
| }); | |
| test('forEach', () { | |
| var results = <String, String>{}; | |
| window.localStorage.forEach((k, v) { | |
| results[k] = v; | |
| }); | |
| expect(results, equals({'key1': 'val1', 'key2': 'val2', 'key3': 'val3'})); | |
| }); | |
| test('getKeys', () { | |
| expect( | |
| window.localStorage.keys.toList(), | |
| unorderedEquals(['key1', 'key2', 'key3']), | |
| ); | |
| }); | |
| test('getVals', () { | |
| expect( | |
| window.localStorage.values.toList(), | |
| unorderedEquals(['val1', 'val2', 'val3']), | |
| ); | |
| }); | |
| test('getEntries', () { | |
| var results = <String, String>{}; | |
| window.localStorage.entries.forEach((e) { | |
| results[e.key] = e.value; | |
| }); | |
| expect(results, equals({'key1': 'val1', 'key2': 'val2', 'key3': 'val3'})); | |
| }); | |
| test('length', () { | |
| expect(window.localStorage.length, 3); | |
| window.localStorage.clear(); | |
| expect(window.localStorage.length, 0); | |
| }); | |
| test('isEmpty', () { | |
| expect(window.localStorage.isEmpty, isFalse); | |
| window.localStorage.clear(); | |
| expect(window.localStorage.isEmpty, isTrue); | |
| }); | |
| } |