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

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

Issue 850383002: Add two way data binding. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Make it async. Created 5 years, 11 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
1 <sky> 1 <sky>
2 <import src="/sky/tests//resources/chai.sky" /> 2 <import src="/sky/tests//resources/chai.sky" />
3 <import src="/sky/tests/resources/mocha.sky" /> 3 <import src="/sky/tests/resources/mocha.sky" />
4 <import src="/sky/tests/resources/test-element.sky" as="TestElement" /> 4 <import src="/sky/tests/resources/test-element.sky" as="TestElement" />
5 5
6 <div id="sandbox"></div> 6 <div id="sandbox"></div>
7 7
8 <test-element id="parser-element" checked="true" size="10" name="foo bar" /> 8 <test-element id="parser-element" checked="true" size="10" name="foo bar" />
9 9
10 <script> 10 <script>
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 element.value = 20; 124 element.value = 20;
125 }).then(function() { 125 }).then(function() {
126 assert.equal(inside.textContent, 20); 126 assert.equal(inside.textContent, 20);
127 assert.equal(inside.lang, 20); 127 assert.equal(inside.lang, 20);
128 done(); 128 done();
129 }).catch(function(e) { 129 }).catch(function(e) {
130 done(e); 130 done(e);
131 }); 131 });
132 }); 132 });
133 133
134 it("should two way bind attributes", function(done) {
135 sandbox.appendChild(element);
136 var checkbox = element.shadowRoot.getElementById("checkbox");
137 assert.isFalse(checkbox.checked);
138 assert.isFalse(element.checked);
139 element.checked = true;
140 assert.isTrue(element.checked);
141 assert.isFalse(checkbox.checked);
142 Promise.resolve().then(function() {
143 assert.isTrue(checkbox.checked);
144 checkbox.checked = false;
145 assert.isFalse(checkbox.checked);
146 return Promise.resolve().then(function() {
147 assert.isFalse(element.checked);
148 assert.isFalse(checkbox.checked);
149 checkbox.checked = true;
150 assert.isTrue(checkbox.checked);
151 return Promise.resolve().then(function() {
152 assert.isTrue(element.checked);
153 element.checked = true;
154 assert.isTrue(element.checked);
155 assert.isTrue(checkbox.checked);
156 element.checked = false;
157 assert.isFalse(element.checked);
158 assert.isTrue(checkbox.checked);
159 return Promise.resolve().then(function() {
160 assert.isFalse(checkbox.checked);
161 assert.isFalse(element.checked);
162 done();
163 });
164 });
165 });
166 }).catch(function(e) {
167 done(e);
168 });
169 });
170
134 it("should connect template event handlers", function() { 171 it("should connect template event handlers", function() {
135 sandbox.appendChild(element); 172 sandbox.appendChild(element);
136 var inside = element.shadowRoot.getElementById("inside"); 173 var inside = element.shadowRoot.getElementById("inside");
137 inside.dispatchEvent(new CustomEvent("wrong-event")); 174 inside.dispatchEvent(new CustomEvent("wrong-event"));
138 assert.isNull(element.lastEvent); 175 assert.isNull(element.lastEvent);
139 var event = new CustomEvent("test-event"); 176 var event = new CustomEvent("test-event");
140 inside.dispatchEvent(event); 177 inside.dispatchEvent(event);
141 assert.equal(element.lastEvent, event); 178 assert.equal(element.lastEvent, event);
142 }); 179 });
143 180
144 it("should connect host event handlers", function() { 181 it("should connect host event handlers", function() {
145 sandbox.appendChild(element); 182 sandbox.appendChild(element);
146 element.dispatchEvent(new CustomEvent("wrong-event")); 183 element.dispatchEvent(new CustomEvent("wrong-event"));
147 assert.isNull(element.lastEvent); 184 assert.isNull(element.lastEvent);
148 var event = new CustomEvent("host-event"); 185 var event = new CustomEvent("host-event");
149 element.dispatchEvent(event); 186 element.dispatchEvent(event);
150 assert.equal(element.lastEvent, event); 187 assert.equal(element.lastEvent, event);
151 }); 188 });
152 189
153 it("should call shadowRootReady after creating the template instance", functio n() { 190 it("should call shadowRootReady after creating the template instance", functio n() {
154 assert.equal(element.shadowRootReadyCount, 0); 191 assert.equal(element.shadowRootReadyCount, 0);
155 sandbox.appendChild(element); 192 sandbox.appendChild(element);
156 assert.equal(element.shadowRootReadyCount, 1); 193 assert.equal(element.shadowRootReadyCount, 1);
157 element.remove(); 194 element.remove();
158 sandbox.appendChild(element); 195 sandbox.appendChild(element);
159 assert.equal(element.shadowRootReadyCount, 1); 196 assert.equal(element.shadowRootReadyCount, 1);
160 }); 197 });
161 }); 198 });
162 </script> 199 </script>
163 </sky> 200 </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