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