3 Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4 This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6 The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7 Code distributed by Google as part of the polymer project is also
8 subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
12 <meta charset=
"UTF-8">
13 <title>core-localstorage-value-binding
</title>
14 <meta name=
"viewport" content=
"width=device-width, initial-scale=1.0, maximum-scale=1.0">
16 <script src=
"../../webcomponentsjs/webcomponents.js"></script>
17 <script src=
"../../web-component-tester/browser.js"></script>
19 <link rel=
"import" href=
"../core-localstorage.html">
24 <polymer-element name=
"x-foo" attributes=
"value" noscript
>
26 <div>{{value.foo}}
</div>
30 <polymer-element name=
"x-test" attributes=
"value" noscript
>
32 <x-foo value=
"{{value}}"></x-foo>
33 <core-localstorage id=
"localstorage" name=
"core-localstorage-test" value=
"{{value}}"></core-localstorage>
41 window
.localStorage
.setItem('core-localstorage-test', '{"foo":"bar"}');
42 var xtest
= document
.querySelector('x-test');
44 suite('basic', function() {
46 test('initial value', function() {
47 assert
.isNotNull(xtest
.value
);
48 assert
.equal(xtest
.value
.foo
, 'bar');
51 test('set value', function(done
) {
52 var newValue
= {'foo': 'zot'};
53 xtest
.value
= newValue
;
54 asyncPlatformFlush(function() {
55 var v
= window
.localStorage
.getItem(xtest
.$.localstorage
.name
);
57 assert
.equal(v
.foo
, newValue
.foo
);
62 test('save', function(done
) {
63 xtest
.value
.foo
= 'quux';
64 xtest
.$.localstorage
.save();
65 asyncPlatformFlush(function() {
66 var v
= window
.localStorage
.getItem(xtest
.$.localstorage
.name
);
68 assert
.equal(v
.foo
, 'quux');