|
@@ -35,6 +35,11 @@ goog.require('goog.userAgent');
|
|
goog.require('proto.jspb.test.MapValueEnum');
|
|
goog.require('proto.jspb.test.MapValueEnum');
|
|
goog.require('proto.jspb.test.MapValueMessage');
|
|
goog.require('proto.jspb.test.MapValueMessage');
|
|
goog.require('proto.jspb.test.TestMapFields');
|
|
goog.require('proto.jspb.test.TestMapFields');
|
|
|
|
+goog.require('proto.jspb.test.TestMapFieldsOptionalKeys');
|
|
|
|
+goog.require('proto.jspb.test.MapEntryOptionalKeysStringKey');
|
|
|
|
+goog.require('proto.jspb.test.MapEntryOptionalKeysInt32Key');
|
|
|
|
+goog.require('proto.jspb.test.MapEntryOptionalKeysInt64Key');
|
|
|
|
+goog.require('proto.jspb.test.MapEntryOptionalKeysBoolKey');
|
|
|
|
|
|
// CommonJS-LoadFromFile: test_pb proto.jspb.test
|
|
// CommonJS-LoadFromFile: test_pb proto.jspb.test
|
|
goog.require('proto.jspb.test.MapValueMessageNoBinary');
|
|
goog.require('proto.jspb.test.MapValueMessageNoBinary');
|
|
@@ -76,7 +81,7 @@ function toArray(iter) {
|
|
* Helper: generate test methods for this TestMapFields class.
|
|
* Helper: generate test methods for this TestMapFields class.
|
|
* @param {?} msgInfo
|
|
* @param {?} msgInfo
|
|
* @param {?} submessageCtor
|
|
* @param {?} submessageCtor
|
|
- * @param {!string} suffix
|
|
|
|
|
|
+ * @param {string} suffix
|
|
*/
|
|
*/
|
|
function makeTests(msgInfo, submessageCtor, suffix) {
|
|
function makeTests(msgInfo, submessageCtor, suffix) {
|
|
/**
|
|
/**
|
|
@@ -260,6 +265,39 @@ function makeTests(msgInfo, submessageCtor, suffix) {
|
|
var decoded = msgInfo.deserializeBinary(serialized);
|
|
var decoded = msgInfo.deserializeBinary(serialized);
|
|
checkMapFields(decoded);
|
|
checkMapFields(decoded);
|
|
});
|
|
});
|
|
|
|
+ /**
|
|
|
|
+ * Tests deserialization of undefined map keys go to default values in binary format.
|
|
|
|
+ */
|
|
|
|
+ it('testMapDeserializationForUndefinedKeys', function() {
|
|
|
|
+ var testMessageOptionalKeys = new proto.jspb.test.TestMapFieldsOptionalKeys();
|
|
|
|
+ var mapEntryStringKey = new proto.jspb.test.MapEntryOptionalKeysStringKey();
|
|
|
|
+ mapEntryStringKey.setValue("a");
|
|
|
|
+ testMessageOptionalKeys.setMapStringString(mapEntryStringKey);
|
|
|
|
+ var mapEntryInt32Key = new proto.jspb.test.MapEntryOptionalKeysInt32Key();
|
|
|
|
+ mapEntryInt32Key.setValue("b");
|
|
|
|
+ testMessageOptionalKeys.setMapInt32String(mapEntryInt32Key);
|
|
|
|
+ var mapEntryInt64Key = new proto.jspb.test.MapEntryOptionalKeysInt64Key();
|
|
|
|
+ mapEntryInt64Key.setValue("c");
|
|
|
|
+ testMessageOptionalKeys.setMapInt64String(mapEntryInt64Key);
|
|
|
|
+ var mapEntryBoolKey = new proto.jspb.test.MapEntryOptionalKeysBoolKey();
|
|
|
|
+ mapEntryBoolKey.setValue("d");
|
|
|
|
+ testMessageOptionalKeys.setMapBoolString(mapEntryBoolKey);
|
|
|
|
+ var deserializedMessage = msgInfo.deserializeBinary(
|
|
|
|
+ testMessageOptionalKeys.serializeBinary()
|
|
|
|
+ );
|
|
|
|
+ checkMapEquals(deserializedMessage.getMapStringStringMap(), [
|
|
|
|
+ ['', 'a']
|
|
|
|
+ ]);
|
|
|
|
+ checkMapEquals(deserializedMessage.getMapInt32StringMap(), [
|
|
|
|
+ [0, 'b']
|
|
|
|
+ ]);
|
|
|
|
+ checkMapEquals(deserializedMessage.getMapInt64StringMap(), [
|
|
|
|
+ [0, 'c']
|
|
|
|
+ ]);
|
|
|
|
+ checkMapEquals(deserializedMessage.getMapBoolStringMap(), [
|
|
|
|
+ [false, 'd']
|
|
|
|
+ ]);
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|