Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
pool.cpp File Reference
#include <boost/test/unit_test.hpp>
#include <iostream>
#include <string>
#include <websocketpp/processors/hybi00.hpp>
#include <websocketpp/http/request.hpp>
#include <websocketpp/http/response.hpp>
Include dependency graph for pool.cpp:

Go to the source code of this file.

Macros

#define BOOST_TEST_MODULE   hybi_00_processor
 

Functions

 BOOST_AUTO_TEST_CASE (exact_match)
 
 BOOST_AUTO_TEST_CASE (non_get_method)
 
 BOOST_AUTO_TEST_CASE (old_http_version)
 
 BOOST_AUTO_TEST_CASE (missing_handshake_key1)
 
 BOOST_AUTO_TEST_CASE (missing_handshake_key2)
 
 BOOST_AUTO_TEST_CASE (bad_host)
 

Macro Definition Documentation

◆ BOOST_TEST_MODULE

#define BOOST_TEST_MODULE   hybi_00_processor

Definition at line 28 of file pool.cpp.

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/6]

BOOST_AUTO_TEST_CASE ( bad_host )

Definition at line 134 of file pool.cpp.

134 {
138 bool exception = false;
139
140 std::string handshake = "GET / HTTP/1.1\r\nHost: www.example.com:70000\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Key2: 17 9 G`ZD9 2 2b 7X 3 /r90\r\n\r\n";
141
142 r.consume(handshake.c_str(),handshake.size());
143 r.replace_header("Sec-WebSocket-Key3","janelle!");
144
146 BOOST_CHECK(websocketpp::processor::get_websocket_version(r) == p.get_version());
147 BOOST_CHECK(!p.validate_handshake(r));
148
149 try {
150 u = p.get_uri(r);
151 } catch (const websocketpp::uri_exception& e) {
152 exception = true;
153 }
154
155 BOOST_CHECK(exception == true);
156}
const mie::Vuint & p
Definition bn.cpp:27
const mie::Vuint & r
Definition bn.cpp:28
Stores, parses, and manipulates HTTP requests.
Definition request.hpp:50
Processor for Hybi Draft version 00.
Definition hybi00.hpp:54
int get_websocket_version(request_type &r)
Extract the version from a WebSocket handshake request.
bool is_websocket_handshake(request_type &r)
Determine whether or not a generic HTTP request is a WebSocket handshake.
Definition processor.hpp:68
lib::shared_ptr< uri > uri_ptr
Pointer to a URI.
Definition uri.hpp:351
Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [2/6]

BOOST_AUTO_TEST_CASE ( exact_match )

Definition at line 39 of file pool.cpp.

39 {
43
44 std::string handshake = "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: upgrade\r\nUpgrade: websocket\r\nOrigin: http://example.com\r\nSec-WebSocket-Key1: 3e6b263 4 17 80\r\nSec-WebSocket-Key2: 17 9 G`ZD9 2 2b 7X 3 /r90\r\n\r\n";
45
46 r.consume(handshake.c_str(),handshake.size());
47 r.replace_header("Sec-WebSocket-Key3","WjN}|M(6");
48
50 BOOST_CHECK(websocketpp::processor::get_websocket_version(r) == p.get_version());
51 BOOST_CHECK(p.validate_handshake(r));
52
54 bool exception;
55
56 try {
57 u = p.get_uri(r);
58 } catch (const websocketpp::uri_exception& e) {
59 exception = true;
60 }
61
62 BOOST_CHECK(exception == false);
63 BOOST_CHECK(u->get_secure() == false);
64 BOOST_CHECK(u->get_host() == "www.example.com");
65 BOOST_CHECK(u->get_resource() == "/");
66 BOOST_CHECK(u->get_port() == websocketpp::URI_DEFAULT_PORT);
67
68 p.process_handshake(r,response);
69
70 BOOST_CHECK(response.get_header("Connection") == "Upgrade");
71 BOOST_CHECK(response.get_header("Upgrade") == "websocket");
72 BOOST_CHECK(response.get_header("Sec-WebSocket-Origin") == "http://example.com");
73
74 BOOST_CHECK(response.get_header("Sec-WebSocket-Location") == "ws://www.example.com/");
75 BOOST_CHECK(response.get_header("Sec-WebSocket-Key3") == "n`9eBk9z$R8pOtVb");
76}
Stores, parses, and manipulates HTTP responses.
Definition response.hpp:57
Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [3/6]

BOOST_AUTO_TEST_CASE ( missing_handshake_key1 )

Definition at line 106 of file pool.cpp.

106 {
109
110 std::string handshake = "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Key1: 3e6b263 4 17 80\r\n\r\n";
111
112 r.consume(handshake.c_str(),handshake.size());
113 r.replace_header("Sec-WebSocket-Key3","janelle!");
114
116 BOOST_CHECK(websocketpp::processor::get_websocket_version(r) == p.get_version());
117 BOOST_CHECK(!p.validate_handshake(r));
118}
Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [4/6]

BOOST_AUTO_TEST_CASE ( missing_handshake_key2 )

Definition at line 120 of file pool.cpp.

120 {
123
124 std::string handshake = "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Key2: 17 9 G`ZD9 2 2b 7X 3 /r90\r\n\r\n";
125
126 r.consume(handshake.c_str(),handshake.size());
127 r.replace_header("Sec-WebSocket-Key3","janelle!");
128
130 BOOST_CHECK(websocketpp::processor::get_websocket_version(r) == p.get_version());
131 BOOST_CHECK(!p.validate_handshake(r));
132}
Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [5/6]

BOOST_AUTO_TEST_CASE ( non_get_method )

Definition at line 78 of file pool.cpp.

78 {
81
82 std::string handshake = "POST / HTTP/1.1\r\nHost: www.example.com\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Key1: 3e6b263 4 17 80\r\nSec-WebSocket-Key2: 17 9 G`ZD9 2 2b 7X 3 /r90\r\n\r\n";
83
84 r.consume(handshake.c_str(),handshake.size());
85 r.replace_header("Sec-WebSocket-Key3","janelle!");
86
88 BOOST_CHECK(websocketpp::processor::get_websocket_version(r) == p.get_version());
89 BOOST_CHECK(!p.validate_handshake(r));
90}
Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [6/6]

BOOST_AUTO_TEST_CASE ( old_http_version )

Definition at line 92 of file pool.cpp.

92 {
95
96 std::string handshake = "GET / HTTP/1.0\r\nHost: www.example.com\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Key1: 3e6b263 4 17 80\r\nSec-WebSocket-Key2: 17 9 G`ZD9 2 2b 7X 3 /r90\r\n\r\n";
97
98 r.consume(handshake.c_str(),handshake.size());
99 r.replace_header("Sec-WebSocket-Key3","janelle!");
100
102 BOOST_CHECK(websocketpp::processor::get_websocket_version(r) == p.get_version());
103 BOOST_CHECK(!p.validate_handshake(r));
104}
Here is the call graph for this function: