diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/proto2/message_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/proto2/message_test.html | 460 |
1 files changed, 0 insertions, 460 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/proto2/message_test.html b/contexts/data/lib/closure-library/closure/goog/proto2/message_test.html deleted file mode 100644 index e941470..0000000 --- a/contexts/data/lib/closure-library/closure/goog/proto2/message_test.html +++ /dev/null @@ -1,460 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2010 The Closure Library Authors. All Rights Reserved. - -Use of this source code is governed by the Apache License, Version 2.0. -See the COPYING file for details. ---> -<!-- ---> -<head> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> -<title>Closure Unit Tests - goog.proto2 - message.js</title> -<script src="../base.js"></script> -<script> - goog.require('goog.proto2.Message'); - goog.require('goog.testing.jsunit'); - goog.require('proto2.TestAllTypes'); - goog.require('proto2.TestAllTypes.NestedEnum'); - goog.require('proto2.TestAllTypes.NestedMessage'); - goog.require('proto2.TestAllTypes.OptionalGroup'); - goog.require('proto2.TestAllTypes.RepeatedGroup'); -</script> -</head> -<body> -<script> - -function testEqualsWithEmptyMessages() { - var message1 = new proto2.TestAllTypes(); - assertTrue('same message object', message1.equals(message1)); - assertFalse('comparison with null', message1.equals(null)); - assertFalse('comparison with undefined', message1.equals(undefined)); - - var message2 = new proto2.TestAllTypes(); - assertTrue('two empty message objects', message1.equals(message2)); - - var message3 = new proto2.TestAllTypes.NestedMessage() - assertFalse('different message types', message3.equals(message1)); -} - -function testEqualsWithSingleInt32Field() { - var message1 = new proto2.TestAllTypes(); - var message2 = new proto2.TestAllTypes(); - - message1.setOptionalInt32(1); - assertFalse('message1 has an extra int32 field', message1.equals(message2)); - - message2.setOptionalInt32(1); - assertTrue('same int32 field in both messages', message1.equals(message2)); - - message2.setOptionalInt32(2); - assertFalse('different int32 field', message1.equals(message2)); - - message1.clearOptionalInt32(); - assertFalse('message2 has an extra int32 field', message1.equals(message2)); -} - -function testEqualsWithRepeatedInt32Fields() { - var message1 = new proto2.TestAllTypes(); - var message2 = new proto2.TestAllTypes(); - - message1.addRepeatedInt32(0); - message2.addRepeatedInt32(0); - assertTrue('equal repeated int32 field', message1.equals(message2)); - - message1.addRepeatedInt32(1); - assertFalse('message1 has more items', message1.equals(message2)); - - message2.addRepeatedInt32(1); - message2.addRepeatedInt32(1); - assertFalse('message2 has more items', message1.equals(message2)); - - message1.addRepeatedInt32(2); - assertFalse('different int32 items', message1.equals(message2)); -} - -function testEqualsWithDefaultValue() { - var message1 = new proto2.TestAllTypes(); - var message2 = new proto2.TestAllTypes(); - message1.setOptionalInt64('1'); - - assertEquals('message1.getOptionalInt64OrDefault should return 1', - '1', message1.getOptionalInt64OrDefault()); - assertEquals('message2.getOptionalInt64OrDefault should return 1 too', - '1', message2.getOptionalInt64OrDefault()); - assertTrue('message1.hasOptionalInt64() should be true', - message1.hasOptionalInt64()); - assertFalse('message2.hasOptionalInt64() should be false', - message2.hasOptionalInt64()); - assertFalse('as a result they are not equal', message1.equals(message2)); -} - -function testEqualsWithOptionalGroup() { - var message1 = new proto2.TestAllTypes(); - var message2 = new proto2.TestAllTypes(); - var group1 = new proto2.TestAllTypes.OptionalGroup(); - var group2 = new proto2.TestAllTypes.OptionalGroup(); - - message1.setOptionalgroup(group1); - assertFalse('only message1 has OptionalGroup field', - message1.equals(message2)); - - message2.setOptionalgroup(group2); - assertTrue('both messages have OptionalGroup field', - message1.equals(message2)); - - group1.setA(0); - group2.setA(1); - assertFalse('different value in the optional group', - message1.equals(message2)); - - message1.clearOptionalgroup(); - assertFalse('only message2 has OptionalGroup field', - message1.equals(message2)); -} - -function testEqualsWithRepeatedGroup() { - var message1 = new proto2.TestAllTypes(); - var message2 = new proto2.TestAllTypes(); - var group1 = new proto2.TestAllTypes.RepeatedGroup(); - var group2 = new proto2.TestAllTypes.RepeatedGroup(); - - message1.addRepeatedgroup(group1); - assertFalse('message1 has more RepeatedGroups', - message1.equals(message2)); - - message2.addRepeatedgroup(group2); - assertTrue('both messages have one RepeatedGroup', - message1.equals(message2)); - - group1.addA(1); - assertFalse('message1 has more int32s in RepeatedGroup', - message1.equals(message2)); - - group2.addA(1); - assertTrue('both messages have one int32 in RepeatedGroup', - message1.equals(message2)); - - group1.addA(1); - group2.addA(2); - assertFalse('the messages have different int32s in RepeatedGroup', - message1.equals(message2)); -} - -function testEqualsWithNestedMessage() { - var message1 = new proto2.TestAllTypes(); - var message2 = new proto2.TestAllTypes(); - var nested1 = new proto2.TestAllTypes.NestedMessage(); - var nested2 = new proto2.TestAllTypes.NestedMessage(); - - message1.setOptionalNestedMessage(nested1); - assertFalse('only message1 has nested message', message1.equals(message2)); - - message2.setOptionalNestedMessage(nested2); - assertTrue('both messages have nested message', message1.equals(message2)); - - nested1.setB(1); - assertFalse('different int32 in the nested messages', - message1.equals(message2)); - - message1.clearOptionalNestedMessage(); - assertFalse('only message2 has nested message', message1.equals(message2)); -} - -function testEqualsWithNestedEnum() { - var message1 = new proto2.TestAllTypes(); - var message2 = new proto2.TestAllTypes(); - - message1.setOptionalNestedEnum(proto2.TestAllTypes.NestedEnum.FOO); - assertFalse('only message1 has nested enum', message1.equals(message2)); - - message2.setOptionalNestedEnum(proto2.TestAllTypes.NestedEnum.FOO); - assertTrue('both messages have nested enum', message1.equals(message2)); - - message2.setOptionalNestedEnum(proto2.TestAllTypes.NestedEnum.BAR); - assertFalse('different enum value', message1.equals(message2)); - - message1.clearOptionalNestedEnum(); - assertFalse('only message2 has nested enum', message1.equals(message2)); -} - -function testEqualsWithUnknownFields() { - var message1 = new proto2.TestAllTypes(); - var message2 = new proto2.TestAllTypes(); - message1.setUnknown(999, 'foo'); - message1.setUnknown(999, 'bar'); - assertTrue('unknown fields are ignored', message1.equals(message2)); -} - -function testCloneEmptyMessage() { - var message = new proto2.TestAllTypes(); - var clone = message.clone(); - assertObjectEquals('cloned empty message', message, clone); -} - -function testCloneMessageWithSeveralFields() { - var message = new proto2.TestAllTypes(); - message.setOptionalInt32(1); - message.addRepeatedInt32(2); - var optionalGroup = new proto2.TestAllTypes.OptionalGroup(); - optionalGroup.setA(3); - message.setOptionalgroup(optionalGroup); - var repeatedGroup = new proto2.TestAllTypes.RepeatedGroup(); - repeatedGroup.addA(4); - message.addRepeatedgroup(repeatedGroup); - var nestedMessage = new proto2.TestAllTypes.NestedMessage(); - nestedMessage.setB(5); - message.setOptionalNestedMessage(nestedMessage); - message.setOptionalNestedEnum(proto2.TestAllTypes.NestedEnum.FOO); - message.setUnknown(999, 'foo'); - - var clone = message.clone(); - assertNotEquals('different OptionalGroup instance', - message.getOptionalgroup(), clone.getOptionalgroup()); - assertNotEquals('different RepeatedGroup array instance', - message.repeatedgroupArray(), clone.repeatedgroupArray()); - assertNotEquals('different RepeatedGroup array item instance', - message.getRepeatedgroup(0), clone.getRepeatedgroup(0)); - assertNotEquals('different NestedMessage instance', - message.getOptionalNestedMessage(), clone.getOptionalNestedMessage()); -} - -function testCloneWithUnknownFields() { - var message = new proto2.TestAllTypes(); - message.setUnknown(999, 'foo'); - - var clone = message.clone(); - assertTrue('clone.equals(message) returns true', clone.equals(message)); - clone.forEachUnknown(function(tag, value) { - fail('the unknown fields should not have been cloned'); - }); - - clone.setUnknown(999, 'foo'); - assertObjectEquals('the original and the cloned message are equal except ' + - 'for the unknown fields', message, clone); -} - -function testCopyFromFlatMessage() { - // Recursive copying is implicitly tested in the testClone... methods. - - var source = new proto2.TestAllTypes(); - source.setOptionalInt32(32); - source.setOptionalInt64('64'); - source.addRepeatedInt32(32); - - var target = new proto2.TestAllTypes(); - target.setOptionalInt32(33); - target.setOptionalUint32(33); - target.addRepeatedInt32(33); - - target.copyFrom(source); - assertObjectEquals('source and target are equal after copyFrom', source, - target); - - target.copyFrom(source); - assertObjectEquals('second copyFrom call has no effect', source, target); - - source.setUnknown(999, 'foo'); - target.setUnknown(999, 'bar'); - target.copyFrom(source); - assertThrows('unknown fields are not copied', - goog.partial(assertObjectEquals, source, target)); -} - -function testMergeFromEmptyMessage() { - var source = new proto2.TestAllTypes(); - source.setOptionalInt32(32); - source.setOptionalInt64('64'); - var nested = new proto2.TestAllTypes.NestedMessage(); - nested.setB(66); - source.setOptionalNestedMessage(nested); - - var target = new proto2.TestAllTypes(); - target.mergeFrom(source); - assertObjectEquals('source and target are equal after mergeFrom', source, - target); -} - -function testMergeFromFlatMessage() { - var source = new proto2.TestAllTypes(); - source.setOptionalInt32(32); - source.setOptionalString('foo'); - source.setOptionalNestedEnum(proto2.TestAllTypes.NestedEnum.FOO); - - var target = new proto2.TestAllTypes(); - target.setOptionalInt64('64'); - target.setOptionalString('bar'); - target.setOptionalNestedEnum(proto2.TestAllTypes.NestedEnum.BAR); - - var expected = new proto2.TestAllTypes(); - expected.setOptionalInt32(32); - expected.setOptionalInt64('64'); - expected.setOptionalString('foo'); - expected.setOptionalNestedEnum(proto2.TestAllTypes.NestedEnum.FOO); - - target.mergeFrom(source); - assertObjectEquals('expected and target are equal after mergeFrom', expected, - target); -} - -function testMergeFromNestedMessage() { - var source = new proto2.TestAllTypes(); - var nested = new proto2.TestAllTypes.NestedMessage(); - nested.setB(66); - source.setOptionalNestedMessage(nested); - - var target = new proto2.TestAllTypes(); - nested = new proto2.TestAllTypes.NestedMessage(); - nested.setC(77); - target.setOptionalNestedMessage(nested); - - var expected = new proto2.TestAllTypes(); - nested = new proto2.TestAllTypes.NestedMessage(); - nested.setB(66); - nested.setC(77); - expected.setOptionalNestedMessage(nested); - - target.mergeFrom(source); - assertObjectEquals('expected and target are equal after mergeFrom', expected, - target); -} - -function testMergeFromRepeatedMessage() { - var source = new proto2.TestAllTypes(); - source.addRepeatedInt32(2); - source.addRepeatedInt32(3); - - var target = new proto2.TestAllTypes(); - target.addRepeatedInt32(1); - - target.mergeFrom(source); - assertArrayEquals('repeated_int32 array has elements from both messages', - [1, 2, 3], target.repeatedInt32Array()); -} - -function testInitDefaultsWithEmptyMessage() { - var message = new proto2.TestAllTypes(); - message.initDefaults(false); - - assertFalse('int32 field is not set', message.hasOptionalInt32()); - assertFalse('int64 [default=1] field is not set', message.hasOptionalInt64()); - assertTrue('optional group field is set', message.hasOptionalgroup()); - assertFalse('int32 inside the group is not set', - message.getOptionalgroup().hasA()); - assertObjectEquals('value of the optional group', - new proto2.TestAllTypes.OptionalGroup(), message.getOptionalgroup()); - assertTrue('nested message is set', message.hasOptionalNestedMessage()); - assertObjectEquals('value of the nested message', - new proto2.TestAllTypes.NestedMessage(), - message.getOptionalNestedMessage()); - assertFalse('nested enum is not set', message.hasOptionalNestedEnum()); - assertFalse('repeated int32 is not set', message.hasRepeatedInt32()); - assertFalse('repeated nested message is not set', - message.hasRepeatedNestedMessage()); - - message = new proto2.TestAllTypes(); - message.initDefaults(true); - - assertTrue('int32 field is set', message.hasOptionalInt32()); - assertEquals('value of the int32 field', 0, message.getOptionalInt32()); - assertTrue('int64 [default=1] field is set', message.hasOptionalInt64()); - assertEquals('value of the int64 field', '1', message.getOptionalInt64()); - assertTrue('int32 inside nested message is set', - message.getOptionalNestedMessage().hasB()); - assertEquals('value of the int32 field inside the nested message', 0, - message.getOptionalNestedMessage().getB()); -} - -function testInitDefaultsWithNonEmptyMessage() { - var message = new proto2.TestAllTypes(); - message.setOptionalInt32(32); - message.setOptionalInt64('64'); - message.setOptionalgroup(new proto2.TestAllTypes.OptionalGroup()); - var nested1 = new proto2.TestAllTypes.NestedMessage(); - nested1.setB(66); - message.setOptionalNestedMessage(nested1); - var nested2 = new proto2.TestAllTypes.NestedMessage(); - message.addRepeatedNestedMessage(nested2); - var nested3 = new proto2.TestAllTypes.NestedMessage(); - nested3.setB(66); - message.addRepeatedNestedMessage(nested3); - - message.initDefaults(true); - assertEquals('int32 field is unchanged', 32, message.getOptionalInt32()); - assertEquals('int64 [default=1] field is unchanged', '64', - message.getOptionalInt64()); - assertTrue('bool field is initialized', message.hasOptionalBool()); - assertFalse('value of the bool field', message.getOptionalBool()); - assertTrue('int32 inside the optional group is initialized', - message.getOptionalgroup().hasA()); - assertEquals('value of the int32 inside the optional group', 0, - message.getOptionalgroup().getA()); - assertEquals('int32 inside nested message is unchanged', 66, - message.getOptionalNestedMessage().getB()); - assertTrue('int32 at index 0 of the repeated nested message is initialized', - message.getRepeatedNestedMessage(0).hasB()); - assertEquals('value of int32 at index 0 of the repeated nested message', 0, - message.getRepeatedNestedMessage(0).getB()); - assertEquals('int32 at index 1 of the repeated nested message is unchanged', - 66, message.getRepeatedNestedMessage(1).getB()); -} - -function testInitDefaultsTwice() { - var message = new proto2.TestAllTypes(); - message.initDefaults(false); - var clone = message.clone(); - clone.initDefaults(false); - assertObjectEquals('second call of initDefaults(false) has no effect', - message, clone); - - message = new proto2.TestAllTypes(); - message.initDefaults(true); - clone = message.clone(); - clone.initDefaults(true); - assertObjectEquals('second call of initDefaults(true) has no effect', - message, clone); -} - -function testInitDefaultsThenClone() { - var message = new proto2.TestAllTypes(); - message.initDefaults(true); - assertObjectEquals('message is cloned properly', message, message.clone()); -} - -function testGetAfterSetWithLazyDeserializer() { - // Test makes sure that the lazy deserializer for a field is not - // erroneously called when get$Value is called after set$Value. - var message = new proto2.TestAllTypes(); - - var fakeDeserializer = {}; // stub with no methods defined; fails hard - message.initializeForLazyDeserializer(fakeDeserializer, {} /* data */); - message.setOptionalBool(true); - assertEquals(true, message.getOptionalBool()); -} - -function testHasOnLazyDeserializer() { - // Test that null values for fields are treated as absent by the lazy - // deserializer. - var message = new proto2.TestAllTypes(); - - var fakeDeserializer = {}; // stub with no methods defined; fails hard - message.initializeForLazyDeserializer(fakeDeserializer, - {13: false} /* data */); - assertEquals(true, message.hasOptionalBool()); -} - -function testHasOnLazyDeserializerWithNulls() { - // Test that null values for fields are treated as absent by the lazy - // deserializer. - var message = new proto2.TestAllTypes(); - - var fakeDeserializer = {}; // stub with no methods defined; fails hard - message.initializeForLazyDeserializer(fakeDeserializer, - {13: null} /* data */); - assertEquals(false, message.hasOptionalBool()); -} - -</script> -</body> -</html> |