httpspec_simple 0.1.5 → 0.1.6

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.
@@ -13,6 +13,20 @@ module HttpspecSimple
13
13
  end
14
14
  end
15
15
 
16
+ RSpec::Matchers.define :be_http_redirect do
17
+ match do |actual|
18
+ actual.status == '301' || actual.status == '302'
19
+ end
20
+
21
+ failure_message_for_should do |actual|
22
+ "expected: 301 or 302\n got: #{actual.status}"
23
+ end
24
+
25
+ failure_message_for_should_not do |actual|
26
+ "#{actual.to_s} would not be http redirect"
27
+ end
28
+ end
29
+
16
30
  RSpec::Matchers.define :respond_within do |expected|
17
31
  match do |actual|
18
32
  (@response_time = actual.response_time) < expected
@@ -16,7 +16,7 @@ module HttpspecSimple
16
16
  open_timeout_error = if Net.const_defined?(:OpenTimeout) then Net::OpenTimeout else Timeout::Error end
17
17
  read_timeout_error = if Net.const_defined?(:ReadTimeout) then Net::ReadTimeout else Timeout::Error end
18
18
  begin
19
- req = Net::HTTP::Get.new(@url.path)
19
+ req = Net::HTTP::Get.new(@url.request_uri)
20
20
  if (headers = opt[:headers] || Request.configuration.headers)
21
21
  headers.each {|k, v| req[k] = v }
22
22
  end
@@ -1,3 +1,3 @@
1
1
  module HttpspecSimple
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -11,6 +11,29 @@ describe 'custom matchers' do
11
11
  end
12
12
  end
13
13
 
14
+ describe '#be_http_redirect' do
15
+ it "should check status code 301" do
16
+ _, response = server_start('/' => Proc.new {|req, res|
17
+ res.status = '301'
18
+ }) do
19
+ response = request('/', :immediately => true)
20
+ end
21
+ expect {
22
+ response.should be_http_redirect
23
+ }.not_to raise_error
24
+ end
25
+ it "should check status code 302" do
26
+ _, response = server_start('/' => Proc.new {|req, res|
27
+ res.status = '302'
28
+ }) do
29
+ response = request('/', :immediately => true)
30
+ end
31
+ expect {
32
+ response.should be_http_redirect
33
+ }.not_to raise_error
34
+ end
35
+ end
36
+
14
37
  describe '#respond_within(num).seconds' do
15
38
  it "should check response time" do
16
39
  requests, response = server_start('/' => Proc.new {|req, res| sleep 2 }) do
@@ -121,4 +121,14 @@ describe HttpspecSimple::Request do
121
121
  user_agent_in_req_header.should == "my-agent"
122
122
  end
123
123
  end
124
+
125
+ it "should send get parameters" do
126
+ query = nil
127
+ server_start( '/' => Proc.new {|req, res|
128
+ query = req.query
129
+ } ) do
130
+ HttpspecSimple::Request.new('http://localhost:10080/?a=b')
131
+ end
132
+ query.should == {"a" => "b"}
133
+ end
124
134
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: httpspec_simple
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Koji NAKAMURA
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-07-25 00:00:00.000000000 Z
12
+ date: 2013-07-29 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rspec
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: bundler
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
@@ -41,15 +46,17 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rake
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  description: RSpec extension for HTTP request
@@ -77,26 +84,33 @@ files:
77
84
  homepage: https://github.com/kozy4324/httpspec_simple
78
85
  licenses:
79
86
  - MIT
80
- metadata: {}
81
87
  post_install_message:
82
88
  rdoc_options: []
83
89
  require_paths:
84
90
  - lib
85
91
  required_ruby_version: !ruby/object:Gem::Requirement
92
+ none: false
86
93
  requirements:
87
- - - '>='
94
+ - - ! '>='
88
95
  - !ruby/object:Gem::Version
89
96
  version: '0'
97
+ segments:
98
+ - 0
99
+ hash: -795099866452761345
90
100
  required_rubygems_version: !ruby/object:Gem::Requirement
101
+ none: false
91
102
  requirements:
92
- - - '>='
103
+ - - ! '>='
93
104
  - !ruby/object:Gem::Version
94
105
  version: '0'
106
+ segments:
107
+ - 0
108
+ hash: -795099866452761345
95
109
  requirements: []
96
110
  rubyforge_project:
97
- rubygems_version: 2.0.2
111
+ rubygems_version: 1.8.23
98
112
  signing_key:
99
- specification_version: 4
113
+ specification_version: 3
100
114
  summary: RSpec extension for HTTP request
101
115
  test_files:
102
116
  - spec/httpspec_simple/custom_matcher_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: db33f5f3e41b2c4f616e953846eae5e2f00b48f0
4
- data.tar.gz: 5426f6f894812dca68557c56bdf0afefe1eb8c96
5
- SHA512:
6
- metadata.gz: 9e3eb83571fedc704b066e8557dcb602241bd915a302d93f2a83c119a10873b5d67775bf7ecea8fabaa60a815806a85f47f7c903101d6bfa13d821bcb6361f6a
7
- data.tar.gz: 1dd470a183d6207a0f3190aa7e740db536d511cef82f96f6b7a9997a88ff3ce0edb23e49ceb1c2c449fd03f747355d6fe0aee2bd68f0771d14fdaca659d6d50e