1<!DOCTYPE html> 2<html> 3<!-- 4Copyright (c) 2012 The Chromium Authors. All rights reserved. 5Use of this source code is governed by a BSD-style license that can be 6found in the LICENSE file. 7--> 8<head> 9<title>Settings tests</title> 10<script src="base.js"></script> 11</head> 12<body> 13<script> 14'use strict'; 15 16base.require('unittest'); 17base.require('test_utils'); 18base.require('settings'); 19 20function testSetGetString() { 21 var settings = new base.Settings(); 22 settings.set('my_key', 'my_val'); 23 assertEquals('my_val', settings.get('my_key')); 24} 25 26function testSetGetNumber() { 27 var settings = new base.Settings(); 28 settings.set('my_key', 5); 29 // Numbers are converted to strings. 30 assertEquals('5', settings.get('my_key')); 31} 32 33function testSetGetBool() { 34 var settings = new base.Settings(); 35 settings.set('my_key', false); 36 // Booleans are converted to strings. 37 assertEquals('false', settings.get('my_key')); 38} 39 40function testSetGetObject() { 41 var settings = new base.Settings(); 42 settings.set('my_key', {'hello': 5}); 43 // Objects are converted to strings. 44 assertEquals('[object Object]', settings.get('my_key')); 45} 46 47function testGetUnset() { 48 var settings = new base.Settings(); 49 // Undefined should be returned if value isn't set. 50 assertUndefined(settings.get('my_key')); 51} 52 53function testGetDefault() { 54 var settings = new base.Settings(); 55 // Null should be returned if value isn't set. 56 assertEquals('default_val', settings.get('my_key', 'default_val')); 57} 58 59function testSetGetPrefix() { 60 var settings = new base.Settings(); 61 settings.set('key_a', 'foo', 'my_prefix'); 62 assertEquals('foo', settings.get('key_a', undefined, 'my_prefix')); 63 assertEquals('foo', settings.get('key_a', 'bar', 'my_prefix')); 64 assertEquals(undefined, settings.get('key_a')); 65 assertEquals('bar', settings.get('key_a', 'bar')); 66} 67 68function testKeys() { 69 var settings = new base.Settings(); 70 settings.set('key_a', 'foo'); 71 settings.set('key_b', 'bar'); 72 settings.set('key_c', 'baz'); 73 assertArrayEquals(['key_a', 'key_b', 'key_c'], settings.keys()); 74} 75 76function testKeysPrefix() { 77 var settings = new base.Settings(); 78 settings.set('key_a', 'foo', 'prefix1'); 79 settings.set('key_b', 'bar', 'prefix1'); 80 settings.set('key_c', 'baz', 'prefix1'); 81 settings.set('key_a', 'foo', 'prefix2'); 82 settings.set('key_b', 'bar', 'prefix2'); 83 settings.set('key_C', 'baz', 'prefix2'); 84 assertArrayEquals(['key_a', 'key_b', 'key_c'], settings.keys('prefix1')); 85 assertArrayEquals(['key_C', 'key_a', 'key_b'], settings.keys('prefix2')); 86 assertArrayEquals(['prefix1.key_a', 'prefix1.key_b', 'prefix1.key_c', 87 'prefix2.key_C', 'prefix2.key_a', 'prefix2.key_b'], 88 settings.keys()); 89} 90 91</script> 92</body> 93</html> 94