monty-rspec-rails 0.2.0 → 0.3.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.
Files changed (3) hide show
  1. data/README.md +12 -2
  2. data/lib/monty-rspec-rails.rb +69 -1
  3. metadata +3 -3
data/README.md CHANGED
@@ -42,8 +42,8 @@ Some test examples:
42
42
  authenticated_user
43
43
  end
44
44
 
45
- it '#show is not allowed' do
46
- request_allowed?(:show).should be_true
45
+ it '#update is allowed' do
46
+ request_allowed?(:update, :post, :_method => 'put').should be_true
47
47
  end
48
48
 
49
49
  # And so on..
@@ -51,6 +51,16 @@ Some test examples:
51
51
  end
52
52
 
53
53
 
54
+ There are two built-in examples to help you test standard CRUD controllers. To test
55
+ that ALL CRUD actions are accessible:
56
+
57
+ it_should_behave_like "full crud access"
58
+
59
+ To test that NO CRUD actions are accessible:
60
+
61
+ it_should_behave_like "no crud access"
62
+
63
+
54
64
 
55
65
  Note on Patches/Pull Requests
56
66
  =============
@@ -1,7 +1,7 @@
1
1
  module Monty
2
2
  module RspecRails
3
3
  def self.version
4
- '0.2.0'
4
+ '0.3.0'
5
5
  end
6
6
 
7
7
  def public_user
@@ -22,6 +22,74 @@ module Monty
22
22
  'rack.input' => StringIO.new(params.to_query)
23
23
  delivery.allowed?
24
24
  end
25
+
26
+ def self.included(parent)
27
+
28
+ parent.instance_eval <<-RUBY
29
+ shared_examples_for "full crud access" do
30
+ it '#index is allowed' do
31
+ request_allowed?(:index).should be_true
32
+ end
33
+
34
+ it '#show is allowed' do
35
+ request_allowed?(:show).should be_true
36
+ end
37
+
38
+ it '#new is allowed' do
39
+ request_allowed?(:new).should be_true
40
+ end
41
+
42
+ it '#create is allowed' do
43
+ request_allowed?(:create, :method => :post).should be_true
44
+ end
45
+
46
+ it "#edit is allowed" do
47
+ request_allowed?(:edit).should be_true
48
+ end
49
+
50
+ it '#update is allowed' do
51
+ request_allowed?(:update, :method => :put).should be_true
52
+ end
53
+
54
+ it '#destroy is allowed' do
55
+ request_allowed?(:destroy, :method => :delete).should be_true
56
+ end
57
+ end
58
+
59
+
60
+
61
+ shared_examples_for "no crud access" do
62
+ it '#index is not allowed' do
63
+ request_allowed?(:index).should be_false
64
+ end
65
+
66
+ it '#show is not allowed' do
67
+ request_allowed?(:show).should be_false
68
+ end
69
+
70
+ it '#new is not allowed' do
71
+ request_allowed?(:new).should be_false
72
+ end
73
+
74
+ it '#create is not allowed' do
75
+ request_allowed?(:create, :method => :post).should be_false
76
+ end
77
+
78
+ it "#edit is not allowed" do
79
+ request_allowed?(:edit).should be_false
80
+ end
81
+
82
+ it '#update is not allowed' do
83
+ request_allowed?(:update, :method => :put).should be_false
84
+ end
85
+
86
+ it '#destroy is not allowed' do
87
+ request_allowed?(:destroy, :method => :delete).should be_false
88
+ end
89
+ end
90
+ RUBY
91
+ end
92
+
25
93
  private
26
94
 
27
95
  def login(session_stubs = {}, user_stubs = {})
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 2
7
+ - 3
8
8
  - 0
9
- version: 0.2.0
9
+ version: 0.3.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - stonean
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-19 00:00:00 -04:00
17
+ date: 2010-05-20 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies: []
20
20