httpi 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,15 +5,15 @@ describe HTTPI::Request do
5
5
  let(:request) { HTTPI::Request.new }
6
6
 
7
7
  describe ".new" do
8
- it "accepts a Hash of accessors to set" do
9
- request = HTTPI::Request.new :url => "http://example.com", :open_timeout => 30
8
+ it "should accept just a url" do
9
+ request = HTTPI::Request.new "http://example.com"
10
10
  request.url.should == URI("http://example.com")
11
- request.open_timeout.should == 30
12
11
  end
13
12
 
14
- it "accepts a Hash of authentication credentials to set" do
15
- request = HTTPI::Request.new :basic_auth => ["username", "password"]
16
- request.basic_auth.should == ["username", "password"]
13
+ it "should accept a Hash of accessors to set" do
14
+ request = HTTPI::Request.new :url => "http://example.com", :open_timeout => 30
15
+ request.url.should == URI("http://example.com")
16
+ request.open_timeout.should == 30
17
17
  end
18
18
  end
19
19
 
@@ -49,6 +49,29 @@ describe HTTPI::Request do
49
49
  end
50
50
  end
51
51
 
52
+ describe "#ssl" do
53
+ it "should return false if no request url was specified" do
54
+ request.should_not be_ssl
55
+ end
56
+
57
+ it "should return false if the request url does not start with https" do
58
+ request.url = "http://example.com"
59
+ request.should_not be_ssl
60
+ end
61
+
62
+ it "should return true if the request url starts with https" do
63
+ request.url = "https://example.com"
64
+ request.should be_ssl
65
+ end
66
+
67
+ context "with an explicit value" do
68
+ it "should return the value" do
69
+ request.ssl = true
70
+ request.should be_ssl
71
+ end
72
+ end
73
+ end
74
+
52
75
  describe "#headers" do
53
76
  it "lets you specify a Hash of HTTP request headers" do
54
77
  request.headers = { "Accept-Encoding" => "gzip" }
@@ -88,83 +111,25 @@ describe HTTPI::Request do
88
111
  end
89
112
  end
90
113
 
91
- describe "#basic_auth" do
92
- it "lets you specify the basic auth credentials" do
93
- request.basic_auth "username", "password"
94
- request.basic_auth.should == ["username", "password"]
95
- end
96
-
97
- it "also accepts an Array of credentials" do
98
- request.basic_auth ["username", "password"]
99
- request.basic_auth.should == ["username", "password"]
100
- end
101
-
102
- it "lets you reset the credentials" do
103
- request.basic_auth "username", "password"
104
- request.basic_auth.should == ["username", "password"]
105
-
106
- request.basic_auth nil
107
- request.basic_auth.should be_nil
108
- end
109
- end
110
-
111
- describe "#digest_auth" do
112
- it "lets you specify the digest auth credentials" do
113
- request.digest_auth "username", "password"
114
- request.digest_auth.should == ["username", "password"]
114
+ describe "#auth" do
115
+ it "should return the authentication object" do
116
+ request.auth.should be_an(HTTPI::Auth::Config)
115
117
  end
116
-
117
- it "also accepts an Array of credentials" do
118
- request.digest_auth ["username", "password"]
119
- request.digest_auth.should == ["username", "password"]
120
- end
121
-
122
- it "lets you reset the credentials" do
123
- request.digest_auth "username", "password"
124
- request.digest_auth.should == ["username", "password"]
125
118
 
126
- request.digest_auth nil
127
- request.digest_auth.should be_nil
119
+ it "should memoize the authentication object" do
120
+ request.auth.should equal(request.auth)
128
121
  end
129
122
  end
130
123
 
131
124
  describe "#auth?" do
132
- it "should return false unless any authentication credentials were specified" do
133
- request.auth?.should be_false
134
- end
135
-
136
- it "should return true if HTTP basic auth authentication credentials were specified" do
137
- request.basic_auth "username", "password"
125
+ it "should return true when auth credentials are specified" do
126
+ request.auth.basic "username", "password"
138
127
  request.auth?.should be_true
139
128
  end
140
129
 
141
- it "should return true if HTTP digest auth authentication credentials were specified" do
142
- request.digest_auth "username", "password"
143
- request.auth?.should be_true
144
- end
145
- end
146
-
147
- describe "#credentials" do
148
- it "return the credentials for HTTP basic auth" do
149
- request.basic_auth "username", "basic"
150
- request.credentials.should == ["username", "basic"]
151
- end
152
-
153
- it "return the credentials for HTTP digest auth" do
154
- request.digest_auth "username", "digest"
155
- request.credentials.should == ["username", "digest"]
130
+ it "should return false otherwise" do
131
+ request.auth?.should be_false
156
132
  end
157
133
  end
158
134
 
159
- describe "#auth_type" do
160
- it "should return :basic for HTTP basic auth" do
161
- request.basic_auth "username", "password"
162
- request.auth_type.should == :basic
163
- end
164
-
165
- it "should return :digest for HTTP basic auth" do
166
- request.digest_auth "username", "password"
167
- request.auth_type.should == :digest
168
- end
169
- end
170
135
  end
@@ -48,7 +48,7 @@ describe HTTPI do
48
48
  shared_examples_for "it works with HTTP basic auth" do
49
49
  it "and access a secured page" do
50
50
  request = HTTPI::Request.new :url => "http://test.webdav.org/auth-basic/"
51
- request.basic_auth @username, @password
51
+ request.auth.basic @username, @password
52
52
 
53
53
  response = HTTPI.get request, adapter
54
54
  response.body.should_not include(@error_message)
@@ -56,9 +56,9 @@ describe HTTPI do
56
56
  end
57
57
 
58
58
  shared_examples_for "it works with HTTP digest auth" do
59
- it "requires a username and password" do
59
+ it "and access a secured page" do
60
60
  request = HTTPI::Request.new :url => "http://test.webdav.org/auth-digest/"
61
- request.digest_auth @username, @password
61
+ request.auth.digest @username, @password
62
62
 
63
63
  response = HTTPI.get request, adapter
64
64
  response.body.should_not include(@error_message)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: httpi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 5
8
+ - 6
9
9
  - 0
10
- version: 0.5.0
10
+ version: 0.6.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Daniel Harrington
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-10-09 00:00:00 +02:00
19
+ date: 2010-10-15 00:00:00 +02:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -57,16 +57,14 @@ dependencies:
57
57
  requirement: &id003 !ruby/object:Gem::Requirement
58
58
  none: false
59
59
  requirements:
60
- - - "="
60
+ - - ~>
61
61
  - !ruby/object:Gem::Version
62
- hash: 62196431
62
+ hash: 15
63
63
  segments:
64
64
  - 2
65
65
  - 0
66
66
  - 0
67
- - beta
68
- - 22
69
- version: 2.0.0.beta.22
67
+ version: 2.0.0
70
68
  type: :development
71
69
  version_requirements: *id003
72
70
  - !ruby/object:Gem::Dependency
@@ -101,7 +99,7 @@ dependencies:
101
99
  version: 1.3.5
102
100
  type: :development
103
101
  version_requirements: *id005
104
- description: HTTPI provides a common interface for different HTTP libraries.
102
+ description: HTTPI provides a common interface for Ruby HTTP libraries.
105
103
  email: me@rubiii.com
106
104
  executables: []
107
105
 
@@ -122,16 +120,22 @@ files:
122
120
  - lib/httpi/adapter/httpclient.rb
123
121
  - lib/httpi/adapter/net_http.rb
124
122
  - lib/httpi/adapter.rb
123
+ - lib/httpi/auth/config.rb
124
+ - lib/httpi/auth/ssl.rb
125
125
  - lib/httpi/request.rb
126
126
  - lib/httpi/response.rb
127
127
  - lib/httpi/version.rb
128
128
  - lib/httpi.rb
129
+ - spec/fixtures/client_cert.pem
130
+ - spec/fixtures/client_key.pem
129
131
  - spec/fixtures/xml.gz
130
132
  - spec/fixtures/xml.xml
131
133
  - spec/httpi/adapter/curb_spec.rb
132
134
  - spec/httpi/adapter/httpclient_spec.rb
133
135
  - spec/httpi/adapter/net_http_spec.rb
134
136
  - spec/httpi/adapter_spec.rb
137
+ - spec/httpi/auth/config_spec.rb
138
+ - spec/httpi/auth/ssl_spec.rb
135
139
  - spec/httpi/httpi_spec.rb
136
140
  - spec/httpi/request_spec.rb
137
141
  - spec/httpi/response_spec.rb