edgarj 0.01.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +23 -0
  4. data/Rakefile +40 -0
  5. data/app/assets/javascripts/edgarj/base.js +49 -0
  6. data/app/assets/javascripts/edgarj/menu.js +39 -0
  7. data/app/assets/javascripts/edgarj/operator_selection.js +133 -0
  8. data/app/assets/stylesheets/edgarj/base.css +304 -0
  9. data/app/assets/stylesheets/edgarj/menu.css +65 -0
  10. data/app/controllers/edgarj/authentication_mixin.rb.sample +30 -0
  11. data/app/controllers/edgarj/controller_mixin_common.rb +80 -0
  12. data/app/controllers/edgarj/controller_mixin_for_app.rb +71 -0
  13. data/app/controllers/edgarj/edgarj_controller.rb +535 -0
  14. data/app/controllers/edgarj/model_permissions_controller.rb +8 -0
  15. data/app/controllers/edgarj/permission_mixin.rb +84 -0
  16. data/app/controllers/edgarj/popup_controller.rb +128 -0
  17. data/app/controllers/edgarj/rescue_mixin.rb +37 -0
  18. data/app/controllers/edgarj/user_group_users_controller.rb +8 -0
  19. data/app/controllers/edgarj/user_groups_controller.rb +9 -0
  20. data/app/controllers/edgarj/user_groups_popup_controller.rb +8 -0
  21. data/app/helpers/edgarj/assoc_helper.rb +369 -0
  22. data/app/helpers/edgarj/common_helper.rb +37 -0
  23. data/app/helpers/edgarj/edgarj_helper.rb +20 -0
  24. data/app/helpers/edgarj/field_helper.rb +397 -0
  25. data/app/helpers/edgarj/form_drawer.rb +322 -0
  26. data/app/helpers/edgarj/list_drawer.rb +169 -0
  27. data/app/helpers/edgarj/menu_helper.rb +92 -0
  28. data/app/helpers/edgarj/model_permissions_helper.rb +9 -0
  29. data/app/helpers/edgarj/popup_helper.rb +40 -0
  30. data/app/helpers/edgarj/search_helper.rb +14 -0
  31. data/app/helpers/edgarj/sessions_helper.rb +9 -0
  32. data/app/helpers/edgarj/user_group_users_helper.rb +9 -0
  33. data/app/helpers/edgarj/user_groups_helper.rb +9 -0
  34. data/app/helpers/edgarj/user_groups_popup_helper.rb +9 -0
  35. data/app/models/edgarj/drawer/base.rb +234 -0
  36. data/app/models/edgarj/drawer/normal.rb +6 -0
  37. data/app/models/edgarj/drawer/popup.rb +47 -0
  38. data/app/models/edgarj/drawer.rb +13 -0
  39. data/app/models/edgarj/model_permission.rb +41 -0
  40. data/app/models/edgarj/page_info.rb +47 -0
  41. data/app/models/edgarj/search.rb +81 -0
  42. data/app/models/edgarj/search_form.rb +255 -0
  43. data/app/models/edgarj/search_popup.rb +44 -0
  44. data/app/models/edgarj/sssn.rb +120 -0
  45. data/app/models/edgarj/user_group.rb +67 -0
  46. data/app/models/edgarj/user_group_user.rb +18 -0
  47. data/app/models/edgarj.rb +5 -0
  48. data/app/views/edgarj/edgarj/_form.html.erb +25 -0
  49. data/app/views/edgarj/edgarj/_list.html.erb +52 -0
  50. data/app/views/edgarj/edgarj/_message_popup.html.erb +15 -0
  51. data/app/views/edgarj/edgarj/_search_form.html.erb +64 -0
  52. data/app/views/edgarj/edgarj/_search_operator.html.erb +17 -0
  53. data/app/views/edgarj/edgarj/_search_operator_selection.html.erb +12 -0
  54. data/app/views/edgarj/edgarj/clear.js.erb +1 -0
  55. data/app/views/edgarj/edgarj/create.js.erb +4 -0
  56. data/app/views/edgarj/edgarj/destroy.js.erb +2 -0
  57. data/app/views/edgarj/edgarj/index.html.erb +37 -0
  58. data/app/views/edgarj/edgarj/index.js.erb +1 -0
  59. data/app/views/edgarj/edgarj/message_popup.js.erb +3 -0
  60. data/app/views/edgarj/edgarj/page_info_save.js.erb +1 -0
  61. data/app/views/edgarj/edgarj/search.js.erb +4 -0
  62. data/app/views/edgarj/edgarj/search_clear.js.erb +1 -0
  63. data/app/views/edgarj/edgarj/show.js.erb +1 -0
  64. data/app/views/edgarj/edgarj/top.html.erb +4 -0
  65. data/app/views/edgarj/edgarj/update.js.erb +4 -0
  66. data/app/views/edgarj/popup/_index.html.erb +16 -0
  67. data/app/views/edgarj/popup/_list.html.erb +42 -0
  68. data/app/views/edgarj/popup/_message_popup.html.erb +15 -0
  69. data/app/views/edgarj/popup/_search.html.erb +42 -0
  70. data/app/views/edgarj/popup/_search_save_popup.html.erb +16 -0
  71. data/app/views/edgarj/popup/index.js.erb +5 -0
  72. data/app/views/edgarj/popup/message_popup.js.erb +3 -0
  73. data/app/views/edgarj/popup/page_info_save.js.erb +1 -0
  74. data/app/views/edgarj/popup/search.js.erb +15 -0
  75. data/app/views/edgarj/popup/view_status_save.js.erb +1 -0
  76. data/config/routes.rb +15 -0
  77. data/config/settings.yml +5 -0
  78. data/db/migrate/20131118084600_create_edgar_sssns.rb +14 -0
  79. data/db/migrate/20131123124730_create_edgar_page_infos.rb +15 -0
  80. data/db/migrate/20140116062252_create_edgar_user_groups.rb +18 -0
  81. data/db/migrate/20140116062327_create_edgar_user_group_users.rb +10 -0
  82. data/db/migrate/20140206222308_create_edgar_model_permissions.rb +14 -0
  83. data/db/migrate/20141209053055_rename_edgar_to_edgarj.rb +17 -0
  84. data/lib/core_ext/active_record.rb +123 -0
  85. data/lib/core_ext/resources.rb +71 -0
  86. data/lib/edgarj/engine.rb +64 -0
  87. data/lib/edgarj/enum_cache.rb +46 -0
  88. data/lib/edgarj/templates/rails/helper/helper.rb +10 -0
  89. data/lib/edgarj/templates/test_unit/scaffold/functional_test.rb +575 -0
  90. data/lib/edgarj/version.rb +3 -0
  91. data/lib/edgarj.rb +14 -0
  92. data/lib/generators/edgarj/popup_scaffold/USAGE +6 -0
  93. data/lib/generators/edgarj/popup_scaffold/popup_scaffold_generator.rb +35 -0
  94. data/lib/generators/edgarj/popup_scaffold/templates/controller.rb +13 -0
  95. data/lib/generators/edgarj/popup_scaffold/templates/functional_test.rb +197 -0
  96. data/lib/generators/edgarj/popup_scaffold/templates/helper.rb +9 -0
  97. data/lib/generators/edgarj/scaffold/USAGE +17 -0
  98. data/lib/generators/edgarj/scaffold/scaffold_generator.rb +40 -0
  99. data/lib/generators/edgarj/scaffold/templates/controller.rb +13 -0
  100. data/lib/tasks/edgarj_tasks.rake +32 -0
  101. data/lib/tasks/pakcage.rake +18 -0
  102. data/locale/en.yml +94 -0
  103. data/locale/ja.yml +100 -0
  104. data/test/dummy/README.rdoc +28 -0
  105. data/test/dummy/Rakefile +6 -0
  106. data/test/dummy/app/assets/javascripts/application.js +21 -0
  107. data/test/dummy/app/assets/javascripts/authors.js +2 -0
  108. data/test/dummy/app/assets/stylesheets/application.css +16 -0
  109. data/test/dummy/app/assets/stylesheets/authors.css +4 -0
  110. data/test/dummy/app/assets/stylesheets/scaffold.css +56 -0
  111. data/test/dummy/app/controllers/application_controller.rb +15 -0
  112. data/test/dummy/app/controllers/authors_controller.rb +6 -0
  113. data/test/dummy/app/controllers/authors_popup_controller.rb +6 -0
  114. data/test/dummy/app/controllers/books_controller.rb +6 -0
  115. data/test/dummy/app/controllers/dummy_auth_mixin.rb +36 -0
  116. data/test/dummy/app/decorators/models/edgarj/user_group_decorator.rb +1 -0
  117. data/test/dummy/app/helpers/application_helper.rb +3 -0
  118. data/test/dummy/app/helpers/authors_helper.rb +7 -0
  119. data/test/dummy/app/helpers/authors_popup_helper.rb +7 -0
  120. data/test/dummy/app/helpers/books_helper.rb +7 -0
  121. data/test/dummy/app/models/author.rb +32 -0
  122. data/test/dummy/app/models/book.rb +5 -0
  123. data/test/dummy/app/models/user.rb +13 -0
  124. data/test/dummy/app/views/layouts/application.html.erb +32 -0
  125. data/test/dummy/app/views/layouts/login.html.erb +20 -0
  126. data/test/dummy/bin/bundle +3 -0
  127. data/test/dummy/bin/rails +4 -0
  128. data/test/dummy/bin/rake +4 -0
  129. data/test/dummy/config/application.rb +59 -0
  130. data/test/dummy/config/boot.rb +10 -0
  131. data/test/dummy/config/database.yml +15 -0
  132. data/test/dummy/config/edgarj/menu_config.rb +28 -0
  133. data/test/dummy/config/environment.rb +5 -0
  134. data/test/dummy/config/environments/development.rb +42 -0
  135. data/test/dummy/config/environments/production.rb +79 -0
  136. data/test/dummy/config/environments/test.rb +34 -0
  137. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  138. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  139. data/test/dummy/config/initializers/inflections.rb +16 -0
  140. data/test/dummy/config/initializers/mime_types.rb +5 -0
  141. data/test/dummy/config/initializers/secret_token.rb +12 -0
  142. data/test/dummy/config/initializers/session_store.rb +3 -0
  143. data/test/dummy/config/initializers/strong_parameter.rb +3 -0
  144. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  145. data/test/dummy/config/locales/en.yml +26 -0
  146. data/test/dummy/config/routes.rb +60 -0
  147. data/test/dummy/config.ru +4 -0
  148. data/test/dummy/db/migrate/20131107120635_create_authors.rb +9 -0
  149. data/test/dummy/db/migrate/20131218011851_create_books.rb +10 -0
  150. data/test/dummy/db/migrate/20140201000000_add_user_group_id_to_authors.rb +5 -0
  151. data/test/dummy/db/migrate/20140807065420_create_users.rb +10 -0
  152. data/test/dummy/db/schema.rb +93 -0
  153. data/test/dummy/public/404.html +58 -0
  154. data/test/dummy/public/422.html +58 -0
  155. data/test/dummy/public/500.html +57 -0
  156. data/test/dummy/public/favicon.ico +0 -0
  157. data/test/dummy/script/rails +6 -0
  158. data/test/dummy/test/functional/authors_controller_test.rb +631 -0
  159. data/test/dummy/test/functional/books_controller_test.rb +516 -0
  160. data/test/dummy/test/helpers/authors_helper_test.rb +4 -0
  161. data/test/dummy/test/unit/author_test.rb +7 -0
  162. data/test/dummy/test/unit/book_test.rb +7 -0
  163. data/test/edgar_test.rb +7 -0
  164. data/test/fixtures/authors.yml +32 -0
  165. data/test/fixtures/books.yml +56 -0
  166. data/test/fixtures/edgarj/model_permissions.yml +97 -0
  167. data/test/fixtures/edgarj/page_infos.yml +84 -0
  168. data/test/fixtures/edgarj/sssns.yml +38 -0
  169. data/test/fixtures/edgarj/user_group_users.yml +114 -0
  170. data/test/fixtures/edgarj/user_groups.yml +95 -0
  171. data/test/fixtures/users.yml +49 -0
  172. data/test/functional/edgarj/edgarj_controller_test.rb +24 -0
  173. data/test/functional/edgarj/model_permissions_controller_test.rb +554 -0
  174. data/test/functional/edgarj/user_group_users_controller_test.rb +567 -0
  175. data/test/integration/navigation_test.rb +10 -0
  176. data/test/support/edgarj/controller_supporter.rb +23 -0
  177. data/test/test_helper.rb +23 -0
  178. data/test/unit/edgarj/model_permission_test.rb +27 -0
  179. data/test/unit/edgarj/page_info_test.rb +7 -0
  180. data/test/unit/edgarj/sssn_test.rb +10 -0
  181. data/test/unit/edgarj/user_group_test.rb +32 -0
  182. data/test/unit/edgarj/user_group_user_test.rb +9 -0
  183. data/test/unit/helpers/edgarj/model_permissions_helper_test.rb +6 -0
  184. data/test/unit/helpers/edgarj/user_group_users_helper_test.rb +6 -0
  185. metadata +456 -0
@@ -0,0 +1,554 @@
1
+ require 'test_helper'
2
+
3
+ module Edgarj
4
+ class ModelPermissionsControllerTest < ActionController::TestCase
5
+ context 'root user' do
6
+ setup do
7
+ login_as(:root)
8
+ @edgarj_model_permission = edgarj_model_permissions(:product_read_only)
9
+ @pi = create_page_info(@sssn, 'edgarj_model_permissions', Edgarj::ModelPermission)
10
+ end
11
+
12
+ should 'get index' do
13
+ get :index
14
+ assert_response :success
15
+ assert_not_nil assigns(:list)
16
+ end
17
+
18
+ should 'paginate' do
19
+ xhr :get, :index, page: 2
20
+ assert_response :success
21
+ assert_not_nil assigns(:list)
22
+ end
23
+
24
+ should 'sort' do
25
+ xhr :put, :page_info_save,
26
+ id: @pi.id,
27
+ edgarj_page_info: {
28
+ dir: 'asc',
29
+ order_by: 'created_at'
30
+ }
31
+ assert_response :success
32
+ assert_not_nil assigns(:list)
33
+ assert_equal 'asc', assigns(:page_info).dir
34
+ assert_equal 'created_at', assigns(:page_info).order_by
35
+ end
36
+
37
+ should 'create edgarj_model_permission' do
38
+ assert_difference('Edgarj::ModelPermission.count') do
39
+ xhr :post, :create, edgarj_model_permission: {flags: 0}
40
+ end
41
+ assert_response :success
42
+ assert assigns(:record)
43
+ end
44
+
45
+ should 'not create invalid edgarj_model_permission' do
46
+ skip 'not create invalid edgarj_model_permission'
47
+ assert_no_difference('Edgarj::ModelPermission.count') do
48
+ #xhr :post, :create, invalid resource attributes...
49
+ end
50
+ assert_response :success
51
+ assert assigns(:record)
52
+ end
53
+
54
+ should 'show edgarj_model_permission in HTML' do
55
+ get :show, id: @edgarj_model_permission
56
+ assert_response :success
57
+ assert_not_nil assigns(:record)
58
+ end
59
+
60
+ should 'show edgarj_model_permission in JS' do
61
+ xhr :get, :show, id: @edgarj_model_permission
62
+ assert_response :success
63
+ assert_not_nil assigns(:record)
64
+ end
65
+
66
+ should 'update edgarj_model_permission' do
67
+ xhr :put, :update, id: @edgarj_model_permission, edgarj_model_permission: { }
68
+ assert_response :success
69
+ assert assigns(:record)
70
+ end
71
+
72
+ should 'destroy edgarj_model_permission' do
73
+ assert_difference('Edgarj::ModelPermission.count', -1) do
74
+ xhr :delete, :destroy, id: @edgarj_model_permission
75
+ end
76
+ assert_response :success
77
+ assert assigns(:record)
78
+ assert assigns(:list)
79
+ end
80
+
81
+ should 'clear edgarj_model_permission' do
82
+ assert_no_difference('Edgarj::ModelPermission.count') do
83
+ xhr :get, :clear
84
+ end
85
+ assert_response :success
86
+ assert_not_nil assigns(:record)
87
+ end
88
+
89
+ should 'csv_download edgarj_model_permissions' do
90
+ get :csv_download
91
+ assert_response :success
92
+ end
93
+
94
+ should 'search' do
95
+ xhr :get, :search, edgarj_search_form: {}
96
+ assert_response :success
97
+ assert assigns(:list).count >= 1
98
+ end
99
+
100
+ should 'search_clear edgarj_model_permission' do
101
+ xhr :get, :search_clear
102
+ assert_response :success
103
+ end
104
+
105
+ should 'search_save edgarj_model_permission' do
106
+ skip 'search_save'
107
+ end
108
+
109
+ should 'search_load edgarj_model_permission' do
110
+ skip 'search_load'
111
+ end
112
+ end
113
+
114
+ # All of tests in this context is skipped because it is required
115
+ # to prepare read-only user.
116
+ # When complete the preparation, delete the skip lines.
117
+ context 'read-only user' do
118
+ setup do
119
+ # prepare fixtures of model_permissions, user_groups, and
120
+ # user_group_users for read-only user of the
121
+ # Edgarj::ModelPermissionsController and login by him/her.
122
+ #
123
+ #login_as(:edgarj_model_permission_reader)
124
+ #@pi = create_page_info(@sssn, 'edgarj_model_permissions', Edgarj::ModelPermission)
125
+ end
126
+
127
+ should 'get index' do
128
+ skip 'get index'
129
+ get :index
130
+ assert_response :success
131
+ assert_not_nil assigns(:list)
132
+ end
133
+
134
+ should 'paginate' do
135
+ skip 'paginate'
136
+ xhr :get, :index, page: 2
137
+ assert_response :success
138
+ assert_not_nil assigns(:list)
139
+ end
140
+
141
+ should 'sort' do
142
+ skip 'sort'
143
+ xhr :put, :page_info_save,
144
+ id: @pi.id,
145
+ edgarj_page_info: {
146
+ dir: 'asc',
147
+ order_by: 'created_at'
148
+ }
149
+ assert_response :success
150
+ assert_not_nil assigns(:list)
151
+ assert_equal 'asc', assigns(:page_info).dir
152
+ assert_equal 'created_at', assigns(:page_info).order_by
153
+ end
154
+
155
+ should 'not create edgarj_model_permission' do
156
+ skip 'not create edgarj_model_permission'
157
+ assert_no_difference('Edgarj::ModelPermission.count') do
158
+ xhr :post, :create, edgarj_model_permission: { }
159
+ end
160
+ assert_template 'message_popup'
161
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
162
+ end
163
+
164
+ should 'not create invalid edgarj_model_permission' do
165
+ skip 'not create invalid edgarj_model_permission'
166
+ assert_no_difference('Edgarj::ModelPermission.count') do
167
+ #xhr :post, :create, invalid resource attributes...
168
+ end
169
+ assert_template 'message_popup'
170
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
171
+ end
172
+
173
+ should 'show edgarj_model_permission in HTML' do
174
+ skip 'show edgarj_model_permission in HTML'
175
+ get :show, id: @edgarj_model_permission
176
+ assert_response :success
177
+ assert_not_nil assigns(:record)
178
+ end
179
+
180
+ should 'show edgarj_model_permission in JS' do
181
+ skip 'show edgarj_model_permission in JS'
182
+ xhr :get, :show, id: @edgarj_model_permission
183
+ assert_response :success
184
+ assert_not_nil assigns(:record)
185
+ end
186
+
187
+ should 'not update edgarj_model_permission' do
188
+ skip 'not update edgarj_model_permission'
189
+ xhr :put, :update, id: @edgarj_model_permission, edgarj_model_permission: { }
190
+ assert_template 'message_popup'
191
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
192
+ old_edgarj_model_permission = @edgarj_model_permission
193
+ assert_equal(
194
+ old_edgarj_model_permission,
195
+ @edgarj_model_permission.reload)
196
+ end
197
+
198
+ should 'not destroy edgarj_model_permission' do
199
+ skip 'not destroy edgarj_model_permission'
200
+ assert_no_difference('Edgarj::ModelPermission.count') do
201
+ xhr :delete, :destroy, id: @edgarj_model_permission
202
+ end
203
+ assert_template 'message_popup'
204
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
205
+ end
206
+
207
+ should 'clear edgarj_model_permission' do
208
+ skip 'clear edgarj_model_permission'
209
+ assert_no_difference('Edgarj::ModelPermission.count') do
210
+ xhr :get, :clear
211
+ end
212
+ assert_response :success
213
+ assert_not_nil assigns(:record)
214
+ end
215
+
216
+ should 'csv_download edgarj_model_permissions' do
217
+ skip 'csv_download edgarj_model_permissions'
218
+ get :csv_download
219
+ assert_response :success
220
+ end
221
+
222
+ should 'search' do
223
+ skip 'search edgarj_model_permissions'
224
+ xhr :get, :search, edgarj_search_form: {}
225
+ assert_response :success
226
+ assert assigns(:list).count >= 1
227
+ end
228
+
229
+ should 'search_clear edgarj_model_permission' do
230
+ skip 'search_clear edgarj_model_permission'
231
+ xhr :get, :search_clear
232
+ assert_response :success
233
+ end
234
+
235
+ should 'search_save edgarj_model_permission' do
236
+ skip 'search_save'
237
+ end
238
+
239
+ should 'search_load edgarj_model_permission' do
240
+ skip 'search_load'
241
+ end
242
+ end
243
+
244
+ # All of tests in this context is skipped because it is required
245
+ # to prepare 'permitted but user_scoped' user.
246
+ # When complete the preparation, delete the skip lines.
247
+ context 'permitted and user_scoped user' do
248
+ setup do
249
+ # prepare fixtures of model_permissions, user_groups, and
250
+ # user_group_users for permitted and user_scoped user of the
251
+ # Edgarj::ModelPermissionsController and login by him/her.
252
+ #
253
+ #login_as(:permitted_n_user_scoped_on_edgarj_model_permissions)
254
+ #@pi = create_page_info(@sssn, 'edgarj_model_permissions', Edgarj::ModelPermission)
255
+
256
+ @edgarj_model_permission = edgarj_model_permissions(:product_read_only)
257
+ @edgarj_model_permission_scoped_out = edgarj_model_permissions(:book_admin)
258
+ end
259
+
260
+ should 'search 1 hit since role and user_scoped satisfy' do
261
+ skip 'search 1 hit since role and user_scoped satisfy'
262
+ xhr :get, :search, edgarj_search_form: {_id: @edgarj_model_permission.id}
263
+ assert_response :success
264
+ assert_equal 1, assigns(:list).count
265
+ end
266
+
267
+ should 'not search 1 hit since key is out-of-scope' do
268
+ skip 'not search 1 hit since key is out-of-scope'
269
+ xhr :get, :search, edgarj_search_form: {_id: @edgarj_model_permission_scoped_out.id}
270
+ assert_response :success
271
+ assert_equal 0, assigns(:list).count
272
+ end
273
+
274
+ should 'show assigned edgarj_model_permission in HTML' do
275
+ skip 'show assigned edgarj_model_permission in HTML'
276
+ get :show, id: @edgarj_model_permission
277
+ assert_response :success
278
+ assert_not_nil assigns(:record)
279
+ end
280
+
281
+ should 'show assigned edgarj_model_permission in JS' do
282
+ skip 'show assigned edgarj_model_permission in JS'
283
+ xhr :get, :show, id: @edgarj_model_permission
284
+ assert_response :success
285
+ assert_not_nil assigns(:record)
286
+ end
287
+
288
+ should 'not show non-assigned edgarj_model_permission in HTML' do
289
+ skip 'not show non-assigned edgarj_model_permission in HTML'
290
+ get :show, id: @edgarj_model_permission_scoped_out
291
+ assert_response :redirect
292
+ assert_nil assigns(:record)
293
+ assert_equal I18n.t('edgarj.default.not_found'), flash[:error]
294
+ end
295
+
296
+ should 'not show non-assigned edgarj_model_permission in JS' do
297
+ skip 'not show non-assigned edgarj_model_permission in JS'
298
+ xhr :get, :show, id: @edgarj_model_permission_scoped_out
299
+ assert_response :success
300
+ assert_nil assigns(:record)
301
+ assert_equal I18n.t('edgarj.default.not_found'), flash[:error]
302
+ end
303
+
304
+ should 'update edgarj_model_permission' do
305
+ skip 'update edgarj_model_permission'
306
+ xhr :put, :update, id: @edgarj_model_permission, edgarj_model_permission: { }
307
+ assert_response :success
308
+ assert assigns(:record)
309
+ end
310
+
311
+ should 'not update edgarj_model_permission' do
312
+ skip 'not update edgarj_model_permission'
313
+ xhr :put, :update, id: @edgarj_model_permission, edgarj_model_permission: { }
314
+ assert_nil assigns(:record)
315
+ assert_equal I18n.t('edgarj.default.not_found'), flash[:error]
316
+ old_edgarj_model_permission = @edgarj_model_permission
317
+ assert_equal(
318
+ old_edgarj_model_permission,
319
+ @edgarj_model_permission.reload)
320
+ end
321
+
322
+ should 'destroy edgarj_model_permission' do
323
+ skip 'destroy edgarj_model_permission'
324
+ assert_difference('Edgarj::ModelPermission.count', -1) do
325
+ xhr :delete, :destroy, id: @edgarj_model_permission
326
+ end
327
+ assert_response :success
328
+ assert assigns(:record)
329
+ assert assigns(:list)
330
+ end
331
+
332
+ should 'not destroy edgarj_model_permission' do
333
+ skip 'not destroy edgarj_model_permission'
334
+ assert_no_difference('Edgarj::ModelPermission.count') do
335
+ xhr :delete, :destroy, id: @edgarj_model_permission_scoped_out
336
+ end
337
+ assert_equal I18n.t('edgarj.default.not_found'), flash[:error]
338
+ end
339
+ end
340
+
341
+ context 'not-permitted user' do
342
+ setup do
343
+ login_as(:not_permitted)
344
+ @edgarj_model_permission = edgarj_model_permissions(:product_read_only)
345
+ end
346
+
347
+ should 'not get index' do
348
+ get :index
349
+
350
+ assert_redirected_to top_path
351
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
352
+ end
353
+
354
+ should 'not paginate' do
355
+ xhr :get, :index, page: 2
356
+
357
+ assert_template 'message_popup'
358
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
359
+ end
360
+
361
+ should 'not sort' do
362
+ xhr :put, :page_info_save,
363
+ id: edgarj_page_infos(:root_zip_address),
364
+ edgarj_page_info: {
365
+ dir: 'asc',
366
+ order_by: 'name'
367
+ }
368
+ assert_template 'message_popup'
369
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
370
+ end
371
+
372
+ should 'not create edgarj_model_permission' do
373
+ assert_no_difference('Edgarj::ModelPermission.count') do
374
+ xhr :post, :create, edgarj_model_permission: { }
375
+ end
376
+
377
+ assert_template 'message_popup'
378
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
379
+ end
380
+
381
+ should 'not show edgarj_model_permission in HTML' do
382
+ get :show, id: @edgarj_model_permission
383
+ assert_redirected_to top_path
384
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
385
+ end
386
+
387
+ should 'not show edgarj_model_permission in JS' do
388
+ xhr :get, :show, id: @edgarj_model_permission
389
+
390
+ assert_template 'message_popup'
391
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
392
+ end
393
+
394
+ should 'not update edgarj_model_permission' do
395
+ xhr :put, :update, id: @edgarj_model_permission, edgarj_model_permission: { }
396
+ assert_template 'message_popup'
397
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
398
+ old_edgarj_model_permission = @edgarj_model_permission
399
+ assert_equal(
400
+ old_edgarj_model_permission,
401
+ @edgarj_model_permission.reload)
402
+ end
403
+
404
+ should 'not destroy edgarj_model_permission' do
405
+ assert_no_difference('Edgarj::ModelPermission.count') do
406
+ xhr :delete, :destroy, id: @edgarj_model_permission
407
+ end
408
+ assert_template 'message_popup'
409
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
410
+ end
411
+
412
+ should 'not clear' do
413
+ assert_no_difference('Edgarj::ModelPermission.count') do
414
+ xhr :get, :clear
415
+ end
416
+
417
+ assert_template 'message_popup'
418
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
419
+ end
420
+
421
+ should 'not csv_download' do
422
+ get :csv_download
423
+
424
+ assert_redirected_to top_path
425
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
426
+ end
427
+
428
+ should 'not search' do
429
+ xhr :get, :search, edgarj_search_form: {_id: @edgarj_model_permission.id}
430
+
431
+ assert_template 'message_popup'
432
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
433
+ end
434
+
435
+ should 'not search_clear' do
436
+ xhr :get, :search_clear
437
+
438
+ assert_template 'message_popup'
439
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
440
+ end
441
+
442
+ should 'not search_save' do
443
+ skip 'search_save'
444
+ end
445
+
446
+ should 'not search_load' do
447
+ skip 'search_load'
448
+ end
449
+
450
+ # test Edgarj::AuthenticationMixin
451
+
452
+ should 'current_user' do
453
+ get :index
454
+ assert_equal users(:not_permitted), @controller.send(:current_user)
455
+ end
456
+ end
457
+
458
+ context 'not-login' do
459
+ setup do
460
+ @edgarj_model_permission = edgarj_model_permissions(:product_read_only)
461
+ end
462
+
463
+ should 'not get index' do
464
+ get :index
465
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
466
+ end
467
+
468
+ should 'not paginate' do
469
+ xhr :get, :index, page: 2
470
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
471
+ end
472
+
473
+ should 'not sort' do
474
+ xhr :put, :page_info_save,
475
+ # ensure what happens when not-login user puts with
476
+ # current edgarj_page_info-id
477
+ id: edgarj_page_infos(:root_zip_address),
478
+ edgarj_page_info: {
479
+ dir: 'asc',
480
+ order_by: 'name'
481
+ }
482
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
483
+ end
484
+
485
+ should 'not create edgarj_model_permission' do
486
+ assert_no_difference('Edgarj::ModelPermission.count') do
487
+ xhr :post, :create, edgarj_model_permission: { name: @edgarj_model_permission.name }
488
+ end
489
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
490
+ end
491
+
492
+ should 'not create edgarj_model_permission invalid' do
493
+ assert_no_difference('Edgarj::ModelPermission.count') do
494
+ xhr :post, :create, edgarj_model_permission: { name: nil }
495
+ end
496
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
497
+ end
498
+
499
+ should 'not show edgarj_model_permission in HTML' do
500
+ get :show, id: @edgarj_model_permission
501
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
502
+ end
503
+
504
+ should 'not show edgarj_model_permission in JS' do
505
+ xhr :get, :show, id: @edgarj_model_permission
506
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
507
+ end
508
+
509
+ should 'not update edgarj_model_permission' do
510
+ assert_no_difference('Edgarj::ModelPermission.count') do
511
+ xhr :put, :update, id: @edgarj_model_permission, edgarj_model_permission: { name: @edgarj_model_permission.name }
512
+ end
513
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
514
+ end
515
+
516
+ should 'not destroy edgarj_model_permission' do
517
+ assert_no_difference('Edgarj::ModelPermission.count') do
518
+ xhr :delete, :destroy, id: @edgarj_model_permission
519
+ end
520
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
521
+ end
522
+
523
+ should 'not clear' do
524
+ assert_no_difference('Edgarj::ModelPermission.count') do
525
+ xhr :get, :clear
526
+ end
527
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
528
+ end
529
+
530
+ should 'not csv_download' do
531
+ get :csv_download
532
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
533
+ end
534
+
535
+ should 'not search' do
536
+ xhr :get, :search, edgarj_search_form: {_id: edgarj_model_permissions(:product_read_only).id}
537
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
538
+ end
539
+
540
+ should 'not search_clear' do
541
+ xhr :get, :search_clear
542
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
543
+ end
544
+
545
+ should 'not search_save' do
546
+ skip 'search_save'
547
+ end
548
+
549
+ should 'not search_load' do
550
+ skip 'search_load'
551
+ end
552
+ end
553
+ end
554
+ end