diff --git a/src/ripple/test/WSClient.h b/src/ripple/test/WSClient.h index 606380f08..dabf3ceab 100644 --- a/src/ripple/test/WSClient.h +++ b/src/ripple/test/WSClient.h @@ -47,10 +47,7 @@ public: /** Returns a client operating through WebSockets/S. */ std::unique_ptr -makeWSClient(Config const& cfg); - -std::unique_ptr -makeWS2Client(Config const& cfg); +makeWSClient(Config const& cfg, bool v2 = true); } // test } // ripple diff --git a/src/ripple/test/impl/WSClient.cpp b/src/ripple/test/impl/WSClient.cpp index d125fa9ab..596039d3c 100644 --- a/src/ripple/test/impl/WSClient.cpp +++ b/src/ripple/test/impl/WSClient.cpp @@ -254,15 +254,9 @@ private: }; std::unique_ptr -makeWSClient(Config const& cfg) +makeWSClient(Config const& cfg, bool v2) { - return std::make_unique(cfg, false); -} - -std::unique_ptr -makeWS2Client(Config const& cfg) -{ - return std::make_unique(cfg, true); + return std::make_unique(cfg, v2); } } // test diff --git a/src/test/rpc/RobustTransaction_test.cpp b/src/test/rpc/RobustTransaction_test.cpp index ce7099531..677bd6325 100644 --- a/src/test/rpc/RobustTransaction_test.cpp +++ b/src/test/rpc/RobustTransaction_test.cpp @@ -108,6 +108,15 @@ public: ff["Balance"] == "10002000000"; })); } + + { + // RPC unsubscribe to transactions stream + Json::Value jv; + jv[jss::streams] = Json::arrayValue; + jv[jss::streams].append("transactions"); + jv = wsc->invoke("unsubscribe", jv); + BEAST_EXPECT(jv[jss::status] == "success"); + } } /* @@ -193,12 +202,14 @@ public: } { - // RPC subscribe to ledger stream - Json::Value jv; - jv[jss::streams] = Json::arrayValue; - jv[jss::streams].append("ledger"); - jv = wsc->invoke("subscribe", jv); - BEAST_EXPECT(jv[jss::status] == "success"); + { + // RPC subscribe to ledger stream + Json::Value jv; + jv[jss::streams] = Json::arrayValue; + jv[jss::streams].append("ledger"); + jv = wsc->invoke("subscribe", jv); + BEAST_EXPECT(jv[jss::status] == "success"); + } // Close ledgers for(auto i = 0; i < 8; ++i) @@ -215,18 +226,28 @@ public: return jv[jss::type] == "ledgerClosed"; })); } + + { + // RPC unsubscribe to ledger stream + Json::Value jv; + jv[jss::streams] = Json::arrayValue; + jv[jss::streams].append("ledger"); + jv = wsc->invoke("unsubscribe", jv); + BEAST_EXPECT(jv[jss::status] == "success"); + } } { // Disconnect, reconnect wsc = makeWSClient(env.app().config()); - - // RPC subscribe to ledger stream - Json::Value jv; - jv[jss::streams] = Json::arrayValue; - jv[jss::streams].append("ledger"); - jv = wsc->invoke("subscribe", jv); - BEAST_EXPECT(jv[jss::status] == "success"); + { + // RPC subscribe to ledger stream + Json::Value jv; + jv[jss::streams] = Json::arrayValue; + jv[jss::streams].append("ledger"); + jv = wsc->invoke("subscribe", jv); + BEAST_EXPECT(jv[jss::status] == "success"); + } // Close ledgers for (auto i = 0; i < 2; ++i) @@ -243,6 +264,15 @@ public: return jv[jss::type] == "ledgerClosed"; })); } + + { + // RPC unsubscribe to ledger stream + Json::Value jv; + jv[jss::streams] = Json::arrayValue; + jv[jss::streams].append("ledger"); + jv = wsc->invoke("unsubscribe", jv); + BEAST_EXPECT(jv[jss::status] == "success"); + } } { @@ -303,6 +333,16 @@ public: "AccountSet"; })); } + + { + // RPC unsubscribe to accounts_proposed stream + Json::Value jv; + jv[jss::accounts_proposed] = Json::arrayValue; + jv[jss::accounts_proposed].append( + Account("alice").human()); + jv = wsc->invoke("unsubscribe", jv); + BEAST_EXPECT(jv[jss::status] == "success"); + } } void