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

Side by Side Diff: Tools/GardeningServer/lib/test/update-util-tests.html

Issue 728023004: Remove GardeningServer. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 <!--
2 Copyright 2014 The Chromium Authors. All rights reserved.
3 Use of this source code is governed by a BSD-style license that can be
4 found in the LICENSE file.
5 -->
6
7 <link rel="import" href="../update-util.html">
8
9 <script>
10
11 (function () {
12 'use strict';
13
14 var assert = chai.assert;
15
16 describe('update-util', function() {
17 describe('.updateLeft', function() {
18 it('updates an array', function() {
19 var x = {key: 'x', val: 0};
20 var y1 = {key: 'y', val: 1};
21 var y2 = {key: 'y', val: 2};
22 var z = {key: 'z', val: 3};
23 var target = [x, y1];
24 var source = [y2, z];
25 target = updateUtil.updateLeft(target, source);
26 assert.strictEqual(target[0], y1);
27 assert.strictEqual(target[1], z);
28 assert.equal(target[0].val, 2);
29 });
30
31 it('updates and reorders an array', function() {
32 var x = {key: 'x', val: 0};
33 var y1 = {key: 'y', val: 1};
34 var y2 = {key: 'y', val: 2};
35 var z = {key: 'z', val: 3};
36 var target = [x, y1];
37 var source = [z, y2];
38 target = updateUtil.updateLeft(target, source);
39 assert.strictEqual(target[0], z);
40 assert.strictEqual(target[1], y1);
41 assert.equal(target[1].val, 2);
42 });
43
44 it('updates an array to empty', function() {
45 var x = {key: 'x', val: 0};
46 var target = [x];
47 var source = [];
48 assert.deepEqual(updateUtil.updateLeft(target, source), []);
49
50 // Try without a key.
51 var x = {val: 0};
52 var target = [x];
53 var source = [];
54 assert.deepEqual(updateUtil.updateLeft(target, source), []);
55 });
56
57
58 it('calls custom updateLeft members', function() {
59 var y1 = {key: 'y', val: 1,
60 updateLeft: function(right) {
61 this.val += right.val;
62 return this;
63 }};
64 var y2 = {key: 'y', val: 2};
65 var target = [y1];
66 var source = [y2];
67 target = updateUtil.updateLeft(target, source);
68 assert.strictEqual(target[0], y1);
69 assert.propertyVal(target[0], 'val', 3);
70 assert.property(target[0], 'updateLeft');
71 });
72
73 it('calls custom updateLeft members in custom types', function() {
74 function Updatable(val) {
75 this.key = 'x';
76 this.val = val;
77 };
78 Updatable.prototype.updateLeft = function(right) {
79 this.val += right.val;
80 return this;
81 };
82
83 var y1 = new Updatable(1);
84 var y2 = new Updatable(2);
85 var target = [y1];
86 var source = [y2];
87 target = updateUtil.updateLeft(target, source);
88 assert.strictEqual(target[0], y1);
89 assert.propertyVal(target[0], 'val', 3);
90 assert.property(target[0], 'updateLeft');
91 });
92
93 it('skips transient properties', function() {
94 function Updatable(val, visible) {
95 this.val = val;
96 if (visible !== undefined)
97 this.visible = visible
98 };
99 Updatable.transientProperties = ['visible'];
100
101 var target = new Updatable(1, true);
102 var source = new Updatable(2, false);
103 assert.strictEqual(updateUtil.updateLeft(target, source), target);
104 assert.propertyVal(target, 'val', 2);
105 assert.propertyVal(target, 'visible', true);
106
107 var target = new Updatable(1, undefined);
108 var source = new Updatable(2, true);
109 updateUtil.updateLeft(target, source);
110 assert.notProperty(target, 'visible');
111
112 var target = new Updatable(1, true);
113 var source = new Updatable(2, undefined);
114 updateUtil.updateLeft(target, source);
115 assert.propertyVal(target, 'visible', true);
116 });
117
118 it('updates array containing null', function() {
119 var target = [{key: 'x', a: {b:1}}];
120 var source = [{key: 'x', a: null}];
121 target = updateUtil.updateLeft(target, source);
122 assert.propertyVal(target[0], 'a', null);
123
124 var target = [{key: 'x', a: null}];
125 var source = [{key: 'x', a: {b:1}}];
126 target = updateUtil.updateLeft(target, source);
127 assert.deepEqual(target[0].a, {b:1});
128 });
129
130 it('updates object containing null', function() {
131 var target = {x: {a: 1}};
132 var source = {x: null};
133 assert.strictEqual(updateUtil.updateLeft(target, source), target);
134 assert.propertyVal(target, 'x', null);
135
136 var target = {x: null};
137 var source = {x: {a: 1}};
138 assert.strictEqual(updateUtil.updateLeft(target, source), target);
139 assert.deepEqual(target.x, {a: 1});
140 });
141
142 it('returns source on badly typed arguments', function() {
143 assert.strictEqual(updateUtil.updateLeft(1, 2), 2);
144 var source = [2];
145 assert.strictEqual(updateUtil.updateLeft([1], source), source);
146 });
147 });
148 });
149
150 })();
151
152 </script>
OLDNEW
« no previous file with comments | « Tools/GardeningServer/lib/test/revisions-tests.html ('k') | Tools/GardeningServer/lib/update-util.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698