admin_data 1.0.11 → 1.0.12

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 (67) hide show
  1. data/README.md +25 -0
  2. data/app/controllers/admin_data/base_controller.rb +2 -7
  3. data/app/views/admin_data/main/edit.html.erb +1 -2
  4. data/app/views/admin_data/main/misc/_form.html.erb +9 -2
  5. data/app/views/admin_data/shared/_drop_down_klasses.html.erb +1 -1
  6. data/app/views/admin_data/shared/_powered_by.html.erb +3 -20
  7. data/lib/admin_data/helpers.rb +1 -1
  8. data/lib/admin_data/version.rb +1 -1
  9. data/lib/js/vendor/{code.jquery.com jquery-1.4.2.js → jquery-1.4.2.js} +0 -0
  10. metadata +9 -110
  11. data/README.textile +0 -21
  12. data/lib/js/vendor/jquery.lint.js +0 -604
  13. data/test/factories/article.rb +0 -9
  14. data/test/factories/car.rb +0 -4
  15. data/test/factories/city.rb +0 -4
  16. data/test/factories/comment.rb +0 -6
  17. data/test/factories/door.rb +0 -4
  18. data/test/factories/engine.rb +0 -4
  19. data/test/functional/base_controller_test.rb +0 -5
  20. data/test/functional/feed_controller_test.rb +0 -45
  21. data/test/functional/main_controller_authorization_test.rb +0 -91
  22. data/test/functional/main_controller_test.rb +0 -418
  23. data/test/functional/migration_controller_test.rb +0 -39
  24. data/test/functional/routes_test.rb +0 -59
  25. data/test/functional/search_controller_authorization_test.rb +0 -77
  26. data/test/functional/search_controller_test.rb +0 -811
  27. data/test/helper/view_helper_test.rb +0 -177
  28. data/test/misc_tests/date_validation_test.rb +0 -32
  29. data/test/misc_tests/settings_test.rb +0 -29
  30. data/test/misc_tests/util_test.rb +0 -83
  31. data/test/rails_root/Gemfile +0 -22
  32. data/test/rails_root/Gemfile.lock +0 -101
  33. data/test/rails_root/Rakefile +0 -7
  34. data/test/rails_root/app/controllers/application_controller.rb +0 -3
  35. data/test/rails_root/app/helpers/application_helper.rb +0 -2
  36. data/test/rails_root/app/models/article.rb +0 -25
  37. data/test/rails_root/app/models/city.rb +0 -15
  38. data/test/rails_root/app/models/comment.rb +0 -13
  39. data/test/rails_root/app/models/tech_magazine.rb +0 -2
  40. data/test/rails_root/app/models/vehicle/car.rb +0 -4
  41. data/test/rails_root/app/models/vehicle/door.rb +0 -3
  42. data/test/rails_root/app/models/vehicle/engine.rb +0 -3
  43. data/test/rails_root/app/views/layouts/application.html.erb +0 -14
  44. data/test/rails_root/config/application.rb +0 -42
  45. data/test/rails_root/config/boot.rb +0 -13
  46. data/test/rails_root/config/database.yml +0 -22
  47. data/test/rails_root/config/environment.rb +0 -5
  48. data/test/rails_root/config/environments/development.rb +0 -22
  49. data/test/rails_root/config/environments/production.rb +0 -49
  50. data/test/rails_root/config/environments/test.rb +0 -35
  51. data/test/rails_root/config/initializers/backtrace_silencers.rb +0 -7
  52. data/test/rails_root/config/initializers/inflections.rb +0 -10
  53. data/test/rails_root/config/initializers/mime_types.rb +0 -5
  54. data/test/rails_root/config/initializers/secret_token.rb +0 -7
  55. data/test/rails_root/config/initializers/session_store.rb +0 -8
  56. data/test/rails_root/config/locales/en.yml +0 -5
  57. data/test/rails_root/config/routes.rb +0 -58
  58. data/test/rails_root/config.ru +0 -4
  59. data/test/rails_root/db/migrate/20090809061114_create_tables.rb +0 -70
  60. data/test/rails_root/db/schema.rb +0 -74
  61. data/test/rails_root/db/seeds.rb +0 -7
  62. data/test/rails_root/db/test.sqlite3 +0 -0
  63. data/test/rails_root/script/rails +0 -6
  64. data/test/rails_root/test/performance/browsing_test.rb +0 -0
  65. data/test/rails_root/test/test_helper.rb +0 -13
  66. data/test/support/assertions.rb +0 -20
  67. data/test/test_helper.rb +0 -76
@@ -1,4 +0,0 @@
1
- Factory.define :city do |f|
2
- f.name 'mumbai'
3
- end
4
-
@@ -1,6 +0,0 @@
1
- Factory.define :comment do |f|
2
- f.association(:article)
3
- f.body 'this is a dummy body'
4
- f.author_name 'this is dummy author name'
5
- f.author_website 'http://www.example.org'
6
- end
@@ -1,4 +0,0 @@
1
- Factory.define :door, :class => Vehicle::Door do |f|
2
- f.color 'black'
3
- f.car { |u| u.association(:car) }
4
- end
@@ -1,4 +0,0 @@
1
- Factory.define :engine, :class => Vehicle::Engine do |f|
2
- f.cylinders 6
3
- f.car { |u| u.association(:car) }
4
- end
@@ -1,5 +0,0 @@
1
- require 'test_helper'
2
-
3
- class AdminData::BaseControllerTest < ActionController::TestCase
4
-
5
- end
@@ -1,45 +0,0 @@
1
- require 'test_helper'
2
-
3
- f = File.join(File.dirname(__FILE__), '..', '..', 'app', 'views')
4
- AdminData::FeedController.prepend_view_path(f)
5
-
6
- require 'nokogiri'
7
-
8
- class AdminData::FeedControllerTest < ActionController::TestCase
9
-
10
- context 'authorization' do
11
- context 'failure' do
12
- setup do
13
- AdminData::Config.set = { :feed_authentication_user_id => 'hello', :feed_authentication_password => 'world' }
14
- @request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials('bad_userid', 'bad_password')
15
- get :index, :format => :rss, :klasss => 'article',
16
- 'HTTP_AUTHORIZATION' => ActionController::HttpAuthentication::Basic.encode_credentials('bad_user', 'bad_password')
17
- end
18
- should_respond_with(401)
19
- end
20
- end
21
-
22
-
23
- context 'GET index' do
24
- setup do
25
- AdminData::Config.set = { :feed_authentication_user_id => 'hello', :feed_authentication_password => 'world' }
26
- @request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials('hello', 'world')
27
- Article.delete_all
28
- @article = Factory(:article)
29
- get :index, :format => :rss, :klasss => 'article'
30
- @feed = Nokogiri::XML(@response.body)
31
- end
32
- should_respond_with :success
33
- should 'have RSS feed 2.0' do
34
- assert_equal '2.0', @feed.at('rss')['version']
35
- end
36
- should 'have title' do
37
- assert_equal "Feeds from admin_data Article id: #{@article.id}", @feed.css('channel title').text
38
- end
39
- should 'have guid' do
40
- guid = @feed.css('channel item guid').text
41
- assert Regexp.new("/admin_data/klass/Article/#{@article.id}-").match(guid)
42
- end
43
- end
44
-
45
- end
@@ -1,91 +0,0 @@
1
- require 'test_helper'
2
-
3
- f = File.join(File.dirname(__FILE__), '..', '..', 'app', 'views')
4
- AdminData::MainController.prepend_view_path(f)
5
-
6
- class AdminData::MainControllerAuthorizationTest < ActionController::TestCase
7
-
8
- def setup
9
- @controller = AdminData::MainController.new
10
- @request = ActionController::TestRequest.new
11
- @response = ActionController::TestResponse.new
12
- @article = Factory(:article)
13
- grant_read_only_access
14
- end
15
-
16
- context 'is not allowed to view' do
17
- setup do
18
- revoke_read_only_access
19
- get :table_structure, {:klass => Article.name.underscore}
20
- end
21
- should_respond_with(401)
22
- should 'have text index' do
23
- assert_tag(:content => 'not authorized')
24
- end
25
- end
26
-
27
- context 'is allowed to view klass' do
28
- context 'negative case' do
29
- setup do
30
- _proc = lambda {|controller| controller.instance_variable_get('@klass').name != 'Article' }
31
- AdminData::Config.set = { :is_allowed_to_view_klass => _proc }
32
- get :show, {:id => @article.id, :klass => Article.name.underscore }
33
- end
34
- should_respond_with(401)
35
- should 'have text index' do
36
- assert_tag(:content => 'not authorized')
37
- end
38
- end
39
- context 'positive case' do
40
- setup do
41
- _proc = lambda {|controller| controller.instance_variable_get('@klass').name == 'Article' }
42
- AdminData::Config.set = { :is_allowed_to_view_klass => _proc }
43
- get :show, {:id => @article.id, :klass => Article.name.underscore }
44
- end
45
- should_respond_with :success
46
- end
47
- end
48
-
49
- context 'is allowed to update' do
50
- context 'for edit' do
51
- setup do
52
- AdminData::Config.set = { :is_allowed_to_update => lambda {|controller| false } }
53
- get :edit, {:id => @article.id, :klass => @article.class.name, :attr => 'title', :data => 'Hello World' }
54
- end
55
- should_respond_with(401)
56
- end
57
-
58
- context 'for destroy' do
59
- setup do
60
- AdminData::Config.set = { :is_allowed_to_update => lambda {|controller| false } }
61
- delete :destroy, {:id => @article.id, :klass => @article.class.name.underscore}
62
- end
63
- should_respond_with(401)
64
- end
65
-
66
- context 'for delete' do
67
- setup do
68
- AdminData::Config.set = { :is_allowed_to_update => lambda {|controller| false } }
69
- delete :del, {:id => @article.id, :klass => @article.class.name.underscore }
70
- end
71
- should_respond_with(401)
72
- end
73
-
74
- context 'for update' do
75
- setup do
76
- AdminData::Config.set = { :is_allowed_to_update => lambda {|controller| false } }
77
- post :update, { :klass => Article.name.underscore, :id => @article, :article => {:title => 'new title'}}
78
- end
79
- should_respond_with(401)
80
- end
81
-
82
- context 'for create' do
83
- setup do
84
- AdminData::Config.set = { :is_allowed_to_update => lambda {|controller| false } }
85
- post :create, { :klass => Article.name.underscore, 'article' => {:title => 'hello', :body => 'hello world'}}
86
- end
87
- should_respond_with(401)
88
- end
89
- end
90
-
91
- end
@@ -1,418 +0,0 @@
1
- require 'test_helper'
2
-
3
- f = File.join(File.dirname(__FILE__), '..', '..', 'app', 'views')
4
- AdminData::MainController.prepend_view_path(f)
5
-
6
- class AdminData::MainControllerTest < ActionController::TestCase
7
-
8
- def setup
9
- @controller = AdminData::MainController.new
10
- @request = ActionController::TestRequest.new
11
- @response = ActionController::TestResponse.new
12
- @article = Factory(:article)
13
- @car = Factory(:car, :year => 2000, :brand => 'bmw')
14
- grant_read_only_access
15
- grant_update_access
16
- end
17
-
18
- context 'get table_structure' do
19
- setup do
20
- get :table_structure, {:klass => Article.name.underscore}
21
- end
22
- should_respond_with :success
23
- should 'have text index' do
24
- assert_tag(:content => 'Index')
25
- end
26
- should 'have table name' do
27
- assert_tag(:tag => 'h1', :content => "Table name : articles", :attributes => {:class => 'table_name'})
28
- end
29
- end
30
-
31
- context 'get all_models' do
32
- setup do
33
- get :all_models
34
- end
35
- should_respond_with :success
36
- should_assign_to :klasses
37
- should 'have xx number of models' do
38
- assert_equal 7, assigns(:klasses).size
39
- end
40
- end
41
-
42
- context 'get show for article which belongs to tech_magazine' do
43
- setup do
44
- @article.magazine = TechMagazine.create
45
- @article.save
46
- get :show, {:id => @article, :klass => @article.class.name.underscore }
47
- end
48
- should_respond_with :success
49
- should 'have belongs to association with magazine' do
50
- assert @article.magazine
51
- end
52
- should 'have association link for comments' do
53
- s2 = ERB::Util.html_escape('&')
54
- url = "/admin_data/klass/tech_magazine/#{@article.magazine.id}"
55
- assert_tag(:tag => 'a', :attributes => {:href => url})
56
- end
57
- end
58
-
59
- context 'get show for article which has many comments' do
60
- setup do
61
- @comment1 = Factory(:comment, :article => @article)
62
- @comment2 = Factory(:comment, :article => @article)
63
- get :show, {:id => @article.id, :klass => @article.class.name.underscore }
64
- end
65
- should_respond_with :success
66
- should 'have association link for comments' do
67
- s2 = ERB::Util.html_escape('&')
68
- url = "/admin_data/quick_search/comment?children=comments#{s2}model_id=#{@article.id}#{s2}base=article"
69
- assert_tag(:tag => 'a', :attributes => {:href => url})
70
- end
71
- end
72
-
73
- context 'get show for car' do
74
- setup do
75
- @engine = Factory(:engine, :car => @car, :cylinders => 4)
76
- get :show, {:id => @car.id, :klass => @car.class.name.underscore }
77
- end
78
- #should_respond_with :success
79
- #should 'have one association link for engine' do
80
- #s2 = ERB::Util.html_escape('&')
81
- #url = "/admin_data/klass/engine/#{@engine.id}"
82
- #assert_tag(:tag => 'a', :content => /engine/, :attributes => {:href => url})
83
- #end
84
- end
85
-
86
- context 'get show for city' do
87
- setup do
88
- AdminData::Config.set = { :find_conditions => { 'City' => lambda { |params| {:conditions => ["permanent_name =?", params[:id]] } } } }
89
- @city = Factory(:city, :name => 'New Delhi')
90
- get :show, {:id => 'new-delhi', :klass => @city.class.name.underscore }
91
- end
92
- should_respond_with :success
93
- end
94
-
95
- context 'get show for comment which belongs to another class' do
96
- setup do
97
- @comment = Factory(:comment, :article => @article)
98
- get :show, {:id => @comment.id, :klass => @comment.class.name.underscore }
99
- end
100
- should_respond_with :success
101
- should 'have belongs_to message' do
102
- assert_tag( :tag => 'p',
103
- :attributes => {:class => 'belongs_to'},
104
- :descendant => {:tag => 'a', :child => /article/})
105
- end
106
- should 'have link to belongs_to association' do
107
- s2 = ERB::Util.html_escape('&')
108
- url = "/admin_data/klass/article/#{@article.to_param}"
109
- assert_tag(:tag => 'a', :attributes => {:href => url})
110
- end
111
- end
112
-
113
- context 'get show for door which belongs to another class' do
114
- setup do
115
- @door = Factory(:door, :color => 'blue', :car_id => @car.id)
116
- get :show, {:id => @door.id, :klass => @door.class.name.underscore }
117
- end
118
- #should_respond_with :success
119
- #should 'have belongs_to message' do
120
- #assert_tag( :tag => 'p',
121
- #:attributes => {:class => 'belongs_to'},
122
- #:descendant => {:tag => 'a', :child => /car/})
123
- #end
124
- end
125
-
126
- context 'destroy an article' do
127
- setup do
128
- grant_update_access
129
- @comment = Factory(:comment, :article => @article)
130
- delete :destroy, {:id => @article.id, :klass => @article.class.name.underscore}
131
- end
132
- should_respond_with :redirect
133
- should_change('article count', :by => -1) {Article.count}
134
- # a comment is being created in setup which should be deleted because of destroy
135
- should_not_change('comment count') { Comment.count }
136
- end
137
-
138
- context 'destroy a car' do
139
- setup do
140
- grant_update_access
141
- @door = Factory(:door, :color => 'blue', :car => @car)
142
- delete :destroy, {:id => @car.id, :klass => @car.class.name.underscore}
143
- end
144
- #should_respond_with :redirect
145
- #should_change('car count', :by => -1) {Vehicle::Car.count}
146
- ## a comment is being created in setup which should be deleted because of destroy
147
- #should_not_change('door count') { Vehicle::Door.count }
148
- end
149
-
150
- context 'delete an article' do
151
- setup do
152
- grant_update_access
153
- @comment = Factory(:comment, :article => @article)
154
- delete :del, {:id => @article.id, :klass => @article.class.name.underscore }
155
- end
156
- should_respond_with :redirect
157
- should_change('article count', :by => -1) {Article.count}
158
- should_change('comment count', :by => 1) {Comment.count}
159
- end
160
-
161
- context 'delete a car' do
162
- setup do
163
- grant_update_access
164
- @door = Factory(:door, :color => 'blue', :car => @car)
165
- delete :del, {:id => @car.id, :klass => @car.class.name.underscore }
166
- end
167
- #should_respond_with :redirect
168
- #should_change('car count', :by => -1) {Vehicle::Car.count}
169
- #should_change('door count since del does not call callbacks', :by => 1) do
170
- #Vehicle::Door.count
171
- #end
172
- end
173
-
174
- context 'get edit article with attr' do
175
- setup do
176
- get :edit, {:id => @article.id, :klass => @article.class.name, :attr => 'title', :data => 'Hello World' }
177
- end
178
- should 'have input field for title' do
179
- assert_select('#article_title')
180
- end
181
- should 'not have input field for body' do
182
- assert_select('#article_body', false)
183
- end
184
- end
185
-
186
- context 'get edit article' do
187
- context 'with ignore column limit' do
188
- setup do
189
- AdminData::Config.set = ({:ignore_column_limit => true})
190
- get :edit, {:id => @article.id, :klass => @article.class.name }
191
- end
192
- teardown do
193
- AdminData::Config.set = ({:ignore_column_limit => false})
194
- end
195
-
196
- should 'have size 60 for title and maxlenght 255' do
197
- assert_tag(:tag => 'input', :attributes => {:id=> 'article_title', :size => '60', :maxlength => '255'})
198
- end
199
-
200
- should 'have size 60 for status and maxlenght 200' do
201
- assert_tag(:tag => 'input', :attributes => {:id=> 'article_status', :size => '60', :maxlength => '255'})
202
- end
203
- end
204
-
205
- context 'with enforced column limit' do
206
-
207
- setup do
208
- get :edit, {:id => @article.id, :klass => @article.class.name }
209
- end
210
- should_respond_with :success
211
-
212
- should "not have input for primary key" do
213
- assert_select 'form' do
214
- assert_select "input[name='comment[id]']", false
215
- end
216
- end
217
-
218
- should "have dropdowns for published_at datetime column" do
219
- assert_select 'form' do
220
- assert_select "select[name='article[published_at(1i)]']"
221
- assert_select "select[name='article[published_at(2i)]']"
222
- assert_select "select[name='article[published_at(3i)]']"
223
- assert_select "select[name='article[published_at(4i)]']"
224
- assert_select "select[name='article[published_at(5i)]']"
225
- end
226
- end
227
-
228
- should 'have input field for title' do
229
- assert_select('#article_title')
230
- end
231
-
232
- should 'have size 60 for title and maxlenght 200' do
233
- assert_tag(:tag => 'input', :attributes => {:id=> 'article_title', :size => '60', :maxlength => '200'})
234
- end
235
-
236
- should 'have size 60 for status and maxlenght 200' do
237
- assert_tag(:tag => 'input', :attributes => {:id=> 'article_status', :size => '50', :maxlength => '50'})
238
- end
239
-
240
- should 'have input field for body' do
241
- assert_select('#article_body')
242
- end
243
- end
244
-
245
- end
246
-
247
- context 'get edit comment' do
248
- context 'without drop down for associations' do
249
- setup do
250
- AdminData::Config.set = ({:drop_down_for_associations => false})
251
- @comment = Factory(:comment, :article => @article)
252
- get :edit, {:id => @comment.id, :klass => @comment.class.name.underscore }
253
- end
254
- teardown do
255
- AdminData::Config.set = ({:drop_down_for_associations => true})
256
- end
257
-
258
- should_respond_with :success
259
-
260
- should "have input text field for belongs_to article" do
261
- assert_select 'form' do
262
- assert_tag(:tag => 'input', :attributes => {:id => 'comment_article_id', :name => 'comment[article_id]'})
263
- end
264
- end
265
- end
266
- context 'with drop down for associations' do
267
- setup do
268
- @comment = Factory(:comment, :article => @article)
269
- get :edit, {:id => @comment.id, :klass => @comment.class.name.underscore }
270
- end
271
-
272
- should_respond_with :success
273
-
274
- should "have dropdowns for belongs_to article" do
275
- assert_select 'form' do
276
- assert_select "select[name='comment[article_id]']"
277
- end
278
- end
279
- end
280
- end
281
-
282
-
283
- context 'get edit car' do
284
- setup do
285
- get :edit, {:id => @car.id, :klass => @car.class.name.underscore }
286
- end
287
- #should_respond_with :success
288
- end
289
-
290
- context 'get new article' do
291
- setup do
292
- get :new, {:klass => Article.name.underscore }
293
- end
294
- should_respond_with :success
295
- end
296
-
297
- context 'get new car' do
298
- setup do
299
- get :new, {:klass => Vehicle::Car.name.underscore}
300
- end
301
- #should_respond_with :success
302
- end
303
-
304
- context 'update article successful' do
305
- setup do
306
- grant_update_access
307
- post :update, { :klass => Article.name.underscore, :id => @article, :article => {:title => 'new title'}}
308
- end
309
- should_respond_with :redirect
310
- should_redirect_to('show page') { admin_data_on_k_path( :id => Article.last, :klass => Article.name.underscore) }
311
- should_set_the_flash_to /Record was updated/
312
- should_not_change('article count') { Article.count }
313
- end
314
-
315
- context 'update car successful' do
316
- setup do
317
- grant_update_access
318
- post :update, { :klass => Vehicle::Car.name.underscore, :id => @car.id, 'vehicle/car' => {:brand => 'honda'}}
319
- end
320
- #should_respond_with :redirect
321
- #should_redirect_to('show page') { admin_data_on_k_path(:id => Vehicle::Car.last.id,
322
- #:klass => @car.class.name.underscore) }
323
- #should_set_the_flash_to /Record was updated/
324
- #should_not_change('car count') { Vehicle::Car.count }
325
- end
326
-
327
- context 'update failure' do
328
- setup do
329
- grant_update_access
330
- post :update, { :klass => 'article', :id => @article.id, :article => {:body => ''}}
331
- end
332
- should_respond_with :success
333
- should_not_set_the_flash
334
- should_not_change('article count') { Article.count }
335
- should 'contain the error message' do
336
- assert_tag(:content => "Body can't be blank")
337
- end
338
- end
339
-
340
- context 'create article successful' do
341
- setup do
342
- grant_update_access
343
- post :create, { :klass => Article.name.underscore, 'article' => {:title => 'hello', :body => 'hello world'}}
344
- end
345
- should_respond_with :redirect
346
- should_redirect_to('show page') { admin_data_on_k_path(:id => Article.last,
347
- :klass => @article.class.name.underscore) }
348
- should_set_the_flash_to /Record was created/
349
- should_change('article count', :by => 1) { Article.count }
350
- end
351
-
352
- context 'create car successful' do
353
- setup do
354
- grant_update_access
355
- post :create, { :klass => Vehicle::Car.name.underscore, 'vehicle/car' => {:brand => 'hello'}}
356
- end
357
- #should_respond_with :redirect
358
- #should_redirect_to('show page') { admin_data_on_k_path(:id => Vehicle::Car.last.id,
359
- #:klass => @car.class.name.underscore) }
360
- #should_set_the_flash_to /Record was created/
361
- #should_change('vehicle count', :by => 1) { Vehicle::Car.count }
362
- end
363
-
364
- context 'create failure' do
365
- setup do
366
- grant_update_access
367
- post :create, { :klass => Article.name.underscore, :article => {:body => '', :title => 'hello'}}
368
- end
369
- should_respond_with :success
370
- should_not_set_the_flash
371
- should_not_change('article count') { Article.count }
372
- should 'contain the error message' do
373
- assert_tag(:content => "Body can't be blank")
374
- end
375
- end
376
-
377
- context 'filter get_model_and_verify_if failure case' do
378
- setup do
379
- get :show, {:id => 999999999999994533, :klass => Article.name.underscore }
380
- end
381
- should_respond_with :not_found
382
- should 'contain the error message' do
383
- assert_tag(:tag => 'h2', :content => "Article not found: 999999999999994533")
384
- end
385
- end
386
-
387
- context 'filter is_allowed_to_view failure case' do
388
- setup do
389
- revoke_read_only_access
390
- get :show, {:id => @article.id, :klass => Article.name.underscore }
391
- end
392
- should_respond_with :unauthorized
393
- should 'contain the message' do
394
- assert_tag(:tag => 'h2', :content => 'not authorized')
395
- end
396
- end
397
-
398
- context 'fine grained access control' do
399
- teardown do
400
- AdminData::Config.initialize_defaults
401
- end
402
- context 'allows view security check to access klass' do
403
- setup do
404
- AdminData::Config.set = { :is_allowed_to_view_model => Proc.new { |controller| assert_equal(Article, controller.klass); true } }
405
- get :show, {:id => @article.id, :klass => Article.name.underscore }
406
- end
407
- #should_respond_with :success
408
- end
409
- context 'allows update security check to access klass' do
410
- setup do
411
- AdminData::Config.set = { :is_allowed_to_update => Proc.new { |controller| assert_equal(Article, controller.klass); true } }
412
- get :edit, {:id => @article.id, :klass => Article.name.underscore }
413
- end
414
- should_respond_with :success
415
- end
416
- end
417
-
418
- end
@@ -1,39 +0,0 @@
1
- pwd = File.dirname(__FILE__)
2
- require File.join(pwd, '..', 'test_helper')
3
-
4
- f = File.join(pwd, '..', '..', 'app', 'views')
5
- AdminData::MainController.prepend_view_path(f)
6
- AdminData::MigrationController.prepend_view_path(f)
7
-
8
- class AdminData::MigrationControllerTest < ActionController::TestCase
9
-
10
- def setup
11
- @controller = AdminData::MigrationController.new
12
- @request = ActionController::TestRequest.new
13
- @response = ActionController::TestResponse.new
14
- end
15
-
16
- context 'authorization check' do
17
- setup do
18
- revoke_read_only_access
19
- get :index
20
- end
21
- should_respond_with(401)
22
- should 'have text index' do
23
- assert_tag(:content => 'not authorized')
24
- end
25
- end
26
-
27
- context 'GET index' do
28
- setup do
29
- grant_read_only_access
30
- get :index
31
- end
32
- should_respond_with :success
33
- should_assign_to :data
34
- should 'contain title' do
35
- assert_tag(:tag => 'h2', :content => 'Migration Information from schema_migrations table')
36
- end
37
- end
38
-
39
- end
@@ -1,59 +0,0 @@
1
- require File.join( File.dirname(__FILE__), '..', 'test_helper')
2
-
3
- class AdminData::MainControllerTest < ActionController::TestCase
4
-
5
- should route(:get, '/admin_data/quick_search/article').to(:controller => 'admin_data/search',
6
- :action => :quick_search,
7
- :klass => 'article')
8
-
9
- should route(:get, '/admin_data/advance_search/article').to(:controller => 'admin_data/search',
10
- :action => :advance_search,
11
- :klass => 'article')
12
-
13
- should route(:get, '/admin_data/migration').to(:controller => 'admin_data/migration',
14
- :action => :index)
15
-
16
- should route(:get, '/admin_data').to(:controller => 'admin_data/main',
17
- :action => :all_models)
18
-
19
- should route(:get, '/admin_data').to(:controller => 'admin_data/main',
20
- :action => :all_models)
21
-
22
- should route(:get, '/admin_data/klass/article/1').to(:controller => 'admin_data/main',
23
- :action => :show,
24
- :klass => 'article',
25
- :id => 1)
26
-
27
- should route(:delete, '/admin_data/klass/article/1').to(:controller => 'admin_data/main',
28
- :action => :destroy,
29
- :klass => 'article',
30
- :id => 1)
31
-
32
- should route(:delete, '/admin_data/klass/article/1/del').to(:controller => 'admin_data/main',
33
- :action => :del,
34
- :klass => 'article',
35
- :id => 1)
36
-
37
- should route(:get, '/admin_data/klass/article/1/edit').to(:controller => 'admin_data/main',
38
- :action => :edit,
39
- :klass => 'article',
40
- :id => 1)
41
-
42
- should route(:put, '/admin_data/klass/article/1').to(:controller => 'admin_data/main',
43
- :action => :update,
44
- :klass => 'article',
45
- :id => 1)
46
-
47
- should route(:get, '/admin_data/klass/article/new').to(:controller => 'admin_data/main',
48
- :action => :new,
49
- :klass => 'article')
50
-
51
- should route(:post, '/admin_data/klass/article').to(:controller => 'admin_data/main',
52
- :action => :create,
53
- :klass => 'article')
54
-
55
- should route(:get, '/admin_data/klass/article/table_structure').to(:controller => 'admin_data/main',
56
- :action => :table_structure,
57
- :klass => 'article')
58
-
59
- end