aboutsummaryrefslogtreecommitdiffhomepage
path: root/js
diff options
context:
space:
mode:
authorGravatar Nikolai Vavilov <vvnicholas@gmail.com>2016-04-24 14:38:16 +0300
committerGravatar Nikolai Vavilov <vvnicholas@gmail.com>2016-07-19 09:39:52 +0300
commit970a4fda1785de0873378bca12e907e3a86e64d2 (patch)
tree24f97655e5536778bf632025c93c6e09bd9e03bb /js
parent77b08afaf80dc9390848fbeb47505da6a9be61be (diff)
Make implicit defaults consistent with explicit defaults
Diffstat (limited to 'js')
-rw-r--r--js/message_test.js83
-rw-r--r--js/proto3_test.js24
2 files changed, 44 insertions, 63 deletions
diff --git a/js/message_test.js b/js/message_test.js
index 11792423..c9eee17d 100644
--- a/js/message_test.js
+++ b/js/message_test.js
@@ -145,11 +145,7 @@ describe('Message test suite', function() {
undefined, undefined, undefined, undefined]);
var result = foo.toObject();
assertObjectEquals({
- aString: undefined,
- anOutOfOrderBool: undefined,
- aNestedMessage: {
- anInt: undefined
- },
+ aNestedMessage: {},
// Note: JsPb converts undefined repeated fields to empty arrays.
aRepeatedMessageList: [],
aRepeatedStringList: []
@@ -184,14 +180,7 @@ describe('Message test suite', function() {
var response = new proto.jspb.test.DefaultValues();
// Test toObject
- var expectedObject = {
- stringField: defaultString,
- boolField: true,
- intField: 11,
- enumField: 13,
- emptyField: '',
- bytesField: 'bW9v'
- };
+ var expectedObject = {};
assertObjectEquals(expectedObject, response.toObject());
@@ -276,9 +265,6 @@ describe('Message test suite', function() {
});
it('testClearFields', function() {
- // We don't set 'proper' defaults, rather, bools, strings,
- // etc, are cleared to undefined or null and take on the Javascript
- // meaning for that value. Repeated fields are set to [] when cleared.
var data = ['str', true, [11], [[22], [33]], ['s1', 's2']];
var foo = new proto.jspb.test.OptionalFields(data);
foo.clearAString();
@@ -286,8 +272,8 @@ describe('Message test suite', function() {
foo.clearANestedMessage();
foo.clearARepeatedMessageList();
foo.clearARepeatedStringList();
- assertUndefined(foo.getAString());
- assertUndefined(foo.getABool());
+ assertEquals('', foo.getAString());
+ assertEquals(false, foo.getABool());
assertUndefined(foo.getANestedMessage());
assertFalse(foo.hasAString());
assertFalse(foo.hasABool());
@@ -310,8 +296,8 @@ describe('Message test suite', function() {
foo.setANestedMessage(null);
foo.setARepeatedMessageList(null);
foo.setARepeatedStringList(null);
- assertNull(foo.getAString());
- assertNull(foo.getABool());
+ assertEquals('', foo.getAString());
+ assertEquals(false, foo.getABool());
assertNull(foo.getANestedMessage());
assertFalse(foo.hasAString());
assertFalse(foo.hasABool());
@@ -328,8 +314,8 @@ describe('Message test suite', function() {
foo.setANestedMessage(undefined);
foo.setARepeatedMessageList(undefined);
foo.setARepeatedStringList(undefined);
- assertUndefined(foo.getAString());
- assertUndefined(foo.getABool());
+ assertEquals('', foo.getAString());
+ assertEquals(false, foo.getABool());
assertUndefined(foo.getANestedMessage());
assertFalse(foo.hasAString());
assertFalse(foo.hasABool());
@@ -346,9 +332,9 @@ describe('Message test suite', function() {
{1000: 'unique'}]);
var diff = /** @type {proto.jspb.test.HasExtensions} */
(jspb.Message.difference(p1, p2));
- assertUndefined(diff.getStr1());
+ assertEquals('', diff.getStr1());
assertEquals('what', diff.getStr2());
- assertUndefined(diff.getStr3());
+ assertEquals('', diff.getStr3());
assertEquals('unique', diff.extensionObject_[1000]);
});
@@ -762,12 +748,7 @@ describe('Message test suite', function() {
assertObjectEquals({id: 'g1', someBoolList: [true, false]},
groups[0].toObject());
assertObjectEquals({
- repeatedGroupList: [{id: 'g1', someBoolList: [true, false]}],
- requiredGroup: {id: undefined},
- optionalGroup: undefined,
- requiredSimple: {aRepeatedStringList: [], aString: undefined},
- optionalSimple: undefined,
- id: undefined
+ repeatedGroupList: [{id: 'g1', someBoolList: [true, false]}]
}, group.toObject());
var group1 = new proto.jspb.test.TestGroup1();
group1.setGroup(someGroup);
@@ -806,7 +787,7 @@ describe('Message test suite', function() {
var message = new proto.jspb.test.TestMessageWithOneof([,, 'x']);
assertEquals('x', message.getPone());
- assertUndefined(message.getPthree());
+ assertEquals('', message.getPthree());
assertEquals(
proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PONE,
message.getPartialOneofCase());
@@ -815,7 +796,7 @@ describe('Message test suite', function() {
it('testKeepsLastWireValueSetInUnion_multipleValues', function() {
var message = new proto.jspb.test.TestMessageWithOneof([,, 'x',, 'y']);
- assertUndefined('x', message.getPone());
+ assertEquals('', message.getPone());
assertEquals('y', message.getPthree());
assertEquals(
proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PTHREE,
@@ -824,19 +805,19 @@ describe('Message test suite', function() {
it('testSettingOneofFieldClearsOthers', function() {
var message = new proto.jspb.test.TestMessageWithOneof;
- assertUndefined(message.getPone());
- assertUndefined(message.getPthree());
+ assertEquals('', message.getPone());
+ assertEquals('', message.getPthree());
assertFalse(message.hasPone());
assertFalse(message.hasPthree());
message.setPone('hi');
assertEquals('hi', message.getPone());
- assertUndefined(message.getPthree());
+ assertEquals('', message.getPthree());
assertTrue(message.hasPone());
assertFalse(message.hasPthree());
message.setPthree('bye');
- assertUndefined(message.getPone());
+ assertEquals('', message.getPone());
assertEquals('bye', message.getPthree());
assertFalse(message.hasPone());
assertTrue(message.hasPthree());
@@ -845,8 +826,8 @@ describe('Message test suite', function() {
it('testSettingOneofFieldDoesNotClearFieldsFromOtherUnions', function() {
var other = new proto.jspb.test.TestMessageWithOneof;
var message = new proto.jspb.test.TestMessageWithOneof;
- assertUndefined(message.getPone());
- assertUndefined(message.getPthree());
+ assertEquals('', message.getPone());
+ assertEquals('', message.getPthree());
assertUndefined(message.getRone());
assertFalse(message.hasPone());
assertFalse(message.hasPthree());
@@ -854,13 +835,13 @@ describe('Message test suite', function() {
message.setPone('hi');
message.setRone(other);
assertEquals('hi', message.getPone());
- assertUndefined(message.getPthree());
+ assertEquals('', message.getPthree());
assertEquals(other, message.getRone());
assertTrue(message.hasPone());
assertFalse(message.hasPthree());
message.setPthree('bye');
- assertUndefined(message.getPone());
+ assertEquals('', message.getPone());
assertEquals('bye', message.getPthree());
assertEquals(other, message.getRone());
assertFalse(message.hasPone());
@@ -889,7 +870,7 @@ describe('Message test suite', function() {
it('testMessageWithDefaultOneofValues', function() {
var message = new proto.jspb.test.TestMessageWithOneof;
assertEquals(1234, message.getAone());
- assertUndefined(message.getAtwo());
+ assertEquals(0, message.getAtwo());
assertEquals(
proto.jspb.test.TestMessageWithOneof.DefaultOneofACase
.DEFAULT_ONEOF_A_NOT_SET,
@@ -897,7 +878,7 @@ describe('Message test suite', function() {
message.setAone(567);
assertEquals(567, message.getAone());
- assertUndefined(message.getAtwo());
+ assertEquals(0, message.getAtwo());
assertEquals(
proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.AONE,
message.getDefaultOneofACase());
@@ -911,7 +892,7 @@ describe('Message test suite', function() {
message.clearAtwo();
assertEquals(1234, message.getAone());
- assertUndefined(message.getAtwo());
+ assertEquals(0, message.getAtwo());
assertEquals(
proto.jspb.test.TestMessageWithOneof.DefaultOneofACase
.DEFAULT_ONEOF_A_NOT_SET,
@@ -920,7 +901,7 @@ describe('Message test suite', function() {
it('testMessageWithDefaultOneofValues_defaultNotOnFirstField', function() {
var message = new proto.jspb.test.TestMessageWithOneof;
- assertUndefined(message.getBone());
+ assertEquals(0, message.getBone());
assertEquals(1234, message.getBtwo());
assertFalse(message.hasBone());
assertFalse(message.hasBtwo());
@@ -939,7 +920,7 @@ describe('Message test suite', function() {
message.getDefaultOneofBCase());
message.setBtwo(3);
- assertUndefined(message.getBone());
+ assertEquals(0, message.getBone());
assertFalse(message.hasBone());
assertTrue(message.hasBtwo());
assertEquals(3, message.getBtwo());
@@ -948,7 +929,7 @@ describe('Message test suite', function() {
message.getDefaultOneofBCase());
message.clearBtwo();
- assertUndefined(message.getBone());
+ assertEquals(0, message.getBone());
assertFalse(message.hasBone());
assertFalse(message.hasBtwo());
assertEquals(1234, message.getBtwo());
@@ -962,7 +943,7 @@ describe('Message test suite', function() {
var message =
new proto.jspb.test.TestMessageWithOneof(new Array(9).concat(567));
assertEquals(567, message.getAone());
- assertUndefined(message.getAtwo());
+ assertEquals(0, message.getAtwo());
assertEquals(
proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.AONE,
message.getDefaultOneofACase());
@@ -998,7 +979,7 @@ describe('Message test suite', function() {
message =
new proto.jspb.test.TestMessageWithOneof(new Array(12).concat(890));
- assertUndefined(message.getBone());
+ assertEquals(0, message.getBone());
assertEquals(890, message.getBtwo());
assertEquals(
proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BTWO,
@@ -1006,7 +987,7 @@ describe('Message test suite', function() {
message = new proto.jspb.test.TestMessageWithOneof(
new Array(11).concat(567, 890));
- assertUndefined(message.getBone());
+ assertEquals(0, message.getBone());
assertEquals(890, message.getBtwo());
assertEquals(
proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BTWO,
@@ -1023,7 +1004,7 @@ describe('Message test suite', function() {
var other = new proto.jspb.test.TestMessageWithOneof;
message.setRone(other);
assertEquals(other, message.getRone());
- assertUndefined(message.getRtwo());
+ assertEquals('', message.getRtwo());
assertEquals(
proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase.RONE,
message.getRecursiveOneofCase());
@@ -1041,7 +1022,7 @@ describe('Message test suite', function() {
var message = new proto.jspb.test.TestMessageWithOneof;
message.setPone('x');
assertEquals('x', message.getPone());
- assertUndefined(message.getPthree());
+ assertEquals('', message.getPthree());
assertEquals(
proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PONE,
message.getPartialOneofCase());
diff --git a/js/proto3_test.js b/js/proto3_test.js
index 7f76006a..fab0fd44 100644
--- a/js/proto3_test.js
+++ b/js/proto3_test.js
@@ -221,10 +221,10 @@ describe('proto3Test', function() {
it('testOneofs', function() {
var msg = new proto.jspb.test.TestProto3();
- assertEquals(msg.getOneofUint32(), undefined);
+ assertEquals(msg.getOneofUint32(), 0);
assertEquals(msg.getOneofForeignMessage(), undefined);
- assertEquals(msg.getOneofString(), undefined);
- assertEquals(msg.getOneofBytes(), undefined);
+ assertEquals(msg.getOneofString(), '');
+ assertEquals(msg.getOneofBytes(), '');
assertFalse(msg.hasOneofUint32());
assertFalse(msg.hasOneofString());
assertFalse(msg.hasOneofBytes());
@@ -232,8 +232,8 @@ describe('proto3Test', function() {
msg.setOneofUint32(42);
assertEquals(msg.getOneofUint32(), 42);
assertEquals(msg.getOneofForeignMessage(), undefined);
- assertEquals(msg.getOneofString(), undefined);
- assertEquals(msg.getOneofBytes(), undefined);
+ assertEquals(msg.getOneofString(), '');
+ assertEquals(msg.getOneofBytes(), '');
assertTrue(msg.hasOneofUint32());
assertFalse(msg.hasOneofString());
assertFalse(msg.hasOneofBytes());
@@ -241,27 +241,27 @@ describe('proto3Test', function() {
var submsg = new proto.jspb.test.ForeignMessage();
msg.setOneofForeignMessage(submsg);
- assertEquals(msg.getOneofUint32(), undefined);
+ assertEquals(msg.getOneofUint32(), 0);
assertEquals(msg.getOneofForeignMessage(), submsg);
- assertEquals(msg.getOneofString(), undefined);
- assertEquals(msg.getOneofBytes(), undefined);
+ assertEquals(msg.getOneofString(), '');
+ assertEquals(msg.getOneofBytes(), '');
assertFalse(msg.hasOneofUint32());
assertFalse(msg.hasOneofString());
assertFalse(msg.hasOneofBytes());
msg.setOneofString('hello');
- assertEquals(msg.getOneofUint32(), undefined);
+ assertEquals(msg.getOneofUint32(), 0);
assertEquals(msg.getOneofForeignMessage(), undefined);
assertEquals(msg.getOneofString(), 'hello');
- assertEquals(msg.getOneofBytes(), undefined);
+ assertEquals(msg.getOneofBytes(), '');
assertFalse(msg.hasOneofUint32());
assertTrue(msg.hasOneofString());
assertFalse(msg.hasOneofBytes());
msg.setOneofBytes(goog.crypt.base64.encodeString('\u00FF\u00FF'));
- assertEquals(msg.getOneofUint32(), undefined);
+ assertEquals(msg.getOneofUint32(), 0);
assertEquals(msg.getOneofForeignMessage(), undefined);
- assertEquals(msg.getOneofString(), undefined);
+ assertEquals(msg.getOneofString(), '');
assertEquals(msg.getOneofBytes_asB64(),
goog.crypt.base64.encodeString('\u00FF\u00FF'));
assertFalse(msg.hasOneofUint32());