Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(247)

Side by Side Diff: polymer_1.0.4/bower_components/iron-meta/test/iron-meta.html

Issue 1205703007: Add polymer 1.0 to npm_modules (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Renamed folder to 1.0.4 Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!doctype html>
2 <!--
3 @license
4 Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
5 This code may only be used under the BSD style license found at http://polymer.g ithub.io/LICENSE.txt
6 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
7 The complete set of contributors may be found at http://polymer.github.io/CONTRI BUTORS.txt
8 Code distributed by Google as part of the polymer project is also
9 subject to an additional IP rights grant found at http://polymer.github.io/PATEN TS.txt
10 -->
11
12 <html>
13 <head>
14
15 <title>iron-meta</title>
16 <meta charset="utf-8">
17 <meta name="viewport" content="width=device-width, initial-scale=1.0">
18
19 <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
20 <script src="../../web-component-tester/browser.js"></script>
21 <script src="../../test-fixture/test-fixture-mocha.js"></script>
22
23 <link rel="import" href="../iron-meta.html">
24 <link rel="import" href="../../test-fixture/test-fixture.html">
25
26 </head>
27 <body>
28
29 <test-fixture id="TrivialMeta">
30 <template>
31 <iron-meta self key="info"></iron-meta>
32 </template>
33 </test-fixture>
34
35 <test-fixture id="ManyMetas">
36 <template>
37 <iron-meta self key="default1"></iron-meta>
38 <iron-meta self key="default2"></iron-meta>
39 <iron-meta self key="default3"></iron-meta>
40 </template>
41 </test-fixture>
42
43 <test-fixture id="DifferentTypedMetas">
44 <template>
45 <iron-meta self type="foo" key="foobarKey"></iron-meta>
46 <iron-meta self type="bar" key="foobarKey"></iron-meta>
47 <iron-meta self key="defaultKey"></iron-meta>
48 </template>
49 </test-fixture>
50
51 <test-fixture id="ClashingMetas">
52 <template>
53 <iron-meta self key="baz"></iron-meta>
54 <iron-meta self key="baz"></iron-meta>
55 </template>
56 </test-fixture>
57
58 <script>
59 suite('<iron-meta>', function () {
60 suite('basic behavior', function () {
61 var meta;
62
63 setup(function () {
64 meta = fixture('TrivialMeta');
65 });
66
67 teardown(function () {
68 meta.key = null;
69 });
70
71 test('uses itself as the default value', function () {
72 expect(meta.value).to.be.equal(meta);
73 });
74
75 test('can be assigned alternative values', function () {
76 meta.value = 'foobar';
77
78 expect(meta.list[0]).to.be.equal('foobar');
79 });
80
81 test('can access same-type meta values by key', function () {
82 expect(meta.byKey(meta.key)).to.be.equal(meta.value);
83 });
84
85 test('yields a list of same-type meta data', function () {
86 expect(meta.list).to.be.ok;
87 expect(meta.list.length).to.be.equal(1);
88 expect(meta.list[0]).to.be.equal(meta);
89 });
90 });
91
92 suite('many same-typed metas', function () {
93 var metas;
94
95 setup(function () {
96 metas = fixture('ManyMetas');
97 });
98
99 teardown(function () {
100 metas.forEach(function (meta) {
101 meta.key = null;
102 });
103 });
104
105 test('all cache all meta values', function () {
106 metas.forEach(function (meta, index) {
107 expect(meta.list.length).to.be.equal(metas.length);
108 expect(meta.list[index].value).to.be.equal(meta.value);
109 });
110 });
111
112 test('can be unregistered individually', function () {
113 metas[0].key = null;
114
115 expect(metas[0].list.length).to.be.equal(2);
116 expect(metas[0].list).to.be.deep.equal([metas[1], metas[2]])
117 });
118
119 test('can access each others value by key', function () {
120 expect(metas[0].byKey('default2')).to.be.equal(metas[1].value);
121 });
122 });
123
124 suite('different-typed metas', function () {
125 var metas;
126
127 setup(function () {
128 metas = fixture('DifferentTypedMetas');
129 });
130
131 teardown(function () {
132 metas.forEach(function (meta) {
133 meta.key = null;
134 });
135 });
136
137 test('cache their values separately', function () {
138 var fooMeta = metas[0];
139 var barMeta = metas[1];
140
141 expect(fooMeta.value).to.not.be.equal(barMeta.value);
142 expect(fooMeta.byKey('foobarKey')).to.be.equal(fooMeta.value);
143 expect(barMeta.byKey('foobarKey')).to.be.equal(barMeta.value);
144 });
145
146 test('cannot access values of other types', function () {
147 var defaultMeta = metas[2];
148
149 expect(defaultMeta.byKey('foobarKey')).to.be.equal(undefined);
150 });
151
152 test('only list values of their type', function () {
153 metas.forEach(function (meta) {
154 expect(meta.list.length).to.be.equal(1);
155 expect(meta.list[0]).to.be.equal(meta.value);
156 })
157 });
158 });
159
160 suite('metas with clashing keys', function () {
161 var metaPair;
162
163 setup(function () {
164 metaPair = fixture('ClashingMetas');
165 });
166
167 teardown(function () {
168 metaPair.forEach(function (meta) {
169 meta.key = null;
170 });
171 });
172
173 test('let the last value win registration against the key', function () {
174 var registeredValue = metaPair[0].byKey(metaPair[0].key);
175 var firstValue = metaPair[0].value;
176 var secondValue = metaPair[1].value;
177
178 expect(registeredValue).to.not.be.equal(firstValue);
179 expect(registeredValue).to.be.equal(secondValue);
180 });
181 });
182 });
183 </script>
184
185 </body>
186 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698