diff options
Diffstat (limited to 'js/message_test.js')
-rw-r--r-- | js/message_test.js | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/js/message_test.js b/js/message_test.js index 7d61dacb..9944c741 100644 --- a/js/message_test.js +++ b/js/message_test.js @@ -34,6 +34,7 @@ goog.setTestOnly(); goog.require('goog.json'); goog.require('goog.string'); +goog.require('goog.testing.PropertyReplacer'); goog.require('goog.testing.asserts'); goog.require('goog.userAgent'); @@ -85,6 +86,16 @@ goog.require('proto.jspb.test.TestExtensionsMessage'); describe('Message test suite', function() { + var stubs = new goog.testing.PropertyReplacer(); + + beforeEach(function() { + stubs.set(jspb.Message, 'SERIALIZE_EMPTY_TRAILING_FIELDS', false); + }); + + afterEach(function() { + stubs.reset(); + }); + it('testEmptyProto', function() { var empty1 = new proto.jspb.test.Empty([]); var empty2 = new proto.jspb.test.Empty([]); @@ -1041,4 +1052,13 @@ describe('Message test suite', function() { assertNan(message.getDefaultDoubleField()); }); + it('testSerializePreservesEmptyNestedField', function() { + var message = new proto.jspb.test.OptionalFields(); + message.setANestedMessage(new proto.jspb.test.OptionalFields.Nested()); + message.addARepeatedMessage(new proto.jspb.test.OptionalFields.Nested()); + message = proto.jspb.test.OptionalFields.deserialize(message.serialize()); + assertNotNullNorUndefined(message.getANestedMessage()); + assertEquals(1, message.getARepeatedMessageList().length); + }); + }); |