aboutsummaryrefslogtreecommitdiffstats
path: root/rpc/testdata
diff options
context:
space:
mode:
Diffstat (limited to 'rpc/testdata')
-rw-r--r--rpc/testdata/invalid-badid.js7
-rw-r--r--rpc/testdata/invalid-batch.js14
-rw-r--r--rpc/testdata/invalid-idonly.js7
-rw-r--r--rpc/testdata/invalid-nonobj.js4
-rw-r--r--rpc/testdata/invalid-syntax.json5
-rw-r--r--rpc/testdata/reqresp-batch.js8
-rw-r--r--rpc/testdata/reqresp-echo.js16
-rw-r--r--rpc/testdata/reqresp-namedparam.js5
-rw-r--r--rpc/testdata/reqresp-noargsrets.js4
-rw-r--r--rpc/testdata/reqresp-nomethod.js4
-rw-r--r--rpc/testdata/reqresp-noparam.js4
-rw-r--r--rpc/testdata/reqresp-paramsnull.js4
-rw-r--r--rpc/testdata/revcall.js6
-rw-r--r--rpc/testdata/revcall2.js7
-rw-r--r--rpc/testdata/subscription.js12
15 files changed, 107 insertions, 0 deletions
diff --git a/rpc/testdata/invalid-badid.js b/rpc/testdata/invalid-badid.js
new file mode 100644
index 000000000..2202b8ccd
--- /dev/null
+++ b/rpc/testdata/invalid-badid.js
@@ -0,0 +1,7 @@
+// This test checks processing of messages with invalid ID.
+
+--> {"id":[],"method":"test_foo"}
+<-- {"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"invalid request"}}
+
+--> {"id":{},"method":"test_foo"}
+<-- {"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"invalid request"}}
diff --git a/rpc/testdata/invalid-batch.js b/rpc/testdata/invalid-batch.js
new file mode 100644
index 000000000..f470574fb
--- /dev/null
+++ b/rpc/testdata/invalid-batch.js
@@ -0,0 +1,14 @@
+// This test checks the behavior of batches with invalid elements.
+// Empty batches are not allowed. Batches may contain junk.
+
+--> []
+<-- {"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"empty batch"}}
+
+--> [1]
+<-- [{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"invalid request"}}]
+
+--> [1,2,3]
+<-- [{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"invalid request"}},{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"invalid request"}},{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"invalid request"}}]
+
+--> [{"jsonrpc":"2.0","id":1,"method":"test_echo","params":["foo",1]},55,{"jsonrpc":"2.0","id":2,"method":"unknown_method"},{"foo":"bar"}]
+<-- [{"jsonrpc":"2.0","id":1,"result":{"String":"foo","Int":1,"Args":null}},{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"invalid request"}},{"jsonrpc":"2.0","id":2,"error":{"code":-32601,"message":"the method unknown_method does not exist/is not available"}},{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"invalid request"}}]
diff --git a/rpc/testdata/invalid-idonly.js b/rpc/testdata/invalid-idonly.js
new file mode 100644
index 000000000..79997bee3
--- /dev/null
+++ b/rpc/testdata/invalid-idonly.js
@@ -0,0 +1,7 @@
+// This test checks processing of messages that contain just the ID and nothing else.
+
+--> {"id":1}
+<-- {"jsonrpc":"2.0","id":1,"error":{"code":-32600,"message":"invalid request"}}
+
+--> {"jsonrpc":"2.0","id":1}
+<-- {"jsonrpc":"2.0","id":1,"error":{"code":-32600,"message":"invalid request"}}
diff --git a/rpc/testdata/invalid-nonobj.js b/rpc/testdata/invalid-nonobj.js
new file mode 100644
index 000000000..4b9f4d994
--- /dev/null
+++ b/rpc/testdata/invalid-nonobj.js
@@ -0,0 +1,4 @@
+// This test checks behavior for invalid requests.
+
+--> 1
+<-- {"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"invalid request"}}
diff --git a/rpc/testdata/invalid-syntax.json b/rpc/testdata/invalid-syntax.json
new file mode 100644
index 000000000..b19429960
--- /dev/null
+++ b/rpc/testdata/invalid-syntax.json
@@ -0,0 +1,5 @@
+// This test checks that an error is written for invalid JSON requests.
+
+--> 'f
+<-- {"jsonrpc":"2.0","id":null,"error":{"code":-32700,"message":"invalid character '\\'' looking for beginning of value"}}
+
diff --git a/rpc/testdata/reqresp-batch.js b/rpc/testdata/reqresp-batch.js
new file mode 100644
index 000000000..977af7663
--- /dev/null
+++ b/rpc/testdata/reqresp-batch.js
@@ -0,0 +1,8 @@
+// There is no response for all-notification batches.
+
+--> [{"jsonrpc":"2.0","method":"test_echo","params":["x",99]}]
+
+// This test checks regular batch calls.
+
+--> [{"jsonrpc":"2.0","id":2,"method":"test_echo","params":[]}, {"jsonrpc":"2.0","id": 3,"method":"test_echo","params":["x",3]}]
+<-- [{"jsonrpc":"2.0","id":2,"error":{"code":-32602,"message":"missing value for required argument 0"}},{"jsonrpc":"2.0","id":3,"result":{"String":"x","Int":3,"Args":null}}]
diff --git a/rpc/testdata/reqresp-echo.js b/rpc/testdata/reqresp-echo.js
new file mode 100644
index 000000000..7a9e90321
--- /dev/null
+++ b/rpc/testdata/reqresp-echo.js
@@ -0,0 +1,16 @@
+// This test calls the test_echo method.
+
+--> {"jsonrpc": "2.0", "id": 2, "method": "test_echo", "params": []}
+<-- {"jsonrpc":"2.0","id":2,"error":{"code":-32602,"message":"missing value for required argument 0"}}
+
+--> {"jsonrpc": "2.0", "id": 2, "method": "test_echo", "params": ["x"]}
+<-- {"jsonrpc":"2.0","id":2,"error":{"code":-32602,"message":"missing value for required argument 1"}}
+
+--> {"jsonrpc": "2.0", "id": 2, "method": "test_echo", "params": ["x", 3]}
+<-- {"jsonrpc":"2.0","id":2,"result":{"String":"x","Int":3,"Args":null}}
+
+--> {"jsonrpc": "2.0", "id": 2, "method": "test_echo", "params": ["x", 3, {"S": "foo"}]}
+<-- {"jsonrpc":"2.0","id":2,"result":{"String":"x","Int":3,"Args":{"S":"foo"}}}
+
+--> {"jsonrpc": "2.0", "id": 2, "method": "test_echoWithCtx", "params": ["x", 3, {"S": "foo"}]}
+<-- {"jsonrpc":"2.0","id":2,"result":{"String":"x","Int":3,"Args":{"S":"foo"}}}
diff --git a/rpc/testdata/reqresp-namedparam.js b/rpc/testdata/reqresp-namedparam.js
new file mode 100644
index 000000000..9a9372b0a
--- /dev/null
+++ b/rpc/testdata/reqresp-namedparam.js
@@ -0,0 +1,5 @@
+// This test checks that an error response is sent for calls
+// with named parameters.
+
+--> {"jsonrpc":"2.0","method":"test_echo","params":{"int":23},"id":3}
+<-- {"jsonrpc":"2.0","id":3,"error":{"code":-32602,"message":"non-array args"}}
diff --git a/rpc/testdata/reqresp-noargsrets.js b/rpc/testdata/reqresp-noargsrets.js
new file mode 100644
index 000000000..e61cc708b
--- /dev/null
+++ b/rpc/testdata/reqresp-noargsrets.js
@@ -0,0 +1,4 @@
+// This test calls the test_noArgsRets method.
+
+--> {"jsonrpc": "2.0", "id": "foo", "method": "test_noArgsRets", "params": []}
+<-- {"jsonrpc":"2.0","id":"foo","result":null}
diff --git a/rpc/testdata/reqresp-nomethod.js b/rpc/testdata/reqresp-nomethod.js
new file mode 100644
index 000000000..58ea6f307
--- /dev/null
+++ b/rpc/testdata/reqresp-nomethod.js
@@ -0,0 +1,4 @@
+// This test calls a method that doesn't exist.
+
+--> {"jsonrpc": "2.0", "id": 2, "method": "invalid_method", "params": [2, 3]}
+<-- {"jsonrpc":"2.0","id":2,"error":{"code":-32601,"message":"the method invalid_method does not exist/is not available"}}
diff --git a/rpc/testdata/reqresp-noparam.js b/rpc/testdata/reqresp-noparam.js
new file mode 100644
index 000000000..2edf486d9
--- /dev/null
+++ b/rpc/testdata/reqresp-noparam.js
@@ -0,0 +1,4 @@
+// This test checks that calls with no parameters work.
+
+--> {"jsonrpc":"2.0","method":"test_noArgsRets","id":3}
+<-- {"jsonrpc":"2.0","id":3,"result":null}
diff --git a/rpc/testdata/reqresp-paramsnull.js b/rpc/testdata/reqresp-paramsnull.js
new file mode 100644
index 000000000..8a01bae1b
--- /dev/null
+++ b/rpc/testdata/reqresp-paramsnull.js
@@ -0,0 +1,4 @@
+// This test checks that calls with "params":null work.
+
+--> {"jsonrpc":"2.0","method":"test_noArgsRets","params":null,"id":3}
+<-- {"jsonrpc":"2.0","id":3,"result":null}
diff --git a/rpc/testdata/revcall.js b/rpc/testdata/revcall.js
new file mode 100644
index 000000000..695d9858f
--- /dev/null
+++ b/rpc/testdata/revcall.js
@@ -0,0 +1,6 @@
+// This test checks reverse calls.
+
+--> {"jsonrpc":"2.0","id":2,"method":"test_callMeBack","params":["foo",[1]]}
+<-- {"jsonrpc":"2.0","id":1,"method":"foo","params":[1]}
+--> {"jsonrpc":"2.0","id":1,"result":"my result"}
+<-- {"jsonrpc":"2.0","id":2,"result":"my result"}
diff --git a/rpc/testdata/revcall2.js b/rpc/testdata/revcall2.js
new file mode 100644
index 000000000..acab46551
--- /dev/null
+++ b/rpc/testdata/revcall2.js
@@ -0,0 +1,7 @@
+// This test checks reverse calls.
+
+--> {"jsonrpc":"2.0","id":2,"method":"test_callMeBackLater","params":["foo",[1]]}
+<-- {"jsonrpc":"2.0","id":2,"result":null}
+<-- {"jsonrpc":"2.0","id":1,"method":"foo","params":[1]}
+--> {"jsonrpc":"2.0","id":1,"result":"my result"}
+
diff --git a/rpc/testdata/subscription.js b/rpc/testdata/subscription.js
new file mode 100644
index 000000000..9f1007301
--- /dev/null
+++ b/rpc/testdata/subscription.js
@@ -0,0 +1,12 @@
+// This test checks basic subscription support.
+
+--> {"jsonrpc":"2.0","id":1,"method":"nftest_subscribe","params":["someSubscription",5,1]}
+<-- {"jsonrpc":"2.0","id":1,"result":"0x1"}
+<-- {"jsonrpc":"2.0","method":"nftest_subscription","params":{"subscription":"0x1","result":1}}
+<-- {"jsonrpc":"2.0","method":"nftest_subscription","params":{"subscription":"0x1","result":2}}
+<-- {"jsonrpc":"2.0","method":"nftest_subscription","params":{"subscription":"0x1","result":3}}
+<-- {"jsonrpc":"2.0","method":"nftest_subscription","params":{"subscription":"0x1","result":4}}
+<-- {"jsonrpc":"2.0","method":"nftest_subscription","params":{"subscription":"0x1","result":5}}
+
+--> {"jsonrpc":"2.0","id":2,"method":"nftest_echo","params":[11]}
+<-- {"jsonrpc":"2.0","id":2,"result":11}