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

Side by Side Diff: third_party/protobuf/js/message_test.js

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Make chrome settings proto generated file a component Created 4 years 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 | « third_party/protobuf/js/message.js ('k') | third_party/protobuf/js/package.json » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Protocol Buffers - Google's data interchange format 1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved. 2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/ 3 // https://developers.google.com/protocol-buffers/
4 // 4 //
5 // Redistribution and use in source and binary forms, with or without 5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are 6 // modification, are permitted provided that the following conditions are
7 // met: 7 // met:
8 // 8 //
9 // * Redistributions of source code must retain the above copyright 9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer. 10 // notice, this list of conditions and the following disclaimer.
(...skipping 16 matching lines...) Expand all
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 30
31 // Test suite is written using Jasmine -- see http://jasmine.github.io/ 31 // Test suite is written using Jasmine -- see http://jasmine.github.io/
32 32
33 goog.setTestOnly(); 33 goog.setTestOnly();
34 34
35 goog.require('goog.json'); 35 goog.require('goog.json');
36 goog.require('goog.testing.asserts'); 36 goog.require('goog.testing.asserts');
37 goog.require('goog.userAgent');
37 38
38 // CommonJS-LoadFromFile: google-protobuf jspb 39 // CommonJS-LoadFromFile: google-protobuf jspb
39 goog.require('jspb.Message'); 40 goog.require('jspb.Message');
40 41
41 // CommonJS-LoadFromFile: test5_pb proto.jspb.exttest.beta 42 // CommonJS-LoadFromFile: test5_pb proto.jspb.exttest.beta
42 goog.require('proto.jspb.exttest.beta.floatingStrField'); 43 goog.require('proto.jspb.exttest.beta.floatingStrField');
43 44
44 // CommonJS-LoadFromFile: test3_pb proto.jspb.exttest 45 // CommonJS-LoadFromFile: test3_pb proto.jspb.exttest
45 goog.require('proto.jspb.exttest.floatingMsgField'); 46 goog.require('proto.jspb.exttest.floatingMsgField');
46 47
(...skipping 12 matching lines...) Expand all
59 goog.require('proto.jspb.test.HasExtensions'); 60 goog.require('proto.jspb.test.HasExtensions');
60 goog.require('proto.jspb.test.IndirectExtension'); 61 goog.require('proto.jspb.test.IndirectExtension');
61 goog.require('proto.jspb.test.IsExtension'); 62 goog.require('proto.jspb.test.IsExtension');
62 goog.require('proto.jspb.test.OptionalFields'); 63 goog.require('proto.jspb.test.OptionalFields');
63 goog.require('proto.jspb.test.OuterEnum'); 64 goog.require('proto.jspb.test.OuterEnum');
64 goog.require('proto.jspb.test.OuterMessage.Complex'); 65 goog.require('proto.jspb.test.OuterMessage.Complex');
65 goog.require('proto.jspb.test.Simple1'); 66 goog.require('proto.jspb.test.Simple1');
66 goog.require('proto.jspb.test.Simple2'); 67 goog.require('proto.jspb.test.Simple2');
67 goog.require('proto.jspb.test.SpecialCases'); 68 goog.require('proto.jspb.test.SpecialCases');
68 goog.require('proto.jspb.test.TestClone'); 69 goog.require('proto.jspb.test.TestClone');
70 goog.require('proto.jspb.test.TestEndsWithBytes');
69 goog.require('proto.jspb.test.TestGroup'); 71 goog.require('proto.jspb.test.TestGroup');
70 goog.require('proto.jspb.test.TestGroup1'); 72 goog.require('proto.jspb.test.TestGroup1');
71 goog.require('proto.jspb.test.TestMessageWithOneof'); 73 goog.require('proto.jspb.test.TestMessageWithOneof');
72 goog.require('proto.jspb.test.TestReservedNames'); 74 goog.require('proto.jspb.test.TestReservedNames');
73 goog.require('proto.jspb.test.TestReservedNamesExtension'); 75 goog.require('proto.jspb.test.TestReservedNamesExtension');
76 goog.require('proto.jspb.test.Deeply.Nested.Message');
74 77
75 // CommonJS-LoadFromFile: test2_pb proto.jspb.test 78 // CommonJS-LoadFromFile: test2_pb proto.jspb.test
76 goog.require('proto.jspb.test.ExtensionMessage'); 79 goog.require('proto.jspb.test.ExtensionMessage');
77 goog.require('proto.jspb.test.TestExtensionsMessage'); 80 goog.require('proto.jspb.test.TestExtensionsMessage');
81 goog.require('proto.jspb.test.ForeignNestedFieldMessage');
78 82
79 83
80 84
81 85
82 describe('Message test suite', function() { 86 describe('Message test suite', function() {
83 it('testEmptyProto', function() { 87 it('testEmptyProto', function() {
84 var empty1 = new proto.jspb.test.Empty([]); 88 var empty1 = new proto.jspb.test.Empty([]);
85 var empty2 = new proto.jspb.test.Empty([]); 89 var empty2 = new proto.jspb.test.Empty([]);
86 assertObjectEquals({}, empty1.toObject()); 90 assertObjectEquals({}, empty1.toObject());
87 assertObjectEquals('Message should not be corrupted:', empty2, empty1); 91 assertObjectEquals('Message should not be corrupted:', empty2, empty1);
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 return new proto.jspb.test.DefaultValues(values); 210 return new proto.jspb.test.DefaultValues(values);
207 } 211 }
208 212
209 // Test with undefined values, 213 // Test with undefined values,
210 // Use push to workaround IE treating undefined array elements as holes. 214 // Use push to workaround IE treating undefined array elements as holes.
211 response = makeDefault([undefined, undefined, undefined, undefined]); 215 response = makeDefault([undefined, undefined, undefined, undefined]);
212 assertEquals(defaultString, response.getStringField()); 216 assertEquals(defaultString, response.getStringField());
213 assertEquals(true, response.getBoolField()); 217 assertEquals(true, response.getBoolField());
214 assertEquals(11, response.getIntField()); 218 assertEquals(11, response.getIntField());
215 assertEquals(13, response.getEnumField()); 219 assertEquals(13, response.getEnumField());
220 assertFalse(response.hasStringField());
221 assertFalse(response.hasBoolField());
222 assertFalse(response.hasIntField());
223 assertFalse(response.hasEnumField());
216 224
217 // Test with null values, as would be returned by a JSON serializer. 225 // Test with null values, as would be returned by a JSON serializer.
218 response = makeDefault([null, null, null, null]); 226 response = makeDefault([null, null, null, null]);
219 assertEquals(defaultString, response.getStringField()); 227 assertEquals(defaultString, response.getStringField());
220 assertEquals(true, response.getBoolField()); 228 assertEquals(true, response.getBoolField());
221 assertEquals(11, response.getIntField()); 229 assertEquals(11, response.getIntField());
222 assertEquals(13, response.getEnumField()); 230 assertEquals(13, response.getEnumField());
231 assertFalse(response.hasStringField());
232 assertFalse(response.hasBoolField());
233 assertFalse(response.hasIntField());
234 assertFalse(response.hasEnumField());
223 235
224 // Test with false-like values. 236 // Test with false-like values.
225 response = makeDefault(['', false, 0, 0]); 237 response = makeDefault(['', false, 0, 0]);
226 assertEquals('', response.getStringField()); 238 assertEquals('', response.getStringField());
227 assertEquals(false, response.getBoolField()); 239 assertEquals(false, response.getBoolField());
228 assertEquals(true, response.getIntField() == 0); 240 assertEquals(true, response.getIntField() == 0);
229 assertEquals(true, response.getEnumField() == 0); 241 assertEquals(true, response.getEnumField() == 0);
242 assertTrue(response.hasStringField());
243 assertTrue(response.hasBoolField());
244 assertTrue(response.hasIntField());
245 assertTrue(response.hasEnumField());
230 246
231 // Test that clearing the values reverts them to the default state. 247 // Test that clearing the values reverts them to the default state.
232 response = makeDefault(['blah', false, 111, 77]); 248 response = makeDefault(['blah', false, 111, 77]);
233 response.clearStringField(); response.clearBoolField(); 249 response.clearStringField(); response.clearBoolField();
234 response.clearIntField(); response.clearEnumField(); 250 response.clearIntField(); response.clearEnumField();
235 assertEquals(defaultString, response.getStringField()); 251 assertEquals(defaultString, response.getStringField());
236 assertEquals(true, response.getBoolField()); 252 assertEquals(true, response.getBoolField());
237 assertEquals(11, response.getIntField()); 253 assertEquals(11, response.getIntField());
238 assertEquals(13, response.getEnumField()); 254 assertEquals(13, response.getEnumField());
255 assertFalse(response.hasStringField());
256 assertFalse(response.hasBoolField());
257 assertFalse(response.hasIntField());
258 assertFalse(response.hasEnumField());
239 259
240 // Test that setFoo(null) clears the values. 260 // Test that setFoo(null) clears the values.
241 response = makeDefault(['blah', false, 111, 77]); 261 response = makeDefault(['blah', false, 111, 77]);
242 response.setStringField(null); response.setBoolField(null); 262 response.setStringField(null); response.setBoolField(null);
243 response.setIntField(undefined); response.setEnumField(undefined); 263 response.setIntField(undefined); response.setEnumField(undefined);
244 assertEquals(defaultString, response.getStringField()); 264 assertEquals(defaultString, response.getStringField());
245 assertEquals(true, response.getBoolField()); 265 assertEquals(true, response.getBoolField());
246 assertEquals(11, response.getIntField()); 266 assertEquals(11, response.getIntField());
247 assertEquals(13, response.getEnumField()); 267 assertEquals(13, response.getEnumField());
268 assertFalse(response.hasStringField());
269 assertFalse(response.hasBoolField());
270 assertFalse(response.hasIntField());
271 assertFalse(response.hasEnumField());
248 }); 272 });
249 273
250 it('testMessageRegistration', function() { 274 it('testMessageRegistration', /** @suppress {visibility} */ function() {
251 // goog.require(SomeResponse) will include its library, which will in 275 // goog.require(SomeResponse) will include its library, which will in
252 // turn add SomeResponse to the message registry. 276 // turn add SomeResponse to the message registry.
253 assertEquals(jspb.Message.registry_['res'], proto.jspb.test.SomeResponse); 277 assertEquals(jspb.Message.registry_['res'], proto.jspb.test.SomeResponse);
254 }); 278 });
255 279
256 it('testClearFields', function() { 280 it('testClearFields', function() {
257 // We don't set 'proper' defaults, rather, bools, strings,
258 // etc, are cleared to undefined or null and take on the Javascript
259 // meaning for that value. Repeated fields are set to [] when cleared.
260 var data = ['str', true, [11], [[22], [33]], ['s1', 's2']]; 281 var data = ['str', true, [11], [[22], [33]], ['s1', 's2']];
261 var foo = new proto.jspb.test.OptionalFields(data); 282 var foo = new proto.jspb.test.OptionalFields(data);
262 foo.clearAString(); 283 foo.clearAString();
263 foo.clearABool(); 284 foo.clearABool();
264 foo.clearANestedMessage(); 285 foo.clearANestedMessage();
265 foo.clearARepeatedMessageList(); 286 foo.clearARepeatedMessageList();
266 foo.clearARepeatedStringList(); 287 foo.clearARepeatedStringList();
267 assertUndefined(foo.getAString()); 288 assertEquals('', foo.getAString());
268 assertUndefined(foo.getABool()); 289 assertEquals(false, foo.getABool());
269 assertUndefined(foo.getANestedMessage()); 290 assertUndefined(foo.getANestedMessage());
291 assertFalse(foo.hasAString());
292 assertFalse(foo.hasABool());
270 assertObjectEquals([], foo.getARepeatedMessageList()); 293 assertObjectEquals([], foo.getARepeatedMessageList());
271 assertObjectEquals([], foo.getARepeatedStringList()); 294 assertObjectEquals([], foo.getARepeatedStringList());
272 // NOTE: We want the missing fields in 'expected' to be undefined, 295 // NOTE: We want the missing fields in 'expected' to be undefined,
273 // but we actually get a sparse array instead. We could use something 296 // but we actually get a sparse array instead. We could use something
274 // like [1,undefined,2] to avoid this, except that this is still 297 // like [1,undefined,2] to avoid this, except that this is still
275 // sparse on IE. No comment... 298 // sparse on IE. No comment...
276 var expected = [,,, [], []]; 299 var expected = [,,, [], []];
277 expected[0] = expected[1] = expected[2] = undefined; 300 expected[0] = expected[1] = expected[2] = undefined;
278 assertObjectEquals(expected, foo.toArray()); 301 assertObjectEquals(expected, foo.toArray());
279
280 // Test set(null). We could deprecated this in favor of clear(), but
281 // it's also convenient to have.
282 data = ['str', true, [11], [[22], [33]], ['s1', 's2']];
283 foo = new proto.jspb.test.OptionalFields(data);
284 foo.setAString(null);
285 foo.setABool(null);
286 foo.setANestedMessage(null);
287 foo.setARepeatedMessageList(null);
288 foo.setARepeatedStringList(null);
289 assertNull(foo.getAString());
290 assertNull(foo.getABool());
291 assertNull(foo.getANestedMessage());
292 assertObjectEquals([], foo.getARepeatedMessageList());
293 assertObjectEquals([], foo.getARepeatedStringList());
294 assertObjectEquals([null, null, null, [], []], foo.toArray());
295
296 // Test set(undefined). Again, not something we really need, and not
297 // supported directly by our typing, but it should 'do the right thing'.
298 data = ['str', true, [11], [[22], [33]], ['s1', 's2']];
299 foo = new proto.jspb.test.OptionalFields(data);
300 foo.setAString(undefined);
301 foo.setABool(undefined);
302 foo.setANestedMessage(undefined);
303 foo.setARepeatedMessageList(undefined);
304 foo.setARepeatedStringList(undefined);
305 assertUndefined(foo.getAString());
306 assertUndefined(foo.getABool());
307 assertUndefined(foo.getANestedMessage());
308 assertObjectEquals([], foo.getARepeatedMessageList());
309 assertObjectEquals([], foo.getARepeatedStringList());
310 expected = [,,, [], []];
311 expected[0] = expected[1] = expected[2] = undefined;
312 assertObjectEquals(expected, foo.toArray());
313 }); 302 });
314 303
315 it('testDifferenceRawObject', function() { 304 it('testDifferenceRawObject', /** @suppress {visibility} */ function() {
316 var p1 = new proto.jspb.test.HasExtensions(['hi', 'diff', {}]); 305 var p1 = new proto.jspb.test.HasExtensions(['hi', 'diff', {}]);
317 var p2 = new proto.jspb.test.HasExtensions(['hi', 'what', 306 var p2 = new proto.jspb.test.HasExtensions(['hi', 'what',
318 {1000: 'unique'}]); 307 {1000: 'unique'}]);
319 var diff = /** @type {proto.jspb.test.HasExtensions} */ 308 var diff = /** @type {proto.jspb.test.HasExtensions} */
320 (jspb.Message.difference(p1, p2)); 309 (jspb.Message.difference(p1, p2));
321 assertUndefined(diff.getStr1()); 310 assertEquals('', diff.getStr1());
322 assertEquals('what', diff.getStr2()); 311 assertEquals('what', diff.getStr2());
323 assertUndefined(diff.getStr3()); 312 assertEquals('', diff.getStr3());
324 assertEquals('unique', diff.extensionObject_[1000]); 313 assertEquals('unique', diff.extensionObject_[1000]);
325 }); 314 });
326 315
327 it('testEqualsSimple', function() { 316 it('testEqualsSimple', function() {
328 var s1 = new proto.jspb.test.Simple1(['hi']); 317 var s1 = new proto.jspb.test.Simple1(['hi']);
329 assertTrue(jspb.Message.equals(s1, new proto.jspb.test.Simple1(['hi']))); 318 assertTrue(jspb.Message.equals(s1, new proto.jspb.test.Simple1(['hi'])));
330 assertFalse(jspb.Message.equals(s1, new proto.jspb.test.Simple1(['bye']))); 319 assertFalse(jspb.Message.equals(s1, new proto.jspb.test.Simple1(['bye'])));
331 var s1b = new proto.jspb.test.Simple1(['hi', ['hello']]); 320 var s1b = new proto.jspb.test.Simple1(['hi', ['hello']]);
332 assertTrue(jspb.Message.equals(s1b, 321 assertTrue(jspb.Message.equals(s1b,
333 new proto.jspb.test.Simple1(['hi', ['hello']]))); 322 new proto.jspb.test.Simple1(['hi', ['hello']])));
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 proto.jspb.test.Simple1.prototype.toObject); 420 proto.jspb.test.Simple1.prototype.toObject);
432 assertEquals('k', soymap['k'].aString); 421 assertEquals('k', soymap['k'].aString);
433 assertArrayEquals(['v'], soymap['k'].aRepeatedStringList); 422 assertArrayEquals(['v'], soymap['k'].aRepeatedStringList);
434 var protomap = jspb.Message.toMap([p1, p2], 423 var protomap = jspb.Message.toMap([p1, p2],
435 proto.jspb.test.Simple1.prototype.getAString); 424 proto.jspb.test.Simple1.prototype.getAString);
436 assertEquals('k', protomap['k'].getAString()); 425 assertEquals('k', protomap['k'].getAString());
437 assertArrayEquals(['v'], protomap['k'].getARepeatedStringList()); 426 assertArrayEquals(['v'], protomap['k'].getARepeatedStringList());
438 }); 427 });
439 428
440 it('testClone', function() { 429 it('testClone', function() {
430 var supportsUint8Array =
431 !goog.userAgent.IE || goog.userAgent.isVersionOrHigher('10');
441 var original = new proto.jspb.test.TestClone(); 432 var original = new proto.jspb.test.TestClone();
442 original.setStr('v1'); 433 original.setStr('v1');
443 var simple1 = new proto.jspb.test.Simple1(['x1', ['y1', 'z1']]); 434 var simple1 = new proto.jspb.test.Simple1(['x1', ['y1', 'z1']]);
444 var simple2 = new proto.jspb.test.Simple1(['x2', ['y2', 'z2']]); 435 var simple2 = new proto.jspb.test.Simple1(['x2', ['y2', 'z2']]);
445 var simple3 = new proto.jspb.test.Simple1(['x3', ['y3', 'z3']]); 436 var simple3 = new proto.jspb.test.Simple1(['x3', ['y3', 'z3']]);
446 original.setSimple1(simple1); 437 original.setSimple1(simple1);
447 original.setSimple2List([simple2, simple3]); 438 original.setSimple2List([simple2, simple3]);
439 var bytes1 = supportsUint8Array ? new Uint8Array([1, 2, 3]) : '123';
440 original.setBytesField(bytes1);
448 var extension = new proto.jspb.test.CloneExtension(); 441 var extension = new proto.jspb.test.CloneExtension();
449 extension.setExt('e1'); 442 extension.setExt('e1');
450 original.setExtension(proto.jspb.test.IsExtension.extField, extension); 443 original.setExtension(proto.jspb.test.IsExtension.extField, extension);
451 var clone = original.cloneMessage(); 444 var clone = original.clone();
452 assertArrayEquals(['v1',, ['x1', ['y1', 'z1']],, 445 assertArrayEquals(['v1',, ['x1', ['y1', 'z1']],,
453 [['x2', ['y2', 'z2']], ['x3', ['y3', 'z3']]],,, { 100: [, 'e1'] }], 446 [['x2', ['y2', 'z2']], ['x3', ['y3', 'z3']]], bytes1,, { 100: [, 'e1'] }],
454 clone.toArray()); 447 clone.toArray());
455 clone.setStr('v2'); 448 clone.setStr('v2');
456 var simple4 = new proto.jspb.test.Simple1(['a1', ['b1', 'c1']]); 449 var simple4 = new proto.jspb.test.Simple1(['a1', ['b1', 'c1']]);
457 var simple5 = new proto.jspb.test.Simple1(['a2', ['b2', 'c2']]); 450 var simple5 = new proto.jspb.test.Simple1(['a2', ['b2', 'c2']]);
458 var simple6 = new proto.jspb.test.Simple1(['a3', ['b3', 'c3']]); 451 var simple6 = new proto.jspb.test.Simple1(['a3', ['b3', 'c3']]);
459 clone.setSimple1(simple4); 452 clone.setSimple1(simple4);
460 clone.setSimple2List([simple5, simple6]); 453 clone.setSimple2List([simple5, simple6]);
454 if (supportsUint8Array) {
455 clone.getBytesField()[0] = 4;
456 assertObjectEquals(bytes1, original.getBytesField());
457 }
458 var bytes2 = supportsUint8Array ? new Uint8Array([4, 5, 6]) : '456';
459 clone.setBytesField(bytes2);
461 var newExtension = new proto.jspb.test.CloneExtension(); 460 var newExtension = new proto.jspb.test.CloneExtension();
462 newExtension.setExt('e2'); 461 newExtension.setExt('e2');
463 clone.setExtension(proto.jspb.test.CloneExtension.extField, newExtension); 462 clone.setExtension(proto.jspb.test.CloneExtension.extField, newExtension);
464 assertArrayEquals(['v2',, ['a1', ['b1', 'c1']],, 463 assertArrayEquals(['v2',, ['a1', ['b1', 'c1']],,
465 [['a2', ['b2', 'c2']], ['a3', ['b3', 'c3']]],,, { 100: [, 'e2'] }], 464 [['a2', ['b2', 'c2']], ['a3', ['b3', 'c3']]], bytes2,, { 100: [, 'e2'] }],
466 clone.toArray()); 465 clone.toArray());
467 assertArrayEquals(['v1',, ['x1', ['y1', 'z1']],, 466 assertArrayEquals(['v1',, ['x1', ['y1', 'z1']],,
468 [['x2', ['y2', 'z2']], ['x3', ['y3', 'z3']]],,, { 100: [, 'e1'] }], 467 [['x2', ['y2', 'z2']], ['x3', ['y3', 'z3']]], bytes1,, { 100: [, 'e1'] }],
469 original.toArray()); 468 original.toArray());
470 }); 469 });
471 470
472 it('testCopyInto', function() { 471 it('testCopyInto', function() {
472 var supportsUint8Array =
473 !goog.userAgent.IE || goog.userAgent.isVersionOrHigher('10');
473 var original = new proto.jspb.test.TestClone(); 474 var original = new proto.jspb.test.TestClone();
474 original.setStr('v1'); 475 original.setStr('v1');
475 var dest = new proto.jspb.test.TestClone(); 476 var dest = new proto.jspb.test.TestClone();
476 dest.setStr('override'); 477 dest.setStr('override');
477 var simple1 = new proto.jspb.test.Simple1(['x1', ['y1', 'z1']]); 478 var simple1 = new proto.jspb.test.Simple1(['x1', ['y1', 'z1']]);
478 var simple2 = new proto.jspb.test.Simple1(['x2', ['y2', 'z2']]); 479 var simple2 = new proto.jspb.test.Simple1(['x2', ['y2', 'z2']]);
479 var simple3 = new proto.jspb.test.Simple1(['x3', ['y3', 'z3']]); 480 var simple3 = new proto.jspb.test.Simple1(['x3', ['y3', 'z3']]);
480 var destSimple1 = new proto.jspb.test.Simple1(['ox1', ['oy1', 'oz1']]); 481 var destSimple1 = new proto.jspb.test.Simple1(['ox1', ['oy1', 'oz1']]);
481 var destSimple2 = new proto.jspb.test.Simple1(['ox2', ['oy2', 'oz2']]); 482 var destSimple2 = new proto.jspb.test.Simple1(['ox2', ['oy2', 'oz2']]);
482 var destSimple3 = new proto.jspb.test.Simple1(['ox3', ['oy3', 'oz3']]); 483 var destSimple3 = new proto.jspb.test.Simple1(['ox3', ['oy3', 'oz3']]);
483 original.setSimple1(simple1); 484 original.setSimple1(simple1);
484 original.setSimple2List([simple2, simple3]); 485 original.setSimple2List([simple2, simple3]);
485 dest.setSimple1(destSimple1); 486 dest.setSimple1(destSimple1);
486 dest.setSimple2List([destSimple2, destSimple3]); 487 dest.setSimple2List([destSimple2, destSimple3]);
488 var bytes1 = supportsUint8Array ? new Uint8Array([1, 2, 3]) : '123';
489 var bytes2 = supportsUint8Array ? new Uint8Array([4, 5, 6]) : '456';
490 original.setBytesField(bytes1);
491 dest.setBytesField(bytes2);
487 var extension = new proto.jspb.test.CloneExtension(); 492 var extension = new proto.jspb.test.CloneExtension();
488 extension.setExt('e1'); 493 extension.setExt('e1');
489 original.setExtension(proto.jspb.test.CloneExtension.extField, extension); 494 original.setExtension(proto.jspb.test.CloneExtension.extField, extension);
490 495
491 jspb.Message.copyInto(original, dest); 496 jspb.Message.copyInto(original, dest);
492 assertArrayEquals(original.toArray(), dest.toArray()); 497 assertArrayEquals(original.toArray(), dest.toArray());
493 assertEquals('x1', dest.getSimple1().getAString()); 498 assertEquals('x1', dest.getSimple1().getAString());
494 assertEquals('e1', 499 assertEquals('e1',
495 dest.getExtension(proto.jspb.test.CloneExtension.extField).getExt()); 500 dest.getExtension(proto.jspb.test.CloneExtension.extField).getExt());
496 dest.getSimple1().setAString('new value'); 501 dest.getSimple1().setAString('new value');
497 assertNotEquals(dest.getSimple1().getAString(), 502 assertNotEquals(dest.getSimple1().getAString(),
498 original.getSimple1().getAString()); 503 original.getSimple1().getAString());
504 if (supportsUint8Array) {
505 dest.getBytesField()[0] = 7;
506 assertObjectEquals(bytes1, original.getBytesField());
507 assertObjectEquals(new Uint8Array([7, 2, 3]), dest.getBytesField());
508 } else {
509 dest.setBytesField('789');
510 assertObjectEquals(bytes1, original.getBytesField());
511 assertObjectEquals('789', dest.getBytesField());
512 }
499 dest.getExtension(proto.jspb.test.CloneExtension.extField). 513 dest.getExtension(proto.jspb.test.CloneExtension.extField).
500 setExt('new value'); 514 setExt('new value');
501 assertNotEquals( 515 assertNotEquals(
502 dest.getExtension(proto.jspb.test.CloneExtension.extField).getExt(), 516 dest.getExtension(proto.jspb.test.CloneExtension.extField).getExt(),
503 original.getExtension( 517 original.getExtension(
504 proto.jspb.test.CloneExtension.extField).getExt()); 518 proto.jspb.test.CloneExtension.extField).getExt());
505 }); 519 });
506 520
507 it('testCopyInto_notSameType', function() { 521 it('testCopyInto_notSameType', function() {
508 var a = new proto.jspb.test.TestClone(); 522 var a = new proto.jspb.test.TestClone();
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 var msg = new proto.jspb.test.Empty([1, {4: 'hi'}]); 669 var msg = new proto.jspb.test.Empty([1, {4: 'hi'}]);
656 // The extensionObject is not moved from its original location. 670 // The extensionObject is not moved from its original location.
657 assertArrayEquals([1, {4: 'hi'}], msg.toArray()); 671 assertArrayEquals([1, {4: 'hi'}], msg.toArray());
658 }); 672 });
659 673
660 it('testInitialization_forwardCompatible', function() { 674 it('testInitialization_forwardCompatible', function() {
661 var msg = new proto.jspb.test.Empty([1, 2, 3, {1: 'hi'}]); 675 var msg = new proto.jspb.test.Empty([1, 2, 3, {1: 'hi'}]);
662 assertArrayEquals([1, 2, 3, {1: 'hi'}], msg.toArray()); 676 assertArrayEquals([1, 2, 3, {1: 'hi'}], msg.toArray());
663 }); 677 });
664 678
665 it('testExtendedMessageEnsureObject', function() { 679 it('testExtendedMessageEnsureObject',
666 var data = new proto.jspb.test.HasExtensions(['str1', 680 /** @suppress {visibility} */ function() {
667 {'a_key': 'an_object'}]); 681 var data =
668 assertEquals('an_object', data.extensionObject_['a_key']); 682 new proto.jspb.test.HasExtensions(['str1', {'a_key': 'an_object'}]);
669 }); 683 assertEquals('an_object', data.extensionObject_['a_key']);
684 });
670 685
671 it('testToObject_hasExtensionField', function() { 686 it('testToObject_hasExtensionField', function() {
672 var data = new proto.jspb.test.HasExtensions(['str1', {100: ['ext1']}]); 687 var data = new proto.jspb.test.HasExtensions(['str1', {100: ['ext1']}]);
673 var obj = data.toObject(); 688 var obj = data.toObject();
674 assertEquals('str1', obj.str1); 689 assertEquals('str1', obj.str1);
675 assertEquals('ext1', obj.extField.ext1); 690 assertEquals('ext1', obj.extField.ext1);
676 }); 691 });
677 692
678 it('testGetExtension', function() { 693 it('testGetExtension', function() {
679 var data = new proto.jspb.test.HasExtensions(['str1', {100: ['ext1']}]); 694 var data = new proto.jspb.test.HasExtensions(['str1', {100: ['ext1']}]);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 assertEquals( 761 assertEquals(
747 proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase. 762 proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase.
748 RECURSIVE_ONEOF_NOT_SET, 763 RECURSIVE_ONEOF_NOT_SET,
749 message.getRecursiveOneofCase()); 764 message.getRecursiveOneofCase());
750 }); 765 });
751 766
752 it('testInitializeMessageWithSingleValueSetInOneof', function() { 767 it('testInitializeMessageWithSingleValueSetInOneof', function() {
753 var message = new proto.jspb.test.TestMessageWithOneof([,, 'x']); 768 var message = new proto.jspb.test.TestMessageWithOneof([,, 'x']);
754 769
755 assertEquals('x', message.getPone()); 770 assertEquals('x', message.getPone());
756 assertUndefined(message.getPthree()); 771 assertEquals('', message.getPthree());
757 assertEquals( 772 assertEquals(
758 proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PONE, 773 proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PONE,
759 message.getPartialOneofCase()); 774 message.getPartialOneofCase());
760 }); 775 });
761 776
762 it('testKeepsLastWireValueSetInUnion_multipleValues', function() { 777 it('testKeepsLastWireValueSetInUnion_multipleValues', function() {
763 var message = new proto.jspb.test.TestMessageWithOneof([,, 'x',, 'y']); 778 var message = new proto.jspb.test.TestMessageWithOneof([,, 'x',, 'y']);
764 779
765 assertUndefined('x', message.getPone()); 780 assertEquals('', message.getPone());
766 assertEquals('y', message.getPthree()); 781 assertEquals('y', message.getPthree());
767 assertEquals( 782 assertEquals(
768 proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PTHREE, 783 proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PTHREE,
769 message.getPartialOneofCase()); 784 message.getPartialOneofCase());
770 }); 785 });
771 786
772 it('testSettingOneofFieldClearsOthers', function() { 787 it('testSettingOneofFieldClearsOthers', function() {
773 var message = new proto.jspb.test.TestMessageWithOneof; 788 var message = new proto.jspb.test.TestMessageWithOneof;
774 assertUndefined(message.getPone()); 789 assertEquals('', message.getPone());
775 assertUndefined(message.getPthree()); 790 assertEquals('', message.getPthree());
791 assertFalse(message.hasPone());
792 assertFalse(message.hasPthree());
776 793
777 message.setPone('hi'); 794 message.setPone('hi');
778 assertEquals('hi', message.getPone()); 795 assertEquals('hi', message.getPone());
779 assertUndefined(message.getPthree()); 796 assertEquals('', message.getPthree());
797 assertTrue(message.hasPone());
798 assertFalse(message.hasPthree());
780 799
781 message.setPthree('bye'); 800 message.setPthree('bye');
782 assertUndefined(message.getPone()); 801 assertEquals('', message.getPone());
783 assertEquals('bye', message.getPthree()); 802 assertEquals('bye', message.getPthree());
803 assertFalse(message.hasPone());
804 assertTrue(message.hasPthree());
784 }); 805 });
785 806
786 it('testSettingOneofFieldDoesNotClearFieldsFromOtherUnions', function() { 807 it('testSettingOneofFieldDoesNotClearFieldsFromOtherUnions', function() {
787 var other = new proto.jspb.test.TestMessageWithOneof; 808 var other = new proto.jspb.test.TestMessageWithOneof;
788 var message = new proto.jspb.test.TestMessageWithOneof; 809 var message = new proto.jspb.test.TestMessageWithOneof;
789 assertUndefined(message.getPone()); 810 assertEquals('', message.getPone());
790 assertUndefined(message.getPthree()); 811 assertEquals('', message.getPthree());
791 assertUndefined(message.getRone()); 812 assertUndefined(message.getRone());
813 assertFalse(message.hasPone());
814 assertFalse(message.hasPthree());
792 815
793 message.setPone('hi'); 816 message.setPone('hi');
794 message.setRone(other); 817 message.setRone(other);
795 assertEquals('hi', message.getPone()); 818 assertEquals('hi', message.getPone());
796 assertUndefined(message.getPthree()); 819 assertEquals('', message.getPthree());
797 assertEquals(other, message.getRone()); 820 assertEquals(other, message.getRone());
821 assertTrue(message.hasPone());
822 assertFalse(message.hasPthree());
798 823
799 message.setPthree('bye'); 824 message.setPthree('bye');
800 assertUndefined(message.getPone()); 825 assertEquals('', message.getPone());
801 assertEquals('bye', message.getPthree()); 826 assertEquals('bye', message.getPthree());
802 assertEquals(other, message.getRone()); 827 assertEquals(other, message.getRone());
828 assertFalse(message.hasPone());
829 assertTrue(message.hasPthree());
803 }); 830 });
804 831
805 it('testUnsetsOneofCaseWhenFieldIsCleared', function() { 832 it('testUnsetsOneofCaseWhenFieldIsCleared', function() {
806 var message = new proto.jspb.test.TestMessageWithOneof; 833 var message = new proto.jspb.test.TestMessageWithOneof;
807 assertEquals( 834 assertEquals(
808 proto.jspb.test.TestMessageWithOneof.PartialOneofCase. 835 proto.jspb.test.TestMessageWithOneof.PartialOneofCase.
809 PARTIAL_ONEOF_NOT_SET, 836 PARTIAL_ONEOF_NOT_SET,
810 message.getPartialOneofCase()); 837 message.getPartialOneofCase());
811 838
812 message.setPone('hi'); 839 message.setPone('hi');
813 assertEquals( 840 assertEquals(
814 proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PONE, 841 proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PONE,
815 message.getPartialOneofCase()); 842 message.getPartialOneofCase());
816 843
817 message.clearPone(); 844 message.clearPone();
818 assertEquals( 845 assertEquals(
819 proto.jspb.test.TestMessageWithOneof.PartialOneofCase. 846 proto.jspb.test.TestMessageWithOneof.PartialOneofCase.
820 PARTIAL_ONEOF_NOT_SET, 847 PARTIAL_ONEOF_NOT_SET,
821 message.getPartialOneofCase()); 848 message.getPartialOneofCase());
822 }); 849 });
823 850
824 it('testMessageWithDefaultOneofValues', function() { 851 it('testMessageWithDefaultOneofValues', function() {
825 var message = new proto.jspb.test.TestMessageWithOneof; 852 var message = new proto.jspb.test.TestMessageWithOneof;
826 assertEquals(1234, message.getAone()); 853 assertEquals(1234, message.getAone());
827 assertUndefined(message.getAtwo()); 854 assertEquals(0, message.getAtwo());
828 assertEquals( 855 assertEquals(
829 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase 856 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase
830 .DEFAULT_ONEOF_A_NOT_SET, 857 .DEFAULT_ONEOF_A_NOT_SET,
831 message.getDefaultOneofACase()); 858 message.getDefaultOneofACase());
832 859
833 message.setAone(567); 860 message.setAone(567);
834 assertEquals(567, message.getAone()); 861 assertEquals(567, message.getAone());
835 assertUndefined(message.getAtwo()); 862 assertEquals(0, message.getAtwo());
836 assertEquals( 863 assertEquals(
837 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.AONE, 864 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.AONE,
838 message.getDefaultOneofACase()); 865 message.getDefaultOneofACase());
839 866
840 message.setAtwo(890); 867 message.setAtwo(890);
841 assertEquals(1234, message.getAone()); 868 assertEquals(1234, message.getAone());
842 assertEquals(890, message.getAtwo()); 869 assertEquals(890, message.getAtwo());
843 assertEquals( 870 assertEquals(
844 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.ATWO, 871 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.ATWO,
845 message.getDefaultOneofACase()); 872 message.getDefaultOneofACase());
846 873
847 message.clearAtwo(); 874 message.clearAtwo();
848 assertEquals(1234, message.getAone()); 875 assertEquals(1234, message.getAone());
849 assertUndefined(message.getAtwo()); 876 assertEquals(0, message.getAtwo());
850 assertEquals( 877 assertEquals(
851 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase 878 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase
852 .DEFAULT_ONEOF_A_NOT_SET, 879 .DEFAULT_ONEOF_A_NOT_SET,
853 message.getDefaultOneofACase()); 880 message.getDefaultOneofACase());
854 }); 881 });
855 882
856 it('testMessageWithDefaultOneofValues_defaultNotOnFirstField', function() { 883 it('testMessageWithDefaultOneofValues_defaultNotOnFirstField', function() {
857 var message = new proto.jspb.test.TestMessageWithOneof; 884 var message = new proto.jspb.test.TestMessageWithOneof;
858 assertUndefined(message.getBone()); 885 assertEquals(0, message.getBone());
859 assertEquals(1234, message.getBtwo()); 886 assertEquals(1234, message.getBtwo());
887 assertFalse(message.hasBone());
888 assertFalse(message.hasBtwo());
860 assertEquals( 889 assertEquals(
861 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase 890 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase
862 .DEFAULT_ONEOF_B_NOT_SET, 891 .DEFAULT_ONEOF_B_NOT_SET,
863 message.getDefaultOneofBCase()); 892 message.getDefaultOneofBCase());
864 893
865 message.setBone(2); 894 message.setBone(2);
866 assertEquals(2, message.getBone()); 895 assertEquals(2, message.getBone());
867 assertEquals(1234, message.getBtwo()); 896 assertEquals(1234, message.getBtwo());
897 assertTrue(message.hasBone());
898 assertFalse(message.hasBtwo());
868 assertEquals( 899 assertEquals(
869 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BONE, 900 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BONE,
870 message.getDefaultOneofBCase()); 901 message.getDefaultOneofBCase());
871 902
872 message.setBtwo(3); 903 message.setBtwo(3);
873 assertUndefined(message.getBone()); 904 assertEquals(0, message.getBone());
905 assertFalse(message.hasBone());
906 assertTrue(message.hasBtwo());
874 assertEquals(3, message.getBtwo()); 907 assertEquals(3, message.getBtwo());
875 assertEquals( 908 assertEquals(
876 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BTWO, 909 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BTWO,
877 message.getDefaultOneofBCase()); 910 message.getDefaultOneofBCase());
878 911
879 message.clearBtwo(); 912 message.clearBtwo();
880 assertUndefined(message.getBone()); 913 assertEquals(0, message.getBone());
914 assertFalse(message.hasBone());
915 assertFalse(message.hasBtwo());
881 assertEquals(1234, message.getBtwo()); 916 assertEquals(1234, message.getBtwo());
882 assertEquals( 917 assertEquals(
883 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase 918 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase
884 .DEFAULT_ONEOF_B_NOT_SET, 919 .DEFAULT_ONEOF_B_NOT_SET,
885 message.getDefaultOneofBCase()); 920 message.getDefaultOneofBCase());
886 }); 921 });
887 922
888 it('testInitializeMessageWithOneofDefaults', function() { 923 it('testInitializeMessageWithOneofDefaults', function() {
889 var message = 924 var message =
890 new proto.jspb.test.TestMessageWithOneof(new Array(9).concat(567)); 925 new proto.jspb.test.TestMessageWithOneof(new Array(9).concat(567));
891 assertEquals(567, message.getAone()); 926 assertEquals(567, message.getAone());
892 assertUndefined(message.getAtwo()); 927 assertEquals(0, message.getAtwo());
893 assertEquals( 928 assertEquals(
894 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.AONE, 929 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.AONE,
895 message.getDefaultOneofACase()); 930 message.getDefaultOneofACase());
896 931
897 message = 932 message =
898 new proto.jspb.test.TestMessageWithOneof(new Array(10).concat(890)); 933 new proto.jspb.test.TestMessageWithOneof(new Array(10).concat(890));
899 assertEquals(1234, message.getAone()); 934 assertEquals(1234, message.getAone());
900 assertEquals(890, message.getAtwo()); 935 assertEquals(890, message.getAtwo());
901 assertEquals( 936 assertEquals(
902 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.ATWO, 937 proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.ATWO,
(...skipping 15 matching lines...) Expand all
918 message = 953 message =
919 new proto.jspb.test.TestMessageWithOneof(new Array(11).concat(567)); 954 new proto.jspb.test.TestMessageWithOneof(new Array(11).concat(567));
920 assertEquals(567, message.getBone()); 955 assertEquals(567, message.getBone());
921 assertEquals(1234, message.getBtwo()); 956 assertEquals(1234, message.getBtwo());
922 assertEquals( 957 assertEquals(
923 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BONE, 958 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BONE,
924 message.getDefaultOneofBCase()); 959 message.getDefaultOneofBCase());
925 960
926 message = 961 message =
927 new proto.jspb.test.TestMessageWithOneof(new Array(12).concat(890)); 962 new proto.jspb.test.TestMessageWithOneof(new Array(12).concat(890));
928 assertUndefined(message.getBone()); 963 assertEquals(0, message.getBone());
929 assertEquals(890, message.getBtwo()); 964 assertEquals(890, message.getBtwo());
930 assertEquals( 965 assertEquals(
931 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BTWO, 966 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BTWO,
932 message.getDefaultOneofBCase()); 967 message.getDefaultOneofBCase());
933 968
934 message = new proto.jspb.test.TestMessageWithOneof( 969 message = new proto.jspb.test.TestMessageWithOneof(
935 new Array(11).concat(567, 890)); 970 new Array(11).concat(567, 890));
936 assertUndefined(message.getBone()); 971 assertEquals(0, message.getBone());
937 assertEquals(890, message.getBtwo()); 972 assertEquals(890, message.getBtwo());
938 assertEquals( 973 assertEquals(
939 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BTWO, 974 proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BTWO,
940 message.getDefaultOneofBCase()); 975 message.getDefaultOneofBCase());
941 }); 976 });
942 977
943 it('testOneofContainingAnotherMessage', function() { 978 it('testOneofContainingAnotherMessage', function() {
944 var message = new proto.jspb.test.TestMessageWithOneof; 979 var message = new proto.jspb.test.TestMessageWithOneof;
945 assertEquals( 980 assertEquals(
946 proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase. 981 proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase.
947 RECURSIVE_ONEOF_NOT_SET, 982 RECURSIVE_ONEOF_NOT_SET,
948 message.getRecursiveOneofCase()); 983 message.getRecursiveOneofCase());
949 984
950 var other = new proto.jspb.test.TestMessageWithOneof; 985 var other = new proto.jspb.test.TestMessageWithOneof;
951 message.setRone(other); 986 message.setRone(other);
952 assertEquals(other, message.getRone()); 987 assertEquals(other, message.getRone());
953 assertUndefined(message.getRtwo()); 988 assertEquals('', message.getRtwo());
954 assertEquals( 989 assertEquals(
955 proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase.RONE, 990 proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase.RONE,
956 message.getRecursiveOneofCase()); 991 message.getRecursiveOneofCase());
957 992
958 message.setRtwo('hi'); 993 message.setRtwo('hi');
959 assertUndefined(message.getRone()); 994 assertUndefined(message.getRone());
960 assertEquals('hi', message.getRtwo()); 995 assertEquals('hi', message.getRtwo());
961 assertEquals( 996 assertEquals(
962 proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase.RTWO, 997 proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase.RTWO,
963 message.getRecursiveOneofCase()); 998 message.getRecursiveOneofCase());
964 }); 999 });
965 1000
966 it('testQueryingOneofCaseEnsuresOnlyOneFieldIsSetInUnderlyingArray', 1001 it('testQueryingOneofCaseEnsuresOnlyOneFieldIsSetInUnderlyingArray',
967 function() { 1002 function() {
968 var message = new proto.jspb.test.TestMessageWithOneof; 1003 var message = new proto.jspb.test.TestMessageWithOneof;
969 message.setPone('x'); 1004 message.setPone('x');
970 assertEquals('x', message.getPone()); 1005 assertEquals('x', message.getPone());
971 assertUndefined(message.getPthree()); 1006 assertEquals('', message.getPthree());
972 assertEquals( 1007 assertEquals(
973 proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PONE, 1008 proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PONE,
974 message.getPartialOneofCase()); 1009 message.getPartialOneofCase());
975 1010
976 var array = message.toArray(); 1011 var array = message.toArray();
977 assertEquals('x', array[2]); 1012 assertEquals('x', array[2]);
978 assertUndefined(array[4]); 1013 assertUndefined(array[4]);
979 array[4] = 'y'; 1014 array[4] = 'y';
980 1015
981 assertEquals( 1016 assertEquals(
(...skipping 18 matching lines...) Expand all
1000 assertNan(message.getRepeatedFloatFieldList()[0]); 1035 assertNan(message.getRepeatedFloatFieldList()[0]);
1001 assertNan(message.getRepeatedFloatFieldList()[1]); 1036 assertNan(message.getRepeatedFloatFieldList()[1]);
1002 assertNan(message.getDefaultFloatField()); 1037 assertNan(message.getDefaultFloatField());
1003 assertNan(message.getOptionalDoubleField()); 1038 assertNan(message.getOptionalDoubleField());
1004 assertNan(message.getRequiredDoubleField()); 1039 assertNan(message.getRequiredDoubleField());
1005 assertNan(message.getRepeatedDoubleFieldList()[0]); 1040 assertNan(message.getRepeatedDoubleFieldList()[0]);
1006 assertNan(message.getRepeatedDoubleFieldList()[1]); 1041 assertNan(message.getRepeatedDoubleFieldList()[1]);
1007 assertNan(message.getDefaultDoubleField()); 1042 assertNan(message.getDefaultDoubleField());
1008 }); 1043 });
1009 1044
1045 // Verify that we can successfully use a field referring to a nested message
1046 // from a different .proto file.
1047 it('testForeignNestedMessage', function() {
1048 var msg = new proto.jspb.test.ForeignNestedFieldMessage();
1049 var nested = new proto.jspb.test.Deeply.Nested.Message();
1050 nested.setCount(5);
1051 msg.setDeeplyNestedMessage(nested);
1052 assertEquals(5, msg.getDeeplyNestedMessage().getCount());
1053
1054 // After a serialization-deserialization round trip we should get back the
1055 // same data we started with.
1056 var serialized = msg.serializeBinary();
1057 var deserialized =
1058 proto.jspb.test.ForeignNestedFieldMessage.deserializeBinary(serialized);
1059 assertEquals(5, deserialized.getDeeplyNestedMessage().getCount());
1060 });
1061
1010 }); 1062 });
OLDNEW
« no previous file with comments | « third_party/protobuf/js/message.js ('k') | third_party/protobuf/js/package.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698