summaryrefslogtreecommitdiff
path: root/js/test
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2016-04-26 09:00:57 +0200
committerBenoit Foucher <benoit@zeroc.com>2016-04-26 09:00:57 +0200
commitc2ce37b7b0f6fc033cac4d52d460ee2f389d7737 (patch)
treedab204bc1dfd9298c7acb13b9493a210f8c4e978 /js/test
parentAdd jquery-cookie to bower dependency (diff)
downloadice-c2ce37b7b0f6fc033cac4d52d460ee2f389d7737.tar.bz2
ice-c2ce37b7b0f6fc033cac4d52d460ee2f389d7737.tar.xz
ice-c2ce37b7b0f6fc033cac4d52d460ee2f389d7737.zip
Fixed ICE-7115 - unmarshalling bug with optional parameters
Diffstat (limited to 'js/test')
-rw-r--r--js/test/Ice/optional/Client.js12
-rw-r--r--js/test/Ice/optional/ClientPrivate.ice39
-rw-r--r--js/test/Ice/optional/Test.ice4
-rw-r--r--js/test/Ice/optionalBidir/AMDInitialI.js4
-rw-r--r--js/test/Ice/optionalBidir/InitialI.js3
-rw-r--r--js/test/Ice/optionalBidir/Test.ice4
-rw-r--r--js/test/Ice/optionalBidir/TestAMD.ice4
7 files changed, 66 insertions, 4 deletions
diff --git a/js/test/Ice/optional/Client.js b/js/test/Ice/optional/Client.js
index f28a37e1fe9..02cb3340d76 100644
--- a/js/test/Ice/optional/Client.js
+++ b/js/test/Ice/optional/Client.js
@@ -11,6 +11,7 @@
{
var Ice = require("ice").Ice;
var Test = require("Test").Test;
+ var ClientPrivate = require("../optional/ClientPrivate").Test;
var Promise = Ice.Promise;
var ArrayUtil = Ice.ArrayUtil;
@@ -355,7 +356,16 @@
test(g.gg2.a.equals(new Ice.Long(0, 10)));
test(g.gg2Opt.a.equals(new Ice.Long(0, 20)));
test(g.gg1.a == "gg1");
-
+ }
+ ).then(
+ function()
+ {
+ var init2 = ClientPrivate.Initial2Prx.uncheckedCast(initial)
+ return init2.opVoid(5, "test");
+ }
+ ).then(
+ function()
+ {
out.writeLine("ok");
out.write("testing marshaling of large containers with fixed size elements... ");
var mc = new Test.MultiOptional();
diff --git a/js/test/Ice/optional/ClientPrivate.ice b/js/test/Ice/optional/ClientPrivate.ice
new file mode 100644
index 00000000000..5dd08613b9a
--- /dev/null
+++ b/js/test/Ice/optional/ClientPrivate.ice
@@ -0,0 +1,39 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#pragma once
+
+#include <Test.ice>
+
+module Test
+{
+
+//
+// The server doesn't know this class.
+//
+class D extends B
+{
+ string ds;
+ optional(990) StringSeq seq;
+ optional(1000) A ao;
+};
+
+//
+// This class is a hack that allows us to invoke the opClassAndUnknownOptional operation
+// on the server and pass an optional argument. This isn't necessary in other language
+// mappings where the public stream API is available.
+//
+class Initial2
+{
+ void opClassAndUnknownOptional(A p, optional(1) Object o);
+
+ void opVoid(optional(1) int a, optional(2) string v);
+};
+
+};
diff --git a/js/test/Ice/optional/Test.ice b/js/test/Ice/optional/Test.ice
index 00d8381fc75..81d6d459690 100644
--- a/js/test/Ice/optional/Test.ice
+++ b/js/test/Ice/optional/Test.ice
@@ -301,9 +301,11 @@ class Initial
void sendOptionalClass(bool req, optional(1) OneOptional o);
void returnOptionalClass(bool req, out optional(1) OneOptional o);
-
+
G opG(G g);
+ void opVoid();
+
bool supportsRequiredParams();
bool supportsJavaSerializable();
diff --git a/js/test/Ice/optionalBidir/AMDInitialI.js b/js/test/Ice/optionalBidir/AMDInitialI.js
index 74d9070bf98..332b2a562bf 100644
--- a/js/test/Ice/optionalBidir/AMDInitialI.js
+++ b/js/test/Ice/optionalBidir/AMDInitialI.js
@@ -359,6 +359,10 @@
{
cb.ice_response(g);
},
+ opVoid_async: function(cb, current)
+ {
+ cb.ice_response();
+ },
supportsRequiredParams_async: function(cb, current)
{
cb.ice_response(false);
diff --git a/js/test/Ice/optionalBidir/InitialI.js b/js/test/Ice/optionalBidir/InitialI.js
index 3884c32ef58..c50e3125a13 100644
--- a/js/test/Ice/optionalBidir/InitialI.js
+++ b/js/test/Ice/optionalBidir/InitialI.js
@@ -352,6 +352,9 @@
{
return g;
},
+ opVoid: function()
+ {
+ },
returnOptionalClass: function(req, current)
{
return new Test.OneOptional(53);
diff --git a/js/test/Ice/optionalBidir/Test.ice b/js/test/Ice/optionalBidir/Test.ice
index 3e84af1c344..babee62c36e 100644
--- a/js/test/Ice/optionalBidir/Test.ice
+++ b/js/test/Ice/optionalBidir/Test.ice
@@ -301,9 +301,11 @@ class Initial
void sendOptionalClass(bool req, optional(1) OneOptional o);
void returnOptionalClass(bool req, out optional(1) OneOptional o);
-
+
G opG(G g);
+ void opVoid();
+
bool supportsRequiredParams();
bool supportsJavaSerializable();
diff --git a/js/test/Ice/optionalBidir/TestAMD.ice b/js/test/Ice/optionalBidir/TestAMD.ice
index 05dd4d33001..54198e3045b 100644
--- a/js/test/Ice/optionalBidir/TestAMD.ice
+++ b/js/test/Ice/optionalBidir/TestAMD.ice
@@ -301,9 +301,11 @@ class G
void sendOptionalClass(bool req, optional(1) OneOptional o);
void returnOptionalClass(bool req, out optional(1) OneOptional o);
-
+
G opG(G g);
+ void opVoid();
+
bool supportsRequiredParams();
bool supportsJavaSerializable();