Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
R
ruby-http-parser.rb
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Debian Ruby Team
ruby-http-parser.rb
Commits
4770d4b6
Commit
4770d4b6
authored
10 years ago
by
Balasankar C
Browse files
Options
Downloads
Patches
Plain Diff
Make tests run
parent
07314e02
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
debian/patches/0005-tweak-to-support-rspec3.patch
+364
-0
364 additions, 0 deletions
debian/patches/0005-tweak-to-support-rspec3.patch
debian/patches/series
+1
-0
1 addition, 0 deletions
debian/patches/series
debian/ruby-tests.rake
+11
-3
11 additions, 3 deletions
debian/ruby-tests.rake
with
376 additions
and
3 deletions
debian/patches/0005-tweak-to-support-rspec3.patch
0 → 100644
+
364
−
0
View file @
4770d4b6
Description: Tweak tests to support RSpec3
Tests were using old syntax which gave errors and deprecation warnings with
RSpec 3. Patched them to use the new syntax.
Author: Balasankar C <balasankarc@autistici.org>
Last-Update: 2015-07-20
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/spec/parser_spec.rb
+++ b/spec/parser_spec.rb
@@ -21,24 +21,24 @@
end
it "should have initial state" do
- @parser.headers.should be_nil
+ expect(@parser.headers).to be_nil
- @parser.http_version.should be_nil
- @parser.http_method.should be_nil
- @parser.status_code.should be_nil
+ expect(@parser.http_version).to be_nil
+ expect(@parser.http_method).to be_nil
+ expect(@parser.status_code).to be_nil
- @parser.request_url.should be_nil
+ expect(@parser.request_url).to be_nil
- @parser.header_value_type.should == :mixed
+ expect(@parser.header_value_type).to eq(:mixed)
end
it "should allow us to set the header value type" do
[:mixed, :arrays, :strings].each do |type|
@parser.header_value_type = type
- @parser.header_value_type.should == type
+ expect(@parser.header_value_type).to eq(type)
parser_tmp = HTTP::Parser.new(nil, type)
- parser_tmp.header_value_type.should == type
+ expect(parser_tmp.header_value_type).to eq(type)
end
end
@@ -47,16 +47,16 @@
HTTP::Parser.default_header_value_type = type
parser = HTTP::Parser.new
- parser.header_value_type.should == type
+ expect(parser.header_value_type).to eq(type)
end
end
it "should throw an Argument Error if header value type is invalid" do
- proc{ @parser.header_value_type = 'bob' }.should raise_error(ArgumentError)
+ expect(proc{ @parser.header_value_type = 'bob' }).to raise_error(ArgumentError)
end
it "should throw an Argument Error if default header value type is invalid" do
- proc{ HTTP::Parser.default_header_value_type = 'bob' }.should raise_error(ArgumentError)
+ expect(proc{ HTTP::Parser.default_header_value_type = 'bob' }).to raise_error(ArgumentError)
end
it "should implement basic api" do
@@ -69,26 +69,26 @@
"\r\n" +
"World"
- @started.should be_true
- @done.should be_true
+ expect(@started).to be_truthy
+ expect(@done).to be_truthy
- @parser.http_major.should == 1
- @parser.http_minor.should == 1
- @parser.http_version.should == [1,1]
- @parser.http_method.should == 'GET'
- @parser.status_code.should be_nil
-
- @parser.request_url.should == '/test?ok=1'
-
- @parser.headers.should == @headers
- @parser.headers['User-Agent'].should == 'curl/7.18.0'
- @parser.headers['Host'].should == '0.0.0.0:5000'
+ expect(@parser.http_major).to eq(1)
+ expect(@parser.http_minor).to eq(1)
+ expect(@parser.http_version).to eq([1,1])
+ expect(@parser.http_method).to eq('GET')
+ expect(@parser.status_code).to be_nil
+
+ expect(@parser.request_url).to eq('/test?ok=1')
+
+ expect(@parser.headers).to eq(@headers)
+ expect(@parser.headers['User-Agent']).to eq('curl/7.18.0')
+ expect(@parser.headers['Host']).to eq('0.0.0.0:5000')
- @body.should == "World"
+ expect(@body).to eq("World")
end
it "should raise errors on invalid data" do
- proc{ @parser << "BLAH" }.should raise_error(HTTP::Parser::Error)
+ expect(proc{ @parser << "BLAH" }).to raise_error(HTTP::Parser::Error)
end
it "should abort parser via callback" do
@@ -102,33 +102,33 @@
bytes = @parser << data
- bytes.should == 37
- data[bytes..-1].should == 'World'
+ expect(bytes).to eq(37)
+ expect(data[bytes..-1]).to eq('World')
- @headers.should == {'Content-Length' => '5'}
- @body.should be_empty
- @done.should be_false
+ expect(@headers).to eq({'Content-Length' => '5'})
+ expect(@body).to be_empty
+ expect(@done).to be_falsey
end
it "should reset to initial state" do
@parser << "GET / HTTP/1.0\r\n\r\n"
- @parser.http_method.should == 'GET'
- @parser.http_version.should == [1,0]
+ expect(@parser.http_method).to eq('GET')
+ expect(@parser.http_version).to eq([1,0])
- @parser.request_url.should == '/'
+ expect(@parser.request_url).to eq('/')
- @parser.reset!.should be_true
+ expect(@parser.reset!).to be_truthy
- @parser.http_version.should be_nil
- @parser.http_method.should be_nil
- @parser.status_code.should be_nil
+ expect(@parser.http_version).to be_nil
+ expect(@parser.http_method).to be_nil
+ expect(@parser.status_code).to be_nil
- @parser.request_url.should be_nil
+ expect(@parser.request_url).to be_nil
end
it "should optionally reset parser state on no-body responses" do
- @parser.reset!.should be_true
+ expect(@parser.reset!).to be_truthy
@head, @complete = 0, 0
@parser.on_headers_complete = proc {|h| @head += 1; :reset }
@@ -138,21 +138,21 @@
head_response = "HTTP/1.1 200 OK\r\nContent-Length:10\r\n\r\n"
@parser << head_response
- @head.should == 1
- @complete.should == 1
+ expect(@head).to eq(1)
+ expect(@complete).to eq(1)
@parser << head_response
- @head.should == 2
- @complete.should == 2
+ expect(@head).to eq(2)
+ expect(@complete).to eq(2)
end
it "should retain callbacks after reset" do
- @parser.reset!.should be_true
+ expect(@parser.reset!).to be_truthy
@parser << "GET / HTTP/1.0\r\n\r\n"
- @started.should be_true
- @headers.should == {}
- @done.should be_true
+ expect(@started).to be_truthy
+ expect(@headers).to eq({})
+ expect(@done).to be_truthy
end
it "should parse headers incrementally" do
@@ -166,10 +166,10 @@
@parser << chunk
end
- @parser.headers.should == {
+ expect(@parser.headers).to eq({
'Header1' => 'value 1',
'Header2' => 'value 2'
- }
+ })
end
it "should handle multiple headers using strings" do
@@ -181,7 +181,7 @@
"Set-Cookie: NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly\r\n" +
"\r\n"
- @parser.headers["Set-Cookie"].should == "PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com, NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly"
+ expect(@parser.headers["Set-Cookie"]).to eq("PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com, NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly")
end
it "should handle multiple headers using strings" do
@@ -193,10 +193,10 @@
"Set-Cookie: NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly\r\n" +
"\r\n"
- @parser.headers["Set-Cookie"].should == [
+ expect(@parser.headers["Set-Cookie"]).to eq([
"PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com",
"NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly"
- ]
+ ])
end
it "should handle multiple headers using mixed" do
@@ -208,10 +208,10 @@
"Set-Cookie: NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly\r\n" +
"\r\n"
- @parser.headers["Set-Cookie"].should == [
+ expect(@parser.headers["Set-Cookie"]).to eq([
"PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com",
"NID=46jSHxPM; path=/; domain=.bob.com; HttpOnly"
- ]
+ ])
end
it "should handle a single cookie using mixed" do
@@ -222,23 +222,23 @@
"Set-Cookie: PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com\r\n" +
"\r\n"
- @parser.headers["Set-Cookie"].should == "PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com"
+ expect(@parser.headers["Set-Cookie"]).to eq("PREF=ID=a7d2c98; expires=Fri, 05-Apr-2013 05:00:45 GMT; path=/; domain=.bob.com")
end
it "should support alternative api" do
callbacks = double('callbacks')
- callbacks.stub(:on_message_begin){ @started = true }
- callbacks.stub(:on_headers_complete){ |e| @headers = e }
- callbacks.stub(:on_body){ |chunk| @body << chunk }
- callbacks.stub(:on_message_complete){ @done = true }
+ allow(callbacks).to receive(:on_message_begin){ @started = true }
+ allow(callbacks).to receive(:on_headers_complete){ |e| @headers = e }
+ allow(callbacks).to receive(:on_body){ |chunk| @body << chunk }
+ allow(callbacks).to receive(:on_message_complete){ @done = true }
@parser = HTTP::Parser.new(callbacks)
@parser << "GET / HTTP/1.0\r\n\r\n"
- @started.should be_true
- @headers.should == {}
- @body.should == ''
- @done.should be_true
+ expect(@started).to be_truthy
+ expect(@headers).to eq({})
+ expect(@body).to eq('')
+ expect(@done).to be_truthy
end
it "should ignore extra content beyond specified length" do
@@ -249,8 +249,8 @@
"hello" +
" \n"
- @body.should == 'hello'
- @done.should be_true
+ expect(@body).to eq('hello')
+ expect(@done).to be_truthy
end
it 'sets upgrade_data if available' do
@@ -260,8 +260,8 @@
"Upgrade: WebSocket\r\n\r\n" +
"third key data"
- @parser.upgrade?.should be_true
- @parser.upgrade_data.should == 'third key data'
+ expect(@parser.upgrade?).to be_truthy
+ expect(@parser.upgrade_data).to eq('third key data')
end
it 'sets upgrade_data to blank if un-available' do
@@ -270,8 +270,8 @@
"Connection: Upgrade\r\n" +
"Upgrade: WebSocket\r\n\r\n"
- @parser.upgrade?.should be_true
- @parser.upgrade_data.should == ''
+ expect(@parser.upgrade?).to be_truthy
+ expect(@parser.upgrade_data).to eq('')
end
it 'should stop parsing headers when instructed' do
@@ -285,13 +285,13 @@
@parser.on_headers_complete = proc { |e| :stop }
offset = (@parser << request)
- @parser.upgrade?.should be_true
- @parser.upgrade_data.should == ''
- offset.should == request.length
+ expect(@parser.upgrade?).to be_truthy
+ expect(@parser.upgrade_data).to eq('')
+ expect(offset).to eq(request.length)
end
it "should execute on_body on requests with no content-length" do
- @parser.reset!.should be_true
+ expect(@parser.reset!).to be_truthy
@head, @complete, @body = 0, 0, 0
@parser.on_headers_complete = proc {|h| @head += 1 }
@@ -302,9 +302,9 @@
@parser << head_response
@parser << ''
- @head.should == 1
- @complete.should == 1
- @body.should == 1
+ expect(@head).to eq(1)
+ expect(@complete).to eq(1)
+ expect(@body).to eq(1)
end
@@ -316,12 +316,12 @@
it "should parse #{type}: #{test['name']}" do
@parser << test['raw']
- @parser.http_method.should == test['method']
- @parser.keep_alive?.should == test['should_keep_alive']
+ expect(@parser.http_method).to eq(test['method'])
+ expect(@parser.keep_alive?).to eq(test['should_keep_alive'])
if test.has_key?('upgrade') and test['upgrade'] != 0
- @parser.upgrade?.should be_true
- @parser.upgrade_data.should == test['upgrade']
+ expect(@parser.upgrade?).to be_truthy
+ expect(@parser.upgrade_data).to eq(test['upgrade'])
end
fields = %w[
@@ -340,14 +340,14 @@
end
fields.each do |field|
- @parser.send(field).should == test[field]
+ expect(@parser.send(field)).to eq(test[field])
end
- @headers.size.should == test['num_headers']
- @headers.should == test['headers']
+ expect(@headers.size).to eq(test['num_headers'])
+ expect(@headers).to eq(test['headers'])
- @body.should == test['body']
- @body.size.should == test['body_size'] if test['body_size']
+ expect(@body).to eq(test['body'])
+ expect(@body.size).to eq(test['body_size']) if test['body_size']
end
end
end
This diff is collapsed.
Click to expand it.
debian/patches/series
+
1
−
0
View file @
4770d4b6
...
...
@@ -2,3 +2,4 @@
0002-Remove-git-ls-files-call-in-gemspec.patch
0003-Build-with-system-libhttp-parser.patch
0004-Do-not-overload-loadpath.patch
0005-tweak-to-support-rspec3.patch
This diff is collapsed.
Click to expand it.
debian/ruby-tests.rake
+
11
−
3
View file @
4770d4b6
require
"
rspec/core/rake_task
"
require
'
rspec/core/rake_task
'
RSpec
::
Core
::
RakeTask
.
new
(
:spec
)
do
|
t
|
t
.
r
spec
_opts
=
%w(-fs -c)
RSpec
::
Core
::
RakeTask
.
new
(
:spec
)
do
|
spec
|
spec
.
pattern
=
'./spec/**/*_spec.rb'
end
task
:default
=>
:spec
#require "rspec/core/rake_task"
#RSpec::Core::RakeTask.new(:spec) do |t|
#t.rspec_opts = %w(-fs -c)
#end
#task :default => :spec
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment