diff --git a/framework/src/org/apache/cordova/NativeToJsMessageQueue.java b/framework/src/org/apache/cordova/NativeToJsMessageQueue.java index a8f59fad..d17b1c43 100755 --- a/framework/src/org/apache/cordova/NativeToJsMessageQueue.java +++ b/framework/src/org/apache/cordova/NativeToJsMessageQueue.java @@ -511,6 +511,9 @@ public class NativeToJsMessageQueue { .append(pluginResult.getMessage()) .append("')"); break; + case PluginResult.MESSAGE_TYPE_NULL: + sb.append("null"); + break; default: sb.append(pluginResult.getMessage()); } diff --git a/test/app/src/test/java/org/apache/cordova/unittests/NativeToJsMessageQueueTest.java b/test/app/src/test/java/org/apache/cordova/unittests/NativeToJsMessageQueueTest.java index e5278949..dc7bb672 100644 --- a/test/app/src/test/java/org/apache/cordova/unittests/NativeToJsMessageQueueTest.java +++ b/test/app/src/test/java/org/apache/cordova/unittests/NativeToJsMessageQueueTest.java @@ -161,4 +161,17 @@ public class NativeToJsMessageQueueTest { assertEquals(result, "cordova.callbackFromNative('37',true,1,[0,1,2,3,4],false);"); } + @Test + public void testNullPopAndEncodeAsJs() + { + NativeToJsMessageQueue queue = new NativeToJsMessageQueue(); + queue.addBridgeMode(new NativeToJsMessageQueue.NoOpBridgeMode()); + queue.setBridgeMode(0); + + PluginResult result = new PluginResult(PluginResult.Status.OK, (String)null); + queue.addPluginResult(result, TEST_CALLBACK_ID); + assertFalse(queue.isEmpty()); + String resultString = queue.popAndEncodeAsJs(); + assertEquals(resultString, "cordova.callbackFromNative('" + TEST_CALLBACK_ID + "',true,1,[null],false);"); + } }