Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
close.cpp File Reference
#include <boost/test/unit_test.hpp>
#include <iostream>
#include <string>
#include <websocketpp/close.hpp>
#include <websocketpp/utilities.hpp>
Include dependency graph for close.cpp:

Go to the source code of this file.

Macros

#define BOOST_TEST_MODULE   close
 

Functions

 BOOST_AUTO_TEST_CASE (reserved_values)
 
 BOOST_AUTO_TEST_CASE (invalid_values)
 
 BOOST_AUTO_TEST_CASE (value_extraction)
 
 BOOST_AUTO_TEST_CASE (extract_empty)
 
 BOOST_AUTO_TEST_CASE (extract_short)
 
 BOOST_AUTO_TEST_CASE (extract_reason)
 

Macro Definition Documentation

◆ BOOST_TEST_MODULE

#define BOOST_TEST_MODULE   close

Definition at line 28 of file close.cpp.

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/6]

BOOST_AUTO_TEST_CASE ( extract_empty )

Definition at line 89 of file close.cpp.

89 {
90 lib::error_code ec;
91 std::string payload;
92
93 BOOST_CHECK( close::extract_code(payload,ec) == close::status::no_status );
94 BOOST_CHECK( !ec );
95}

◆ BOOST_AUTO_TEST_CASE() [2/6]

BOOST_AUTO_TEST_CASE ( extract_reason )

Definition at line 105 of file close.cpp.

105 {
106 lib::error_code ec;
107 std::string payload = "00Foo";
108
109 BOOST_CHECK( close::extract_reason(payload,ec) == "Foo" );
110 BOOST_CHECK( !ec );
111
112 payload.clear();
113 BOOST_CHECK( close::extract_reason(payload,ec).empty() );
114 BOOST_CHECK( !ec );
115
116 payload = "00";
117 BOOST_CHECK( close::extract_reason(payload,ec).empty() );
118 BOOST_CHECK( !ec );
119
120 payload = "000";
121 payload[2] = char(0xFF);
122
123 close::extract_reason(payload,ec);
124 BOOST_CHECK( ec == error::invalid_utf8 );
125}

◆ BOOST_AUTO_TEST_CASE() [3/6]

BOOST_AUTO_TEST_CASE ( extract_short )

Definition at line 97 of file close.cpp.

97 {
98 lib::error_code ec;
99 std::string payload = "0";
100
101 BOOST_CHECK( close::extract_code(payload,ec) == close::status::protocol_error );
102 BOOST_CHECK( ec == error::bad_close_code );
103}

◆ BOOST_AUTO_TEST_CASE() [4/6]

BOOST_AUTO_TEST_CASE ( invalid_values )

Definition at line 48 of file close.cpp.

48 {
49 BOOST_CHECK( close::status::invalid(0) );
50 BOOST_CHECK( close::status::invalid(999) );
51 BOOST_CHECK( !close::status::invalid(1000) );
52 BOOST_CHECK( close::status::invalid(1005) );
53 BOOST_CHECK( close::status::invalid(1006) );
54 BOOST_CHECK( close::status::invalid(1015) );
55 BOOST_CHECK( !close::status::invalid(2999) );
56 BOOST_CHECK( !close::status::invalid(3000) );
57 BOOST_CHECK( close::status::invalid(5000) );
58}
bool invalid(value code)
Test whether a close code is invalid on the wire.
Definition close.hpp:194
Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [5/6]

BOOST_AUTO_TEST_CASE ( reserved_values )

Definition at line 39 of file close.cpp.

39 {
40 BOOST_CHECK( !close::status::reserved(999) );
41 BOOST_CHECK( close::status::reserved(1004) );
42 BOOST_CHECK( close::status::reserved(1014) );
43 BOOST_CHECK( close::status::reserved(1016) );
44 BOOST_CHECK( close::status::reserved(2999) );
45 BOOST_CHECK( !close::status::reserved(1000) );
46}
bool reserved(value code)
Test whether a close code is in a reserved range.
Definition close.hpp:179
Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [6/6]

BOOST_AUTO_TEST_CASE ( value_extraction )

Definition at line 60 of file close.cpp.

60 {
61 lib::error_code ec;
62 std::string payload = "oo";
63
64 // Value = 1000
65 payload[0] = 0x03;
66 payload[1] = char(0xe8);
67 BOOST_CHECK( close::extract_code(payload,ec) == close::status::normal );
68 BOOST_CHECK( !ec );
69
70 // Value = 1004
71 payload[0] = 0x03;
72 payload[1] = char(0xec);
73 BOOST_CHECK( close::extract_code(payload,ec) == 1004 );
74 BOOST_CHECK( ec == error::reserved_close_code );
75
76 // Value = 1005
77 payload[0] = 0x03;
78 payload[1] = char(0xed);
79 BOOST_CHECK( close::extract_code(payload,ec) == close::status::no_status );
80 BOOST_CHECK( ec == error::invalid_close_code );
81
82 // Value = 3000
83 payload[0] = 0x0b;
84 payload[1] = char(0xb8);
85 BOOST_CHECK( close::extract_code(payload,ec) == 3000 );
86 BOOST_CHECK( !ec );
87}