xrpld
Loading...
Searching...
No Matches
handshake_test.cpp
1#include <xrpld/overlay/detail/Handshake.h>
2
3#include <xrpl/beast/unit_test/suite.h>
4
5namespace xrpl::test {
6
8{
9public:
10 handshake_test() = default;
11
12 void
14 {
15 testcase("X-Protocol-Ctl");
16 boost::beast::http::fields headers;
17 headers.insert(
18 "X-Protocol-Ctl",
19 "feature1=v1,v2,v3; feature2=v4; feature3=10; feature4=1; "
20 "feature5=v6");
21 BEAST_EXPECT(!featureEnabled(headers, "feature1"));
22 BEAST_EXPECT(!isFeatureValue(headers, "feature1", "2"));
23 BEAST_EXPECT(isFeatureValue(headers, "feature1", "v1"));
24 BEAST_EXPECT(isFeatureValue(headers, "feature1", "v2"));
25 BEAST_EXPECT(isFeatureValue(headers, "feature1", "v3"));
26 BEAST_EXPECT(isFeatureValue(headers, "feature2", "v4"));
27 BEAST_EXPECT(!isFeatureValue(headers, "feature3", "1"));
28 BEAST_EXPECT(isFeatureValue(headers, "feature3", "10"));
29 BEAST_EXPECT(!isFeatureValue(headers, "feature4", "10"));
30 BEAST_EXPECT(isFeatureValue(headers, "feature4", "1"));
31 BEAST_EXPECT(!featureEnabled(headers, "v6"));
32 }
33
34 void
35 run() override
36 {
38 }
39};
40
41BEAST_DEFINE_TESTSUITE(handshake, overlay, xrpl);
42
43} // namespace xrpl::test
A testsuite class.
Definition suite.h:50
TestcaseT testcase
Memberspace for declaring test cases.
Definition suite.h:149
void run() override
Runs the suite.
BEAST_DEFINE_TESTSUITE(AMMClawback, app, xrpl)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
bool featureEnabled(boost::beast::http::fields const &headers, std::string const &feature)
Check if a feature is enabled.
Definition Handshake.cpp:77
bool isFeatureValue(boost::beast::http::fields const &headers, std::string const &feature, std::string const &value)
Check if a feature's value is equal to the specified value.
Definition Handshake.cpp:65