OLD | NEW |
1 <html> | 1 <html> |
2 <import src="../resources/chai.sky" /> | 2 <import src="../resources/chai.sky" /> |
3 <import src="../resources/mocha.sky" /> | 3 <import src="../resources/mocha.sky" /> |
4 <import src="/sky/framework/sky-element/observe.sky" as="observe" /> | 4 <import src="/sky/framework/sky-element/observe.sky" as="observe" /> |
5 | 5 |
6 <script> | 6 <script> |
7 | 7 |
8 var Path = observe.Path; | 8 var Path = observe.Path; |
9 var PathObserver = observe.PathObserver; | 9 var PathObserver = observe.PathObserver; |
10 var ArrayObserver = observe.ArrayObserver; | 10 var ArrayObserver = observe.ArrayObserver; |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 observer.open(); | 327 observer.open(); |
328 observer.close(); | 328 observer.close(); |
329 assert.strictEqual(1, count); | 329 assert.strictEqual(1, count); |
330 }); | 330 }); |
331 | 331 |
332 it('valueFn/setValueFn', function() { | 332 it('valueFn/setValueFn', function() { |
333 var obj = { foo: 1 }; | 333 var obj = { foo: 1 }; |
334 | 334 |
335 function valueFn(value) { return value * 2; } | 335 function valueFn(value) { return value * 2; } |
336 | 336 |
337 function setValueFn(value) { return value / 2; } | |
338 | |
339 observer = new ObserverTransform(new PathObserver(obj, 'foo'), | 337 observer = new ObserverTransform(new PathObserver(obj, 'foo'), |
340 valueFn, | 338 valueFn); |
341 setValueFn); | |
342 observer.open(callback); | 339 observer.open(callback); |
343 | 340 |
344 obj.foo = 2; | 341 obj.foo = 2; |
345 | 342 |
346 assert.strictEqual(4, observer.discardChanges()); | 343 assert.strictEqual(4, observer.discardChanges()); |
347 assertNoChanges(); | 344 assertNoChanges(); |
348 | 345 |
349 observer.setValue(2); | 346 observer.setValue(2); |
350 assert.strictEqual(obj.foo, 1); | 347 assert.strictEqual(obj.foo, 2); |
351 assertPathChanges(2, 4); | |
352 | 348 |
353 obj.foo = 10; | 349 obj.foo = 10; |
354 assertPathChanges(20, 2); | 350 assertPathChanges(20, 4); |
355 | 351 |
356 observer.close(); | 352 observer.close(); |
357 }); | 353 }); |
358 | 354 |
359 it('valueFn - object literal', function() { | 355 it('valueFn - object literal', function() { |
360 var model = {}; | 356 var model = {}; |
361 | 357 |
362 function valueFn(value) { | 358 function valueFn(value) { |
363 return [ value ]; | 359 return [ value ]; |
364 } | 360 } |
(...skipping 1365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1730 model = ['1', '2', '3', '4', '5']; | 1726 model = ['1', '2', '3', '4', '5']; |
1731 observer = new ArrayObserver(model); | 1727 observer = new ArrayObserver(model); |
1732 observer.open(callback); | 1728 observer.open(callback); |
1733 model.length = 0; | 1729 model.length = 0; |
1734 model.push('a', '2', 'y', 'y', '4', '5', 'z', 'z'); | 1730 model.push('a', '2', 'y', 'y', '4', '5', 'z', 'z'); |
1735 assertEditDistance(model, 7); | 1731 assertEditDistance(model, 7); |
1736 observer.close(); | 1732 observer.close(); |
1737 }); | 1733 }); |
1738 }); | 1734 }); |
1739 </script> | 1735 </script> |
OLD | NEW |