Skip to content
Snippets Groups Projects
Commit 4770d4b6 authored by Balasankar C's avatar Balasankar C
Browse files

Make tests run

parent 07314e02
No related branches found
No related tags found
No related merge requests found
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
......@@ -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
require "rspec/core/rake_task"
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new(:spec) do |t|
t.rspec_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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment