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

Side by Side Diff: sky/tests/framework/templates.sky

Issue 1023213003: Removing Sky JS Framework tests (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « sky/tests/framework/observe-expected.txt ('k') | sky/tests/framework/templates-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <sky>
2 <import src="../resources/chai.sky" />
3 <import src="../resources/mocha.sky" />
4 <import src="../resources/test-element.sky" as="TestElement" />
5 <import src="/sky/framework/elements/sky-element/sky-element.sky" as="SkyElement " />
6
7 <div id="sandbox"></div>
8
9 <test-element id="parser-element" checked="true" size="10" name="foo bar" />
10
11 <sky-element name="test-element-parent">
12 <template>
13 <test-element size="{{ size }}" />
14 </template>
15 <script>
16 (class extends SkyElement {
17 created() {
18 this.size = 10;
19 }
20 }).register();
21 </script>
22 </sky-element>
23
24 <test-element-parent id="parent" />
25
26 <script>
27 describe("SkyElement", function() {
28 var element;
29 var sandbox = document.getElementById("sandbox");
30
31 beforeEach(function() {
32 element = new TestElement();
33 });
34 afterEach(function() {
35 element.remove();
36 });
37
38 it("should stamp when the element is inserted", function() {
39 assert.isNull(element.shadowRoot);
40 sandbox.appendChild(element);
41 assert.instanceOf(element.shadowRoot, ShadowRoot);
42 assert.ok(element.shadowRoot.getElementById("inside"));
43 });
44
45 it("should update isAttached when inserting", function() {
46 assert.isFalse(element.isAttached);
47 sandbox.appendChild(element);
48 assert.isTrue(element.isAttached);
49 element.remove();
50 assert.isFalse(element.isAttached);
51 });
52
53 it("should handle parser created elements with attributes", function() {
54 var element = document.getElementById("parser-element");
55 assert.isTrue(element.checked);
56 assert.isNumber(element.size);
57 assert.equal(element.size, 10);
58 assert.isString(element.name);
59 assert.equal(element.name, "foo bar");
60 });
61
62 it("should have defaults for all attributes", function() {
63 var element = new TestElement();
64 assert.isFalse(element.checked);
65 assert.isNumber(element.size);
66 assert.equal(element.size, 0);
67 assert.isString(element.name);
68 assert.equal(element.name, "");
69 });
70
71 it("should call change callbacks", function() {
72 var element = new TestElement();
73 element.size = 20;
74 element.name = "first name";
75 element.checked = true;
76 element.size = 10;
77 element.name = "second name";
78 assert.deepEqual(element.changes, [
79 { name: 'size', oldValue: 0, newValue: 20 },
80 { name: 'name', oldValue: "", newValue: "first name" },
81 { name: 'checked', oldValue: false, newValue: true },
82 { name: 'size', oldValue: 20, newValue: 10 },
83 { name: 'name', oldValue: "first name", newValue: "second name" },
84 ]);
85 });
86
87 it("should convert boolean reflected attributes", function() {
88 var element = new TestElement();
89 assert.isFalse(element.checked);
90 element.checked = null;
91 assert.isFalse(element.checked);
92 element.checked = "true";
93 assert.isTrue(element.checked);
94 element.checked = "false";
95 assert.isFalse(element.checked);
96 element.checked = {};
97 assert.isTrue(element.checked);
98 });
99
100 it("should convert string reflected attributes", function() {
101 var element = new TestElement();
102 assert.equal(element.name, "");
103 element.name = null;
104 assert.equal(element.name, "");
105 element.name = [1, 2];
106 assert.equal(element.name, "1,2");
107 element.name = false;
108 assert.equal(element.name, "false");
109 element.name = {};
110 assert.equal(element.name, "[object Object]");
111 element.name = "";
112 assert.equal(element.name, "");
113 });
114
115 it("should convert number reflected attributes", function() {
116 var element = new TestElement();
117 assert.isNumber(element.size);
118 element.size = 20;
119 assert.isNumber(element.size);
120 assert.equal(element.size, 20);
121 element.size = "08";
122 assert.equal(element.size, 8);
123 element.size = " 30 ";
124 assert.equal(element.size, 30);
125 element.size = "1.5";
126 assert.isNumber(element.size);
127 assert.equal(element.size, 1.5);
128 element.size = "false";
129 assert.isTrue(isNaN(element.size));
130 element.size = {};
131 assert.isTrue(isNaN(element.size));
132 });
133
134 it("should connect data binding", function(done) {
135 sandbox.appendChild(element);
136 var inside = element.shadowRoot.getElementById("inside");
137 Promise.resolve().then(function() {
138 assert.equal(inside.textContent, 10);
139 assert.equal(inside.lang, 10);
140 element.value = 20;
141 }).then(function() {
142 assert.equal(inside.textContent, 20);
143 assert.equal(inside.lang, 20);
144 done();
145 }).catch(function(e) {
146 done(e);
147 });
148 });
149
150 it("should two way bind attributes", function(done) {
151 sandbox.appendChild(element);
152 var checkbox = element.shadowRoot.getElementById("checkbox");
153 assert.isFalse(checkbox.checked);
154 assert.isFalse(element.checked);
155 element.checked = true;
156 assert.isTrue(element.checked);
157 assert.isFalse(checkbox.checked);
158 Promise.resolve().then(function() {
159 assert.isTrue(checkbox.checked);
160 checkbox.checked = false;
161 assert.isFalse(checkbox.checked);
162 return Promise.resolve().then(function() {
163 assert.isFalse(element.checked);
164 assert.isFalse(checkbox.checked);
165 checkbox.checked = true;
166 assert.isTrue(checkbox.checked);
167 return Promise.resolve().then(function() {
168 assert.isTrue(element.checked);
169 element.checked = true;
170 assert.isTrue(element.checked);
171 assert.isTrue(checkbox.checked);
172 element.checked = false;
173 assert.isFalse(element.checked);
174 assert.isTrue(checkbox.checked);
175 return Promise.resolve().then(function() {
176 assert.isFalse(checkbox.checked);
177 assert.isFalse(element.checked);
178 done();
179 });
180 });
181 });
182 }).catch(function(e) {
183 done(e);
184 });
185 });
186
187 it("should connect template event handlers", function() {
188 sandbox.appendChild(element);
189 var inside = element.shadowRoot.getElementById("inside");
190 inside.dispatchEvent(new CustomEvent("wrong-event"));
191 assert.isNull(element.lastEvent);
192 var event = new CustomEvent("test-event");
193 inside.dispatchEvent(event);
194 assert.equal(element.lastEvent, event);
195 });
196
197 it("should connect host event handlers", function() {
198 sandbox.appendChild(element);
199 element.dispatchEvent(new CustomEvent("wrong-event"));
200 assert.isNull(element.lastEvent);
201 var event = new CustomEvent("host-event");
202 element.dispatchEvent(event);
203 assert.equal(element.lastEvent, event);
204 });
205
206 it("should not call attributeChanged for binding expression values", function( ) {
207 var parent = document.getElementById('parent');
208 var element = parent.shadowRoot.querySelector('test-element');
209 assert.deepEqual(element.changes, [
210 { name: 'size', oldValue: 0, newValue: 10 },
211 ]);
212 });
213
214 it("should call shadowRootReady after creating the template instance", functio n() {
215 assert.equal(element.shadowRootReadyCount, 0);
216 sandbox.appendChild(element);
217 assert.equal(element.shadowRootReadyCount, 1);
218 element.remove();
219 sandbox.appendChild(element);
220 assert.equal(element.shadowRootReadyCount, 1);
221 });
222 });
223 </script>
224 </sky>
OLDNEW
« no previous file with comments | « sky/tests/framework/observe-expected.txt ('k') | sky/tests/framework/templates-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698