shoulda-matchers 1.4.2 → 1.5.0
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.
- data/.travis.yml +11 -3
- data/Appraisals +3 -3
- data/Gemfile +1 -1
- data/Gemfile.lock +69 -70
- data/MIT-LICENSE +1 -1
- data/NEWS.md +22 -4
- data/README.md +3 -1
- data/Rakefile +9 -5
- data/features/step_definitions/rails_steps.rb +7 -7
- data/features/support/env.rb +1 -1
- data/gemfiles/3.0.gemfile +1 -1
- data/gemfiles/3.0.gemfile.lock +25 -22
- data/gemfiles/3.1.gemfile +1 -1
- data/gemfiles/3.1.gemfile.lock +27 -24
- data/gemfiles/3.2.gemfile +1 -1
- data/gemfiles/3.2.gemfile.lock +56 -52
- data/lib/shoulda/matchers/action_controller.rb +3 -2
- data/lib/shoulda/matchers/action_controller/assign_to_matcher.rb +10 -8
- data/lib/shoulda/matchers/action_controller/filter_param_matcher.rb +2 -4
- data/lib/shoulda/matchers/action_controller/redirect_to_matcher.rb +3 -4
- data/lib/shoulda/matchers/action_controller/render_template_matcher.rb +3 -4
- data/lib/shoulda/matchers/action_controller/render_with_layout_matcher.rb +6 -6
- data/lib/shoulda/matchers/action_controller/respond_with_content_type_matcher.rb +5 -2
- data/lib/shoulda/matchers/action_controller/respond_with_matcher.rb +2 -2
- data/lib/shoulda/matchers/action_controller/route_matcher.rb +12 -12
- data/lib/shoulda/matchers/action_controller/set_session_matcher.rb +3 -4
- data/lib/shoulda/matchers/action_controller/set_the_flash_matcher.rb +10 -11
- data/lib/shoulda/matchers/action_controller/strong_parameters_matcher.rb +121 -0
- data/lib/shoulda/matchers/action_mailer/have_sent_email_matcher.rb +7 -4
- data/lib/shoulda/matchers/active_model.rb +1 -1
- data/lib/shoulda/matchers/active_model/allow_mass_assignment_of_matcher.rb +8 -8
- data/lib/shoulda/matchers/active_model/allow_value_matcher.rb +5 -4
- data/lib/shoulda/matchers/active_model/disallow_value_matcher.rb +3 -3
- data/lib/shoulda/matchers/active_model/ensure_inclusion_of_matcher.rb +2 -2
- data/lib/shoulda/matchers/active_model/exception_message_finder.rb +0 -1
- data/lib/shoulda/matchers/active_model/helpers.rb +16 -7
- data/lib/shoulda/matchers/active_model/only_integer_matcher.rb +3 -3
- data/lib/shoulda/matchers/active_model/validate_confirmation_of_matcher.rb +8 -6
- data/lib/shoulda/matchers/active_model/validate_format_of_matcher.rb +19 -10
- data/lib/shoulda/matchers/active_model/validate_numericality_of_matcher.rb +4 -4
- data/lib/shoulda/matchers/active_model/validate_uniqueness_of_matcher.rb +19 -21
- data/lib/shoulda/matchers/active_model/validation_matcher.rb +7 -7
- data/lib/shoulda/matchers/active_model/validation_message_finder.rb +1 -1
- data/lib/shoulda/matchers/active_record/accept_nested_attributes_for_matcher.rb +5 -5
- data/lib/shoulda/matchers/active_record/association_matcher.rb +3 -3
- data/lib/shoulda/matchers/active_record/have_db_column_matcher.rb +11 -7
- data/lib/shoulda/matchers/active_record/have_db_index_matcher.rb +2 -2
- data/lib/shoulda/matchers/active_record/have_readonly_attribute_matcher.rb +5 -5
- data/lib/shoulda/matchers/active_record/query_the_database_matcher.rb +5 -2
- data/lib/shoulda/matchers/active_record/serialize_matcher.rb +3 -3
- data/lib/shoulda/matchers/assertion_error.rb +4 -1
- data/lib/shoulda/matchers/independent/delegate_matcher.rb +17 -7
- data/lib/shoulda/matchers/integrations/rspec.rb +19 -33
- data/lib/shoulda/matchers/version.rb +1 -1
- data/shoulda-matchers.gemspec +6 -4
- data/spec/shoulda/matchers/action_controller/assign_to_matcher_spec.rb +66 -0
- data/spec/shoulda/matchers/action_controller/filter_param_matcher_spec.rb +22 -0
- data/spec/shoulda/matchers/action_controller/redirect_to_matcher_spec.rb +42 -0
- data/spec/shoulda/matchers/action_controller/render_template_matcher_spec.rb +78 -0
- data/spec/shoulda/matchers/action_controller/render_with_layout_matcher_spec.rb +58 -0
- data/spec/shoulda/matchers/action_controller/respond_with_content_type_matcher_spec.rb +31 -0
- data/spec/shoulda/matchers/action_controller/respond_with_matcher_spec.rb +31 -0
- data/spec/shoulda/matchers/action_controller/route_matcher_spec.rb +65 -0
- data/spec/shoulda/matchers/action_controller/set_session_matcher_spec.rb +51 -0
- data/spec/shoulda/matchers/action_controller/set_the_flash_matcher_spec.rb +153 -0
- data/spec/shoulda/matchers/action_controller/strong_parameters_matcher_spec.rb +142 -0
- data/spec/shoulda/matchers/action_mailer/have_sent_email_spec.rb +324 -0
- data/spec/shoulda/matchers/active_model/allow_mass_assignment_of_matcher_spec.rb +111 -0
- data/spec/shoulda/matchers/active_model/allow_value_matcher_spec.rb +124 -0
- data/spec/shoulda/matchers/active_model/disallow_value_matcher_spec.rb +43 -0
- data/spec/shoulda/matchers/active_model/ensure_exclusion_of_matcher_spec.rb +74 -0
- data/spec/shoulda/matchers/active_model/ensure_inclusion_of_matcher_spec.rb +171 -0
- data/spec/shoulda/matchers/active_model/ensure_length_of_matcher_spec.rb +113 -0
- data/spec/shoulda/{active_model → matchers/active_model}/exception_message_finder_spec.rb +2 -2
- data/spec/shoulda/matchers/active_model/helpers_spec.rb +158 -0
- data/spec/shoulda/matchers/active_model/only_integer_matcher_spec.rb +52 -0
- data/spec/shoulda/matchers/active_model/validate_acceptance_of_matcher_spec.rb +41 -0
- data/spec/shoulda/matchers/active_model/validate_confirmation_of_matcher_spec.rb +41 -0
- data/spec/shoulda/matchers/active_model/validate_format_of_matcher_spec.rb +75 -0
- data/spec/shoulda/matchers/active_model/validate_numericality_of_matcher_spec.rb +73 -0
- data/spec/shoulda/matchers/active_model/validate_presence_of_matcher_spec.rb +127 -0
- data/spec/shoulda/matchers/active_model/validate_uniqueness_of_matcher_spec.rb +175 -0
- data/spec/shoulda/{active_model → matchers/active_model}/validation_message_finder_spec.rb +0 -1
- data/spec/shoulda/matchers/active_record/accept_nested_attributes_for_matcher_spec.rb +106 -0
- data/spec/shoulda/matchers/active_record/association_matcher_spec.rb +534 -0
- data/spec/shoulda/matchers/active_record/have_db_column_matcher_spec.rb +111 -0
- data/spec/shoulda/matchers/active_record/have_db_index_matcher_spec.rb +78 -0
- data/spec/shoulda/matchers/active_record/have_readonly_attributes_matcher_spec.rb +41 -0
- data/spec/shoulda/{active_record → matchers/active_record}/query_the_database_matcher_spec.rb +10 -10
- data/spec/shoulda/matchers/active_record/serialize_matcher_spec.rb +86 -0
- data/spec/shoulda/{independent → matchers/independent}/delegate_matcher_spec.rb +55 -34
- data/spec/spec_helper.rb +1 -2
- data/spec/support/active_model_versions.rb +4 -0
- data/spec/support/activemodel_helpers.rb +19 -0
- data/spec/support/controller_builder.rb +38 -12
- data/spec/support/model_builder.rb +8 -2
- metadata +106 -98
- data/spec/fixtures/addresses.yml +0 -3
- data/spec/fixtures/friendships.yml +0 -0
- data/spec/fixtures/posts.yml +0 -5
- data/spec/fixtures/products.yml +0 -0
- data/spec/fixtures/taggings.yml +0 -0
- data/spec/fixtures/tags.yml +0 -9
- data/spec/fixtures/users.yml +0 -6
- data/spec/shoulda/action_controller/assign_to_matcher_spec.rb +0 -63
- data/spec/shoulda/action_controller/filter_param_matcher_spec.rb +0 -20
- data/spec/shoulda/action_controller/redirect_to_matcher_spec.rb +0 -40
- data/spec/shoulda/action_controller/render_template_matcher_spec.rb +0 -69
- data/spec/shoulda/action_controller/render_with_layout_matcher_spec.rb +0 -55
- data/spec/shoulda/action_controller/respond_with_content_type_matcher_spec.rb +0 -28
- data/spec/shoulda/action_controller/respond_with_matcher_spec.rb +0 -83
- data/spec/shoulda/action_controller/route_matcher_spec.rb +0 -65
- data/spec/shoulda/action_controller/set_session_matcher_spec.rb +0 -46
- data/spec/shoulda/action_controller/set_the_flash_matcher_spec.rb +0 -130
- data/spec/shoulda/action_mailer/have_sent_email_spec.rb +0 -333
- data/spec/shoulda/active_model/allow_mass_assignment_of_matcher_spec.rb +0 -115
- data/spec/shoulda/active_model/allow_value_matcher_spec.rb +0 -131
- data/spec/shoulda/active_model/disallow_value_matcher_spec.rb +0 -65
- data/spec/shoulda/active_model/ensure_exclusion_of_matcher_spec.rb +0 -79
- data/spec/shoulda/active_model/ensure_inclusion_of_matcher_spec.rb +0 -181
- data/spec/shoulda/active_model/ensure_length_of_matcher_spec.rb +0 -138
- data/spec/shoulda/active_model/helpers_spec.rb +0 -129
- data/spec/shoulda/active_model/only_integer_matcher_spec.rb +0 -69
- data/spec/shoulda/active_model/validate_acceptance_of_matcher_spec.rb +0 -43
- data/spec/shoulda/active_model/validate_confirmation_of_matcher_spec.rb +0 -48
- data/spec/shoulda/active_model/validate_format_of_matcher_spec.rb +0 -79
- data/spec/shoulda/active_model/validate_numericality_of_matcher_spec.rb +0 -112
- data/spec/shoulda/active_model/validate_presence_of_matcher_spec.rb +0 -135
- data/spec/shoulda/active_model/validate_uniqueness_of_matcher_spec.rb +0 -154
- data/spec/shoulda/active_record/accept_nested_attributes_for_matcher_spec.rb +0 -84
- data/spec/shoulda/active_record/association_matcher_spec.rb +0 -642
- data/spec/shoulda/active_record/have_db_column_matcher_spec.rb +0 -185
- data/spec/shoulda/active_record/have_db_index_matcher_spec.rb +0 -105
- data/spec/shoulda/active_record/have_readonly_attributes_matcher_spec.rb +0 -46
- data/spec/shoulda/active_record/serialize_matcher_spec.rb +0 -81
data/spec/fixtures/addresses.yml
DELETED
File without changes
|
data/spec/fixtures/posts.yml
DELETED
data/spec/fixtures/products.yml
DELETED
File without changes
|
data/spec/fixtures/taggings.yml
DELETED
File without changes
|
data/spec/fixtures/tags.yml
DELETED
data/spec/fixtures/users.yml
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Shoulda::Matchers::ActionController::AssignToMatcher do
|
4
|
-
it "should include the actual class in the failure message" do
|
5
|
-
define_class(:WrongClass) do
|
6
|
-
def to_s
|
7
|
-
'wrong class'
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
controller = build_response { @var = WrongClass.new }
|
12
|
-
matcher = assign_to(:var).with_kind_of(Fixnum)
|
13
|
-
matcher.matches?(controller)
|
14
|
-
|
15
|
-
matcher.failure_message.should =~ /but got wrong class \(WrongClass\)$/
|
16
|
-
end
|
17
|
-
|
18
|
-
context "a controller that assigns to an instance variable" do
|
19
|
-
let(:controller) { build_response { @var = 'value' } }
|
20
|
-
|
21
|
-
it "should accept assigning to that variable" do
|
22
|
-
controller.should assign_to(:var)
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should accept assigning to that variable with the correct class" do
|
26
|
-
controller.should assign_to(:var).with_kind_of(String)
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should reject assigning to that variable with another class" do
|
30
|
-
controller.should_not assign_to(:var).with_kind_of(Fixnum)
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should accept assigning the correct value to that variable" do
|
34
|
-
controller.should assign_to(:var).with('value')
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should reject assigning another value to that variable" do
|
38
|
-
controller.should_not assign_to(:var).with('other')
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should reject assigning to another variable" do
|
42
|
-
controller.should_not assign_to(:other)
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should accept assigning to the same value in the test context" do
|
46
|
-
expected = 'value'
|
47
|
-
controller.should assign_to(:var).in_context(self).with { expected }
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should reject assigning to the another value in the test context" do
|
51
|
-
expected = 'other'
|
52
|
-
controller.should_not assign_to(:var).in_context(self).with { expected }
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
context "a controller that assigns a nil value to an instance variable" do
|
57
|
-
let(:controller) { build_response { @var = nil } }
|
58
|
-
|
59
|
-
it "should accept assigning to that variable" do
|
60
|
-
controller.should assign_to(:var)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Shoulda::Matchers::ActionController::FilterParamMatcher do
|
4
|
-
context "given parameter filters" do
|
5
|
-
before do
|
6
|
-
Rails.application.config.filter_parameters = [:secret]
|
7
|
-
end
|
8
|
-
|
9
|
-
it "should accept filtering that parameter" do
|
10
|
-
nil.should filter_param(:secret)
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should reject filtering another parameter" do
|
14
|
-
matcher = filter_param(:other)
|
15
|
-
matcher.matches?(nil).should be_false
|
16
|
-
matcher.failure_message.should include("Expected other to be filtered")
|
17
|
-
matcher.failure_message.should =~ /secret/
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Shoulda::Matchers::ActionController::RedirectToMatcher do
|
4
|
-
context "a controller that redirects" do
|
5
|
-
let(:controller) do
|
6
|
-
build_response { redirect_to '/some/url' }
|
7
|
-
end
|
8
|
-
|
9
|
-
it "accepts redirecting to that url" do
|
10
|
-
controller.should redirect_to('/some/url')
|
11
|
-
end
|
12
|
-
|
13
|
-
it "rejects redirecting to a different url" do
|
14
|
-
controller.should_not redirect_to('/some/other/url')
|
15
|
-
end
|
16
|
-
|
17
|
-
it "accepts redirecting to that url in a block" do
|
18
|
-
controller.should redirect_to('somewhere') { '/some/url' }
|
19
|
-
end
|
20
|
-
|
21
|
-
it "rejects redirecting to a different url in a block" do
|
22
|
-
controller.should_not redirect_to('somewhere else') { '/some/other/url' }
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
context "a controller that doesn't redirect" do
|
27
|
-
let(:controller) do
|
28
|
-
build_response { render :text => 'hello' }
|
29
|
-
end
|
30
|
-
|
31
|
-
it "rejects redirecting to a url" do
|
32
|
-
controller.should_not redirect_to('/some/url')
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
it "provides the correct description when provided a block" do
|
37
|
-
matcher = redirect_to('somewhere else') { '/some/other/url' }
|
38
|
-
matcher.description.should == 'redirect to somewhere else'
|
39
|
-
end
|
40
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Shoulda::Matchers::ActionController::RenderTemplateMatcher do
|
4
|
-
include ActionController::TemplateAssertions
|
5
|
-
|
6
|
-
context "a controller that renders a template" do
|
7
|
-
let(:controller) { build_response(:action => 'show') { render } }
|
8
|
-
|
9
|
-
it "accepts rendering that template" do
|
10
|
-
controller.should render_template(:show)
|
11
|
-
end
|
12
|
-
|
13
|
-
it "rejects rendering a different template" do
|
14
|
-
controller.should_not render_template(:index)
|
15
|
-
end
|
16
|
-
|
17
|
-
it "accepts rendering that template in the given context" do
|
18
|
-
controller.should render_template(:show).in_context(self)
|
19
|
-
end
|
20
|
-
|
21
|
-
it "rejects rendering a different template in the given context" do
|
22
|
-
controller.should_not render_template(:index).in_context(self)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
context "a controller that renders a partial" do
|
27
|
-
let(:controller) { build_response(:partial => '_customer') { render :partial => 'customer' } }
|
28
|
-
|
29
|
-
it "accepts rendering that partial" do
|
30
|
-
controller.should render_template(:partial => '_customer')
|
31
|
-
end
|
32
|
-
|
33
|
-
it "rejects rendering a different template" do
|
34
|
-
controller.should_not render_template(:partial => '_client')
|
35
|
-
end
|
36
|
-
|
37
|
-
it "accepts rendering that template in the given context" do
|
38
|
-
controller.should render_template(:partial => '_customer').in_context(self)
|
39
|
-
end
|
40
|
-
|
41
|
-
it "rejects rendering a different template in the given context" do
|
42
|
-
controller.should_not render_template(:partial => '_client').in_context(self)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
context "a controller that doesn't render partials" do
|
47
|
-
let(:controller) { build_response(:action => 'show') { render } }
|
48
|
-
|
49
|
-
it "should not render a partial" do
|
50
|
-
controller.should render_template(:partial => false)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
context "a controller that renders a partial several times" do
|
55
|
-
let(:controller) { build_response(:partial => '_customer') { render :partial => 'customer', :collection => [1,2] } }
|
56
|
-
|
57
|
-
it "accepts rendering that partial twice" do
|
58
|
-
controller.should render_template(:partial => '_customer', :count => 2)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
context "a controller that doesn't render a template" do
|
63
|
-
let(:controller) { build_response { render :nothing => true } }
|
64
|
-
|
65
|
-
it "rejects rendering a template" do
|
66
|
-
controller.should_not render_template(:show)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Shoulda::Matchers::ActionController::RenderWithLayoutMatcher do
|
4
|
-
include ActionController::TemplateAssertions
|
5
|
-
|
6
|
-
context "a controller that renders with a layout" do
|
7
|
-
let(:controller) { build_response { render :layout => 'wide' } }
|
8
|
-
|
9
|
-
before do
|
10
|
-
create_view('layouts/wide.html.erb', 'some content, <%= yield %>')
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should accept rendering with any layout" do
|
14
|
-
controller.should render_with_layout
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should accept rendering with that layout" do
|
18
|
-
controller.should render_with_layout(:wide)
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should reject rendering with another layout" do
|
22
|
-
controller.should_not render_with_layout(:other)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
context "a controller that renders without a layout" do
|
27
|
-
let(:controller) { build_response { render :layout => false } }
|
28
|
-
|
29
|
-
it "should reject rendering with a layout" do
|
30
|
-
controller.should_not render_with_layout
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
context "a controller that renders a partial" do
|
35
|
-
let(:controller) { build_response { render :partial => 'partial' } }
|
36
|
-
|
37
|
-
it "should reject rendering with a layout" do
|
38
|
-
controller.should_not render_with_layout
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
context "given a context with layouts" do
|
43
|
-
let(:layout) { 'happy' }
|
44
|
-
let(:controller) { build_response { render :layout => false } }
|
45
|
-
|
46
|
-
before do
|
47
|
-
@layouts = Hash.new(0)
|
48
|
-
@layouts[layout] = 1
|
49
|
-
end
|
50
|
-
|
51
|
-
it "should accept that layout in that context" do
|
52
|
-
controller.should render_with_layout(layout).in_context(self)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Shoulda::Matchers::ActionController::RespondWithContentTypeMatcher do
|
4
|
-
context "a controller responding with content type :xml" do
|
5
|
-
let(:controller) { build_response { render :xml => { :user => "thoughtbot" }.to_xml } }
|
6
|
-
|
7
|
-
it "should accept responding with content type :xml" do
|
8
|
-
controller.should respond_with_content_type(:xml)
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should accept responding with content type 'application/xml'" do
|
12
|
-
controller.should respond_with_content_type('application/xml')
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should accept responding with content type /xml/" do
|
16
|
-
controller.should respond_with_content_type(/xml/)
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should reject responding with another content type" do
|
20
|
-
controller.should_not respond_with_content_type(:json)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should generate the correct test name" do
|
25
|
-
respond_with_content_type(:xml).description.
|
26
|
-
should == "respond with content type of application/xml"
|
27
|
-
end
|
28
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Shoulda::Matchers::ActionController::RespondWithMatcher do
|
4
|
-
context "a controller responding with success" do
|
5
|
-
let(:controller) { build_response { render :text => "text", :status => 200 } }
|
6
|
-
|
7
|
-
it "should accept responding with 200" do
|
8
|
-
controller.should respond_with(200)
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should accept responding with :success" do
|
12
|
-
controller.should respond_with(:success)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should reject responding with another status" do
|
16
|
-
controller.should_not respond_with(:error)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
context "a controller responding with redirect" do
|
21
|
-
let(:controller) { build_response { render :text => "text", :status => 301 } }
|
22
|
-
|
23
|
-
it "should accept responding with 301" do
|
24
|
-
controller.should respond_with(301)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should accept responding with :redirect" do
|
28
|
-
controller.should respond_with(:redirect)
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should reject responding with another status" do
|
32
|
-
controller.should_not respond_with(:error)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context "a controller responding with missing" do
|
37
|
-
let(:controller) { build_response { render :text => "text", :status => 404 } }
|
38
|
-
|
39
|
-
it "should accept responding with 404" do
|
40
|
-
controller.should respond_with(404)
|
41
|
-
end
|
42
|
-
|
43
|
-
it "should accept responding with :missing" do
|
44
|
-
controller.should respond_with(:missing)
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should reject responding with another status" do
|
48
|
-
controller.should_not respond_with(:success)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
context "a controller responding with error" do
|
53
|
-
let(:controller) { build_response { render :text => "text", :status => 500 } }
|
54
|
-
|
55
|
-
it "should accept responding with 500" do
|
56
|
-
controller.should respond_with(500)
|
57
|
-
end
|
58
|
-
|
59
|
-
it "should accept responding with :error" do
|
60
|
-
controller.should respond_with(:error)
|
61
|
-
end
|
62
|
-
|
63
|
-
it "should reject responding with another status" do
|
64
|
-
controller.should_not respond_with(:success)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
context "a controller responding with not implemented" do
|
69
|
-
let(:controller) { build_response { render :text => "text", :status => 501 } }
|
70
|
-
|
71
|
-
it "should accept responding with 501" do
|
72
|
-
controller.should respond_with(501)
|
73
|
-
end
|
74
|
-
|
75
|
-
it "should accept responding with :not_implemented" do
|
76
|
-
controller.should respond_with(:not_implemented)
|
77
|
-
end
|
78
|
-
|
79
|
-
it "should reject responding with another status" do
|
80
|
-
controller.should_not respond_with(:success)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
@@ -1,65 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Shoulda::Matchers::ActionController::RouteMatcher do
|
4
|
-
context "given a controller with a defined glob url" do
|
5
|
-
let(:controller) { define_controller('Examples').new }
|
6
|
-
|
7
|
-
before do
|
8
|
-
define_routes do
|
9
|
-
match 'examples/*id', :to => 'examples#example'
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should accept glob route" do
|
14
|
-
controller.should route(:get, '/examples/foo/bar').
|
15
|
-
to(:action => 'example', :id => 'foo/bar')
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
context "given a controller with a defined route" do
|
20
|
-
let!(:controller) { define_controller('Examples').new }
|
21
|
-
|
22
|
-
before do
|
23
|
-
define_routes do
|
24
|
-
match 'examples/:id', :to => 'examples#example'
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should accept routing the correct path to the correct parameters" do
|
29
|
-
controller.should route(:get, '/examples/1').
|
30
|
-
to(:action => 'example', :id => '1')
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should accept a symbol controller" do
|
34
|
-
Object.new.should route(:get, '/examples/1').
|
35
|
-
to(:controller => :examples,
|
36
|
-
:action => 'example',
|
37
|
-
:id => '1')
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should accept a symbol action" do
|
41
|
-
controller.should route(:get, '/examples/1').
|
42
|
-
to(:action => :example, :id => '1')
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should accept a non-string parameter" do
|
46
|
-
controller.should route(:get, '/examples/1').
|
47
|
-
to(:action => 'example', :id => 1)
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should reject an undefined route" do
|
51
|
-
controller.should_not route(:get, '/bad_route').to(:var => 'value')
|
52
|
-
end
|
53
|
-
|
54
|
-
it "should reject a route for another controller" do
|
55
|
-
other = define_controller('Other').new
|
56
|
-
other.should_not route(:get, '/examples/1').
|
57
|
-
to(:action => 'example', :id => '1')
|
58
|
-
end
|
59
|
-
|
60
|
-
it "should reject a route for different parameters" do
|
61
|
-
controller.should_not route(:get, '/examples/1').
|
62
|
-
to(:action => 'other', :id => '1')
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|