rfuzz 0.6 → 0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +18 -17
- data/Rakefile +8 -3
- data/doc/rdoc/classes/RFuzz/Browser.html +229 -0
- data/doc/rdoc/classes/RFuzz/Browser.src/M000068.html +25 -0
- data/doc/rdoc/classes/RFuzz/Browser.src/M000069.html +23 -0
- data/doc/rdoc/classes/RFuzz/Browser.src/M000070.html +24 -0
- data/doc/rdoc/classes/RFuzz/HttpClient.html +10 -0
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000010.html +10 -10
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000011.html +18 -18
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000012.html +36 -35
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000013.html +35 -35
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000014.html +43 -43
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000015.html +22 -22
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000016.html +12 -12
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000017.html +18 -18
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000018.html +4 -4
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000019.html +12 -12
- data/doc/rdoc/classes/RFuzz/HttpEncoding.html +13 -0
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000001.html +12 -12
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000002.html +4 -4
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000003.html +12 -12
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000004.html +4 -4
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000005.html +18 -18
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000006.html +4 -4
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000007.html +6 -6
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000008.html +6 -6
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000009.html +18 -18
- data/doc/rdoc/classes/RFuzz/Notifier.src/M000044.html +3 -3
- data/doc/rdoc/classes/RFuzz/Notifier.src/M000045.html +3 -3
- data/doc/rdoc/classes/RFuzz/Notifier.src/M000046.html +3 -3
- data/doc/rdoc/classes/RFuzz/Notifier.src/M000047.html +3 -3
- data/doc/rdoc/classes/RFuzz/Notifier.src/M000048.html +3 -3
- data/doc/rdoc/classes/RFuzz/Notifier.src/M000049.html +3 -3
- data/doc/rdoc/classes/RFuzz/Session.html +11 -1
- data/doc/rdoc/classes/RFuzz/Session.src/M000020.html +16 -16
- data/doc/rdoc/classes/RFuzz/Session.src/M000021.html +4 -4
- data/doc/rdoc/classes/RFuzz/Session.src/M000022.html +4 -4
- data/doc/rdoc/classes/RFuzz/Session.src/M000023.html +20 -20
- data/doc/rdoc/classes/RFuzz/Session.src/M000024.html +5 -5
- data/doc/rdoc/classes/RFuzz/Session.src/M000025.html +5 -5
- data/doc/rdoc/classes/RFuzz/Session.src/M000026.html +12 -12
- data/doc/rdoc/classes/RFuzz/Session.src/M000027.html +15 -15
- data/doc/rdoc/classes/RFuzz/Session.src/M000028.html +5 -5
- data/doc/rdoc/classes/RFuzz/Session.src/M000029.html +4 -4
- data/doc/rdoc/classes/RFuzz/Session.src/M000030.html +4 -4
- data/doc/rdoc/classes/RFuzz/Session.src/M000031.html +9 -9
- data/doc/rdoc/classes/RFuzz.html +5 -0
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/COPYING.html +1 -1
- data/doc/rdoc/files/LICENSE.html +1 -1
- data/doc/rdoc/files/README.html +23 -24
- data/doc/rdoc/files/lib/rfuzz/browser_rb.html +109 -0
- data/doc/rdoc/files/lib/rfuzz/client_rb.html +2 -1
- data/doc/rdoc/files/lib/rfuzz/random_rb.html +1 -1
- data/doc/rdoc/files/lib/rfuzz/rfuzz_rb.html +1 -1
- data/doc/rdoc/files/lib/rfuzz/session_rb.html +1 -1
- data/doc/rdoc/files/lib/rfuzz/stats_rb.html +1 -1
- data/doc/rdoc/fr_class_index.html +1 -0
- data/doc/rdoc/fr_file_index.html +1 -0
- data/doc/rdoc/fr_method_index.html +9 -6
- data/examples/cl_watcher.rb +36 -0
- data/examples/mongrel_test_suite/test/http/access_authentication.rb +8 -0
- data/examples/mongrel_test_suite/test/http/appendix.rb +76 -0
- data/examples/mongrel_test_suite/test/http/base_protocol.rb +4 -7
- data/examples/mongrel_test_suite/test/http/caching_in_http.rb +140 -0
- data/examples/mongrel_test_suite/test/http/connections.rb +48 -0
- data/examples/mongrel_test_suite/test/http/content_negotiation.rb +20 -0
- data/examples/mongrel_test_suite/test/http/entity.rb +24 -0
- data/examples/mongrel_test_suite/test/http/header_field_definitions.rb +231 -0
- data/examples/mongrel_test_suite/test/http/http_message.rb +122 -0
- data/examples/mongrel_test_suite/test/http/method_definitions.rb +52 -0
- data/examples/mongrel_test_suite/test/http/protocol_parameters.rb +286 -0
- data/examples/mongrel_test_suite/test/http/request.rb +28 -0
- data/examples/mongrel_test_suite/test/http/response.rb +20 -0
- data/examples/mongrel_test_suite/test/http/security_considerations.rb +54 -0
- data/examples/mongrel_test_suite/test/http/status_code_definitions.rb +192 -0
- data/ext/fuzzrnd/fuzzrnd.c +1 -2
- data/lib/rfuzz/browser.rb +53 -0
- data/lib/rfuzz/client.rb +11 -6
- data/lib/rfuzz/session.rb +3 -1
- data/tools/rakehelp.rb +4 -2
- metadata +24 -15
- data/test/coverage/index.html +0 -388
- data/test/coverage/lib-rfuzz-client_rb.html +0 -1127
- data/test/coverage/lib-rfuzz-random_rb.html +0 -739
- data/test/coverage/lib-rfuzz-session_rb.html +0 -783
- data/test/coverage/lib-rfuzz-stats_rb.html +0 -788
- data/test/server.rb +0 -101
- data/test/test_client.rb +0 -164
- data/test/test_fuzzrnd.rb +0 -31
- data/test/test_httpparser.rb +0 -48
- data/test/test_random.rb +0 -75
- data/test/test_session.rb +0 -33
- data/test/test_stats.rb +0 -45
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
require 'rfuzz/session'
|
|
2
|
+
|
|
3
|
+
context "13: Caching in HTTP" do
|
|
4
|
+
setup do
|
|
5
|
+
@sess = RFuzz::Session.new :host => "localhost", :port => 3000
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
specify "13.1.1: Cache Correctness" do
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
specify "13.1.2: Warnings" do
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
specify "13.1.3: Cache-control Mechanisms" do
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
specify "13.1.4: Explicit User Agent Warnings" do
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
specify "13.1.5: Exceptions to the Rules and Warnings" do
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
specify "13.1.6: Client-controlled Behavior" do
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
specify "13.2: Expiration Model" do
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
specify "13.2.1: Server-Specified Expiration" do
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
specify "13.2.2: Heuristic Expiration" do
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
specify "13.2.3: Age Calculations" do
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
specify "13.2.4: Expiration Calculations" do
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
specify "13.2.5: Disambiguating Expiration Values" do
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
specify "13.2.6: Disambiguating Multiple Responses" do
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
specify "13.3: Validation Model" do
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
specify "13.3.1: Last-Modified Dates" do
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
specify "13.3.2: Entity Tag Cache Validators" do
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
specify "13.3.3: Weak and Strong Validators" do
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
specify "13.3.4: Rules for When to Use Entity Tags and Last-Modified Dates" do
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
specify "13.3.5: Non-validating Conditionals" do
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
specify "13.4: Response Cacheability" do
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
specify "13.5: Constructing Responses From Caches" do
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
specify "13.5.1: End-to-end and Hop-by-hop Headers" do
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
specify "13.5.2: Non-modifiable Headers" do
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
specify "13.5.3: Combining Headers" do
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
specify "13.5.4: Combining Byte Ranges" do
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
specify "13.6: Caching Negotiated Responses" do
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
specify "13.7: Shared and Non-Shared Caches" do
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
specify "13.8: Errors or Incomplete Response Cache Behavior" do
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
specify "13.9: Side Effects of GET and HEAD" do
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
specify "13.10: Invalidation After Updates or Deletions" do
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
specify "13.11: Write-Through Mandatory" do
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
specify "13.12: Cache Replacement" do
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
specify "13.13: History Lists" do
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
require 'rfuzz/session'
|
|
2
|
+
|
|
3
|
+
context "8: Connections" do
|
|
4
|
+
setup do
|
|
5
|
+
@sess = RFuzz::Session.new :host => "localhost", :port => 3000
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
specify "8.1: Persistent Connections" do
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
specify "8.1.1: Purpose" do
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
specify "8.1.2: Overall Operation" do
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
specify "8.1.3: Proxy Servers" do
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
specify "8.1.4: Practical Considerations" do
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
specify "8.2: Message Transmission Requirements" do
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
specify "8.2.1: Persistent Connections and Flow Control" do
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
specify "8.2.2: Monitoring Connections for Error Status Messages" do
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
specify "8.2.3: Use of the 100 (Continue) Status" do
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
specify "8.2.4: Client Behavior if Server Prematurely Closes Connection" do
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'rfuzz/session'
|
|
2
|
+
|
|
3
|
+
context "12: Content Negotiation" do
|
|
4
|
+
setup do
|
|
5
|
+
@sess = RFuzz::Session.new :host => "localhost", :port => 3000
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
specify "12.1: Server-driven Negotiation" do
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
specify "12.2: Agent-driven Negotiation" do
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
specify "12.3: Transparent Negotiation" do
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require 'rfuzz/session'
|
|
2
|
+
|
|
3
|
+
context "7: Entity" do
|
|
4
|
+
setup do
|
|
5
|
+
@sess = RFuzz::Session.new :host => "localhost", :port => 3000
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
specify "7.1: Entity Header Fields" do
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
specify "7.2: Entity Body" do
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
specify "7.2.1: Type" do
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
specify "7.2.2: Entity Length" do
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
end
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
require 'rfuzz/session'
|
|
2
|
+
|
|
3
|
+
context "14: Header Field Definitions" do
|
|
4
|
+
setup do
|
|
5
|
+
@sess = RFuzz::Session.new :host => "localhost", :port => 3000
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
specify "14.1: Accept" do
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
specify "14.2: Accept-Charset" do
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
specify "14.3: Accept-Encoding" do
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
specify "14.4: Accept-Language" do
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
specify "14.5: Accept-Ranges" do
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
specify "14.6: Age" do
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
specify "14.7: Allow" do
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
specify "14.8: Authorization" do
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
specify "14.9: Cache-Control" do
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
specify "14.9.1: What is Cacheable" do
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
specify "14.9.2: What May be Stored by Caches" do
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
specify "14.9.3: Modifications of the Basic Expiration Mechanism" do
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
specify "14.9.4: Cache Revalidation and Reload Controls" do
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
specify "14.9.5: No-Transform Directive" do
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
specify "14.9.6: Cache Control Extensions" do
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
specify "14.10: Connection" do
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
specify "14.11: Content-Encoding" do
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
specify "14.12: Content-Language" do
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
specify "14.13: Content-Length" do
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
specify "14.14: Content-Location" do
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
specify "14.15: Content-MD5" do
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
specify "14.16: Content-Range" do
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
specify "14.17: Content-Type" do
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
specify "14.18: Date" do
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
specify "14.18.1: Clockless Origin Server Operation" do
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
specify "14.19: ETag" do
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
specify "14.20: Expect" do
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
specify "14.21: Expires" do
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
specify "14.22: From" do
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
specify "14.23: Host" do
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
specify "14.24: If-Match" do
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
specify "14.25: If-Modified-Since" do
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
specify "14.26: If-None-Match" do
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
specify "14.27: If-Range" do
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
specify "14.28: If-Unmodified-Since" do
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
specify "14.29: Last-Modified" do
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
specify "14.30: Location" do
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
specify "14.31: Max-Forwards" do
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
specify "14.32: Pragma" do
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
specify "14.33: Proxy-Authenticate" do
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
specify "14.34: Proxy-Authorization" do
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
specify "14.35: Range" do
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
specify "14.35.1: Byte Ranges" do
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
specify "14.35.2: Range Retrieval Requests" do
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
specify "14.36: Referer" do
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
specify "14.37: Retry-After" do
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
specify "14.38: Server" do
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
specify "14.39: TE" do
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
specify "14.40: Trailer" do
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
specify "14.41: Transfer-Encoding" do
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
specify "14.42: Upgrade" do
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
specify "14.43: User-Agent" do
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
specify "14.44: Vary" do
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
specify "14.45: Via" do
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
specify "14.46: Warning" do
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
specify "14.47: WWW-Authenticate" do
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
end
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
require 'rfuzz/session'
|
|
2
|
+
|
|
3
|
+
context "4: HTTP Message" do
|
|
4
|
+
setup do
|
|
5
|
+
@sess = RFuzz::Session.new :host => "localhost", :port => 3000
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
specify "4.1: Message Types" do
|
|
9
|
+
# In the interest of robustness, servers SHOULD ignore any empty line(s)
|
|
10
|
+
# received where a Request-Line is expected.
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
specify "4.2: Message Headers" do
|
|
15
|
+
# The field value MAY be preceded by any amount of LWS, though a single SP
|
|
16
|
+
# is preferred.
|
|
17
|
+
|
|
18
|
+
# leading or trailing LWS MAY be removed without changing the semantics of
|
|
19
|
+
# the field value
|
|
20
|
+
|
|
21
|
+
# Any LWS that occurs between field-content MAY be replaced with a single
|
|
22
|
+
# SP before interpreting the field value or forwarding the message
|
|
23
|
+
# downstream.
|
|
24
|
+
# RANT: WTF, so the values basically have to be quoted to prevent this?
|
|
25
|
+
|
|
26
|
+
# Multiple message-header fields with the same field-name MAY be present in
|
|
27
|
+
# a message if and only if the entire field-value for that header field is
|
|
28
|
+
# defined as a comma-separated list
|
|
29
|
+
|
|
30
|
+
# It MUST be possible to combine the multiple header fields into one
|
|
31
|
+
# "field-name: field-value" pair
|
|
32
|
+
|
|
33
|
+
# a proxy MUST NOT change the order of these field values when a message is
|
|
34
|
+
# forwarded
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
specify "4.3: Message Body" do
|
|
39
|
+
# Transfer-Encoding MUST be used to indicate any transfer-codings applied
|
|
40
|
+
# by an application to ensure safe and proper transfer of the message
|
|
41
|
+
|
|
42
|
+
# Transfer-Encoding MAY be added or removed by any application along the
|
|
43
|
+
# request/response chain
|
|
44
|
+
|
|
45
|
+
# A message-body MUST NOT be included in a request if the specification of
|
|
46
|
+
# the request method (section 5.1.1) does not allow sending an entity-body
|
|
47
|
+
# in requests.
|
|
48
|
+
|
|
49
|
+
# A server SHOULD read and forward a message-body on any request
|
|
50
|
+
|
|
51
|
+
# if the request method does not include defined semantics for an
|
|
52
|
+
# entity-body, then the message-body SHOULD be ignored when handling the
|
|
53
|
+
# request
|
|
54
|
+
|
|
55
|
+
# All responses to the HEAD request method MUST NOT include a message-body,
|
|
56
|
+
# even though the presence of entity- header fields might lead one to
|
|
57
|
+
# believe they do
|
|
58
|
+
|
|
59
|
+
# All 1xx (informational), 204 (no content), and 304 (not modified)
|
|
60
|
+
# responses MUST NOT include a message-body
|
|
61
|
+
|
|
62
|
+
# All other responses do include a message-body, although it MAY be of zero
|
|
63
|
+
# length.
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
specify "4.4: Message Length" do
|
|
68
|
+
# The Content-Length header field MUST NOT be sent if these two lengths are
|
|
69
|
+
# different (entity-length & transfer-length)
|
|
70
|
+
|
|
71
|
+
# If a message is received with both a Transfer-Encoding header field and a
|
|
72
|
+
# Content-Length header field, the latter MUST be ignored.
|
|
73
|
+
|
|
74
|
+
# "multipart/byteranges" media type MUST NOT be used unless the sender
|
|
75
|
+
# knows that the recipient can parse it
|
|
76
|
+
|
|
77
|
+
# Closing the connection cannot be used to indicate the end of a request
|
|
78
|
+
# body, since that would leave no possibility for the server to send back a
|
|
79
|
+
# response.
|
|
80
|
+
|
|
81
|
+
# HTTP/1.1 requests containing a message-body MUST include a valid
|
|
82
|
+
# Content-Length header field unless the server is known to be HTTP/1.1
|
|
83
|
+
# compliant
|
|
84
|
+
|
|
85
|
+
# If a request contains a message-body and a Content-Length is not given,
|
|
86
|
+
# the server SHOULD respond with 400 (bad request) if it cannot determine
|
|
87
|
+
# the length of the message, or with 411 (length required) if it wishes to
|
|
88
|
+
# insist on receiving a valid Content-Length.
|
|
89
|
+
|
|
90
|
+
# All HTTP/1.1 applications that receive entities MUST accept the "chunked"
|
|
91
|
+
# transfer-coding (section 3.6)
|
|
92
|
+
# RANT: Applications meaning what? clients? servers? both?
|
|
93
|
+
|
|
94
|
+
# Messages MUST NOT include both a Content-Length header field and a
|
|
95
|
+
# non-identity transfer-coding.
|
|
96
|
+
|
|
97
|
+
# If the message does include a non- identity transfer-coding, the
|
|
98
|
+
# Content-Length MUST be ignored. RANT: They already said that, must be
|
|
99
|
+
# really important.
|
|
100
|
+
#
|
|
101
|
+
# [Content-Length in messages which allow it] MUST exactly match the number
|
|
102
|
+
# of OCTETs in the message-body.
|
|
103
|
+
|
|
104
|
+
# HTTP/1.1 user agents MUST notify the user when an invalid length is
|
|
105
|
+
# received and detected.
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
specify "4.5: General Header Fields" do
|
|
110
|
+
# These apply to both requests and responses:
|
|
111
|
+
# general-header = Cache-Control ; Section 14.9
|
|
112
|
+
# | Connection ; Section 14.10
|
|
113
|
+
# | Date ; Section 14.18
|
|
114
|
+
# | Pragma ; Section 14.32
|
|
115
|
+
# | Trailer ; Section 14.40
|
|
116
|
+
# | Transfer-Encoding ; Section 14.41
|
|
117
|
+
# | Upgrade ; Section 14.42
|
|
118
|
+
# | Via ; Section 14.45
|
|
119
|
+
# | Warning ; Section 14.46
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
require 'rfuzz/session'
|
|
2
|
+
|
|
3
|
+
context "9: Method Definitions" do
|
|
4
|
+
setup do
|
|
5
|
+
@sess = RFuzz::Session.new :host => "localhost", :port => 3000
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
specify "9.1: Safe and Idempotent Methods" do
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
specify "9.1.1: Safe Methods" do
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
specify "9.1.2: Idempotent Methods" do
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
specify "9.2: OPTIONS" do
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
specify "9.3: GET" do
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
specify "9.4: HEAD" do
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
specify "9.5: POST" do
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
specify "9.6: PUT" do
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
specify "9.7: DELETE" do
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
specify "9.8: TRACE" do
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
specify "9.9: CONNECT" do
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
end
|