~didrocks/+junk/face-detection-15.04

« back to all changes in this revision

Viewing changes to facedetection/www/bower_components/iron-meta/test/iron-meta.html

  • Committer: Didier Roche
  • Date: 2016-05-10 23:09:11 UTC
  • Revision ID: didier.roche@canonical.com-20160510230911-c7xr490zrj3yrzxd
New version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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.github.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/CONTRIBUTORS.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/PATENTS.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
  suite('singleton', function () {
 
184
 
 
185
    test('only one ironmeta created', function () {
 
186
      var first = Polymer.IronMeta.getIronMeta();
 
187
      var second = Polymer.IronMeta.getIronMeta();
 
188
      expect(first).to.be.equal(second);
 
189
    });
 
190
  });
 
191
});
 
192
    </script>
 
193
 
 
194
  </body>
 
195
</html>