joebadmo-rack-test 0.6.1

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.
@@ -0,0 +1,66 @@
1
+ require "rubygems"
2
+ require "bundler/setup"
3
+
4
+ require "rack"
5
+ require "rspec"
6
+
7
+ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
8
+
9
+ require "rack/test"
10
+ require File.dirname(__FILE__) + "/fixtures/fake_app"
11
+
12
+ RSpec.configure do |config|
13
+ config.mock_with :rspec
14
+ config.include Rack::Test::Methods
15
+
16
+ def app
17
+ Rack::Lint.new(Rack::Test::FakeApp.new)
18
+ end
19
+
20
+ def check(*args)
21
+ end
22
+
23
+ end
24
+
25
+ shared_examples_for "any #verb methods" do
26
+ it "requests the URL using VERB" do
27
+ send(verb, "/")
28
+
29
+ check last_request.env["REQUEST_METHOD"].should == verb.upcase
30
+ last_response.should be_ok
31
+ end
32
+
33
+ it "uses the provided env" do
34
+ send(verb, "/", {}, { "HTTP_USER_AGENT" => "Rack::Test" })
35
+ last_request.env["HTTP_USER_AGENT"].should == "Rack::Test"
36
+ end
37
+
38
+ it "yields the response to a given block" do
39
+ yielded = false
40
+
41
+ send(verb, "/") do |response|
42
+ response.should be_ok
43
+ yielded = true
44
+ end
45
+
46
+ yielded.should be_true
47
+ end
48
+
49
+ it "sets the HTTP_HOST header with port" do
50
+ send(verb, "http://example.org:8080/uri")
51
+ last_request.env["HTTP_HOST"].should == "example.org:8080"
52
+ end
53
+
54
+ it "sets the HTTP_HOST header without port" do
55
+ send(verb, "/uri")
56
+ last_request.env["HTTP_HOST"].should == "example.org"
57
+ end
58
+
59
+ context "for a XHR" do
60
+ it "sends XMLHttpRequest for the X-Requested-With header" do
61
+ send(verb, "/", {}, { :xhr => true })
62
+ last_request.env["HTTP_X_REQUESTED_WITH"].should == "XMLHttpRequest"
63
+ last_request.should be_xhr
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,9 @@
1
+ RSpec::Matchers.define :have_body do |expected|
2
+ match do |response|
3
+ response.body.should == expected
4
+ end
5
+
6
+ description do
7
+ "have body #{expected.inspect}"
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ RSpec::Matchers.define :be_challenge do
2
+ match do |actual_response|
3
+ actual_response.status == 401 &&
4
+ actual_response['WWW-Authenticate'] =~ /^Digest / &&
5
+ actual_response.body.empty?
6
+ end
7
+
8
+ description do
9
+ "a HTTP Digest challenge response"
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: joebadmo-rack-test
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Bryan Helmkamp
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-07-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rack
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '1.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
30
+ description: ! 'Rack::Test is a small, simple testing API for Rack apps. It can be
31
+ used on its
32
+
33
+ own or as a reusable starting point for Web frameworks and testing libraries
34
+
35
+ to build on. Most of its initial functionality is an extraction of Merb 1.0''s
36
+
37
+ request helpers feature.'
38
+ email: bryan@brynary.com
39
+ executables: []
40
+ extensions: []
41
+ extra_rdoc_files:
42
+ - README.rdoc
43
+ - MIT-LICENSE.txt
44
+ files:
45
+ - .document
46
+ - .gitignore
47
+ - Gemfile
48
+ - Gemfile.lock
49
+ - History.txt
50
+ - MIT-LICENSE.txt
51
+ - README.rdoc
52
+ - Rakefile
53
+ - Thorfile
54
+ - lib/rack/mock_session.rb
55
+ - lib/rack/test.rb
56
+ - lib/rack/test/cookie_jar.rb
57
+ - lib/rack/test/methods.rb
58
+ - lib/rack/test/mock_digest_request.rb
59
+ - lib/rack/test/uploaded_file.rb
60
+ - lib/rack/test/utils.rb
61
+ - rack-test.gemspec
62
+ - spec/fixtures/bar.txt
63
+ - spec/fixtures/config.ru
64
+ - spec/fixtures/fake_app.rb
65
+ - spec/fixtures/foo.txt
66
+ - spec/rack/test/cookie_spec.rb
67
+ - spec/rack/test/digest_auth_spec.rb
68
+ - spec/rack/test/multipart_spec.rb
69
+ - spec/rack/test/uploaded_file_spec.rb
70
+ - spec/rack/test/utils_spec.rb
71
+ - spec/rack/test_spec.rb
72
+ - spec/spec_helper.rb
73
+ - spec/support/matchers/body.rb
74
+ - spec/support/matchers/challenge.rb
75
+ homepage: http://github.com/brynary/rack-test
76
+ licenses: []
77
+ post_install_message:
78
+ rdoc_options: []
79
+ require_paths:
80
+ - lib
81
+ required_ruby_version: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ requirements: []
94
+ rubyforge_project: rack-test
95
+ rubygems_version: 1.8.24
96
+ signing_key:
97
+ specification_version: 3
98
+ summary: Simple testing API built on Rack
99
+ test_files:
100
+ - spec/fixtures/fake_app.rb
101
+ - spec/rack/test/cookie_spec.rb
102
+ - spec/rack/test/digest_auth_spec.rb
103
+ - spec/rack/test/multipart_spec.rb
104
+ - spec/rack/test/uploaded_file_spec.rb
105
+ - spec/rack/test/utils_spec.rb
106
+ - spec/rack/test_spec.rb
107
+ - spec/spec_helper.rb
108
+ - spec/support/matchers/body.rb
109
+ - spec/support/matchers/challenge.rb
110
+ has_rdoc: