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,516 @@
1
+ require 'test_helper'
2
+
3
+ class BooksControllerTest < ActionController::TestCase
4
+ context 'root' do
5
+ setup do
6
+ login_as(:root)
7
+ @book = books(:tacit_dimension)
8
+ pi = edgarj_page_infos(:root_books)
9
+ pi.record = Edgarj::SearchForm.new(Book, {})
10
+ pi.save!
11
+ end
12
+
13
+ should 'get index' do
14
+ get :index
15
+ assert_response :success
16
+ assert_not_nil assigns(:list)
17
+ end
18
+
19
+ should 'paginate' do
20
+ xhr :get, :index, page: 2
21
+ assert_response :success
22
+ assert_not_nil assigns(:list)
23
+ assert_equal 2, assigns(:page_info).page
24
+ end
25
+
26
+ should 'sort' do
27
+ xhr :put, :page_info_save,
28
+ id: edgarj_page_infos(:root_books).id,
29
+ edgarj_page_info: {
30
+ dir: 'asc',
31
+ order_by: 'name'
32
+ }
33
+ assert_response :success
34
+ assert_not_nil assigns(:list)
35
+ assert_equal 'asc', assigns(:page_info).dir
36
+ assert_equal 'name', assigns(:page_info).order_by
37
+
38
+ xhr :put, :page_info_save,
39
+ id: edgarj_page_infos(:root_books).id,
40
+ edgarj_page_info: {
41
+ dir: 'desc',
42
+ order_by: 'created_at'
43
+ }
44
+ assert_equal 'desc', assigns(:page_info).reload.dir
45
+ assert_equal 'created_at', assigns(:page_info).reload.order_by
46
+ end
47
+
48
+ should 'create book' do
49
+ assert_difference('Book.count') do
50
+ xhr :post, :create, book: { name: @book.name }
51
+ end
52
+ assert_response :success
53
+ assert assigns(:record)
54
+ end
55
+
56
+ should 'not create invalid book' do
57
+ assert_no_difference('Book.count') do
58
+ xhr :post, :create, book: { name: nil }
59
+ end
60
+ assert_response :success
61
+ assert assigns(:record)
62
+ end
63
+
64
+ should 'show book in HTML' do
65
+ get :show, id: @book
66
+ assert_response :success
67
+ assert_not_nil assigns(:record)
68
+ end
69
+
70
+ should 'show book in JS' do
71
+ xhr :get, :show, id: @book
72
+ assert_response :success
73
+ assert_not_nil assigns(:record)
74
+ end
75
+
76
+ should 'update book' do
77
+ assert_no_difference('Book.count') do
78
+ xhr :put, :update, id: @book, book: { name: 'X' }
79
+ end
80
+ assert_response :success
81
+ assert assigns(:record)
82
+ assert_equal 'X', @book.reload.name
83
+ end
84
+
85
+ should 'destroy book' do
86
+ assert_difference('Book.count', -1) do
87
+ xhr :delete, :destroy, id: @book
88
+ end
89
+ assert_response :success
90
+ assert assigns(:record)
91
+ assert assigns(:list)
92
+ end
93
+
94
+ should 'clear' do
95
+ assert_no_difference('Book.count') do
96
+ xhr :get, :clear
97
+ end
98
+ assert_response :success
99
+ assert_not_nil assigns(:record)
100
+ end
101
+
102
+ context 'search' do
103
+ should 'search' do
104
+ xhr :get, :search, edgarj_search_form: {_id: @book.id}
105
+ assert_response :success
106
+ assert_equal 1, assigns(:list).count
107
+ end
108
+
109
+ should 'search with operator' do
110
+ xhr :get, :search, edgarj_search_form: {_id: @book.id},
111
+ edgarj_search_form: {
112
+ edgarj_search_form_operator: {
113
+ _id: '<>'
114
+ }
115
+ }
116
+ assert_response :success
117
+ assert assigns(:list).count > 1
118
+ end
119
+
120
+ should 'not search by invalid condition' do
121
+ xhr :get, :search, edgarj_search_form: {_id: 'a'}
122
+ assert_response :success
123
+ assert ((l = assigns(:list))== nil || l.count == 0)
124
+ assert !assigns(:search).valid?
125
+ end
126
+
127
+ should 'search_clear' do
128
+ xhr :get, :search_clear
129
+ assert_response :success
130
+ end
131
+ end
132
+
133
+ # test Edgarj::AuthenticationMixin
134
+
135
+ should 'current_user' do
136
+ get :index
137
+ assert_equal users(:root), @controller.send(:current_user)
138
+ end
139
+ end
140
+
141
+ context 'read-only user' do
142
+ setup do
143
+ login_as(:book_reader)
144
+ @book = books(:tacit_dimension)
145
+ pi = edgarj_page_infos(:book_reader_books)
146
+ pi.record = Edgarj::SearchForm.new(Book, {})
147
+ pi.save!
148
+ end
149
+
150
+ should "get index" do
151
+ get :index
152
+ assert_response :success
153
+ assert_not_nil assigns(:list)
154
+ end
155
+
156
+ should "paginate" do
157
+ xhr :get, :index, page: 2
158
+ assert_response :success
159
+ assert_not_nil assigns(:list)
160
+ end
161
+
162
+ should "sort" do
163
+ xhr :put, :page_info_save,
164
+ id: edgarj_page_infos(:book_reader_books).id,
165
+ edgarj_page_info: {
166
+ dir: 'asc',
167
+ order_by: 'name'
168
+ }
169
+ assert_response :success
170
+ assert_not_nil assigns(:list)
171
+ assert_equal 'asc', assigns(:page_info).dir
172
+ assert_equal 'name', assigns(:page_info).order_by
173
+ end
174
+
175
+ should "not create book" do
176
+ assert_no_difference('Book.count') do
177
+ xhr :post, :create, book: { name: @book.name }
178
+ end
179
+ assert_template 'message_popup'
180
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
181
+ end
182
+
183
+ should "not create book invalid" do
184
+ assert_no_difference('Book.count') do
185
+ xhr :post, :create, book: { name: nil }
186
+ end
187
+ assert_template 'message_popup'
188
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
189
+ end
190
+
191
+ should "show book in HTML" do
192
+ get :show, id: @book
193
+ assert_response :success
194
+ assert_not_nil assigns(:record)
195
+ end
196
+
197
+ should "show book in JS" do
198
+ xhr :get, :show, id: @book
199
+ assert_response :success
200
+ assert_not_nil assigns(:record)
201
+ end
202
+
203
+ should "not update book" do
204
+ assert_no_difference('Book.count') do
205
+ xhr :put, :update, id: @book, book: { name: 'X' }
206
+ end
207
+ assert_template 'message_popup'
208
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
209
+ assert_not_equal 'X', @book.reload.name
210
+ end
211
+
212
+ should "not destroy book" do
213
+ assert_no_difference('Book.count') do
214
+ xhr :delete, :destroy, id: @book
215
+ end
216
+ assert_template 'message_popup'
217
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
218
+ end
219
+
220
+ # additional routes tests
221
+
222
+ should "clear" do
223
+ assert_no_difference('Book.count') do
224
+ xhr :get, :clear
225
+ end
226
+ assert_response :success
227
+ assert_not_nil assigns(:record)
228
+ end
229
+
230
+ should "csv_download" do
231
+ get :csv_download
232
+ assert_response :success
233
+ end
234
+
235
+
236
+ should 'search' do
237
+ xhr :get, :search, edgarj_search_form: {_id: books(:tacit_dimension).id}
238
+ assert_response :success
239
+ assert_equal 1, assigns(:list).count
240
+ end
241
+
242
+ should 'search_clear' do
243
+ xhr :get, :search_clear
244
+ assert_response :success
245
+ end
246
+
247
+ should 'search_save' do
248
+ skip 'search_save'
249
+ end
250
+
251
+ should 'search_load' do
252
+ skip 'search_load'
253
+ end
254
+
255
+ =begin
256
+ should 'zip_complete' do
257
+ xhr :get, :zip_complete,
258
+ zip: '1000000',
259
+ adrs_prefix: :book_adrs_attributes_
260
+ assert_response :success
261
+ assert_equal 'Tokyo', assigns(:address).prefecture
262
+ end
263
+ =end
264
+
265
+ # test Edgarj::AuthenticationMixin
266
+
267
+ should 'current_user' do
268
+ get :index
269
+
270
+ assert_equal users(:book_reader), @controller.send(:current_user)
271
+ end
272
+ end
273
+
274
+ context 'not-permitted user' do
275
+ setup do
276
+ login_as(:not_permitted)
277
+ @book = books(:tacit_dimension)
278
+ end
279
+
280
+ should "not get index" do
281
+ get :index
282
+ assert_redirected_to top_path
283
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
284
+ end
285
+
286
+ should "not paginate" do
287
+ xhr :get, :index, page: 2
288
+ assert_template 'message_popup'
289
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
290
+ end
291
+
292
+ should "not sort" do
293
+ xhr :put, :page_info_save,
294
+ id: edgarj_page_infos(:book_reader_books).id,
295
+ edgarj_page_info: {
296
+ dir: 'asc',
297
+ order_by: 'name'
298
+ }
299
+ assert_template 'message_popup'
300
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
301
+ end
302
+
303
+ should "not create book" do
304
+ assert_no_difference('Book.count') do
305
+ xhr :post, :create, book: { name: @book.name }
306
+ end
307
+ assert_template 'message_popup'
308
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
309
+ end
310
+
311
+ should "not create book invalid" do
312
+ assert_no_difference('Book.count') do
313
+ xhr :post, :create, book: { name: nil }
314
+ end
315
+
316
+ assert_template 'message_popup'
317
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
318
+ end
319
+
320
+ should "not show book in HTML" do
321
+ get :show, id: @book
322
+ assert_redirected_to top_path
323
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
324
+ end
325
+
326
+ should "not show book in JS" do
327
+ xhr :get, :show, id: @book
328
+ assert_template 'message_popup'
329
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
330
+ end
331
+
332
+ should "not update book" do
333
+ assert_no_difference('Book.count') do
334
+ xhr :put, :update, id: @book, book: { name: @book.name }
335
+ end
336
+ assert_template 'message_popup'
337
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
338
+ assert_not_equal 'X', @book.reload.name
339
+ end
340
+
341
+ should "not destroy book" do
342
+ assert_no_difference('Book.count') do
343
+ xhr :delete, :destroy, id: @book
344
+ end
345
+ assert_template 'message_popup'
346
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
347
+ end
348
+
349
+ # additional routes tests
350
+
351
+ should "not clear" do
352
+ assert_no_difference('Book.count') do
353
+ xhr :get, :clear
354
+ end
355
+ assert_template 'message_popup'
356
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
357
+ end
358
+
359
+ should "not csv_download" do
360
+ get :csv_download
361
+ assert_redirected_to top_path
362
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
363
+ end
364
+
365
+ should 'not search' do
366
+ xhr :get, :search, edgarj_search_form: {_id: books(:tacit_dimension).id}
367
+ assert_template 'message_popup'
368
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
369
+ end
370
+
371
+ should 'not search_clear' do
372
+ xhr :get, :search_clear
373
+ assert_template 'message_popup'
374
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
375
+ end
376
+
377
+ should 'not search_save' do
378
+ skip 'search_save'
379
+ end
380
+
381
+ should 'not search_load' do
382
+ skip 'search_load'
383
+ end
384
+
385
+ =begin
386
+ should 'not zip_complete' do
387
+ xhr :get, :zip_complete,
388
+ zip: '1000000',
389
+ adrs_prefix: :book_adrs_attributes_
390
+ assert_nil assigns(:address)
391
+ assert_template 'message_popup'
392
+ assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
393
+ end
394
+ =end
395
+
396
+ # test Edgarj::AuthenticationMixin
397
+
398
+ should 'current_user' do
399
+ get :index
400
+ assert_equal users(:not_permitted), @controller.send(:current_user)
401
+ end
402
+ end
403
+
404
+ context 'not-login' do
405
+ setup do
406
+ @book = books(:tacit_dimension)
407
+ end
408
+
409
+ should "not get index" do
410
+ get :index
411
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
412
+ end
413
+
414
+ should "not paginate" do
415
+ xhr :get, :index, page: 2
416
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
417
+ end
418
+
419
+ should "not sort" do
420
+ xhr :put, :page_info_save,
421
+ id: edgarj_page_infos(:book_reader_books).id,
422
+ edgarj_page_info: {
423
+ dir: 'asc',
424
+ order_by: 'name'
425
+ }
426
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
427
+ end
428
+
429
+ should "not create book" do
430
+ assert_no_difference('Book.count') do
431
+ xhr :post, :create, book: { name: @book.name }
432
+ end
433
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
434
+ end
435
+
436
+ should "not create book invalid" do
437
+ assert_no_difference('Book.count') do
438
+ xhr :post, :create, book: { name: nil }
439
+ end
440
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
441
+ end
442
+
443
+ should "not show book in HTML" do
444
+ get :show, id: @book
445
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
446
+ end
447
+
448
+ should "not show book in JS" do
449
+ xhr :get, :show, id: @book
450
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
451
+ end
452
+
453
+ should "not update book" do
454
+ assert_no_difference('Book.count') do
455
+ xhr :put, :update, id: @book, book: { name: @book.name }
456
+ end
457
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
458
+ end
459
+
460
+ should "not destroy book" do
461
+ assert_no_difference('Book.count') do
462
+ xhr :delete, :destroy, id: @book
463
+ end
464
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
465
+ end
466
+
467
+ # additional routes tests
468
+
469
+ should "not clear" do
470
+ assert_no_difference('Book.count') do
471
+ xhr :get, :clear
472
+ end
473
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
474
+ end
475
+
476
+ should "not csv_download" do
477
+ get :csv_download
478
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
479
+ end
480
+
481
+ should 'not search' do
482
+ xhr :get, :search, edgarj_search_form: {_id: books(:tacit_dimension).id}
483
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
484
+ end
485
+
486
+ should 'not search_clear' do
487
+ xhr :get, :search_clear
488
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
489
+ end
490
+
491
+ should 'not search_save' do
492
+ skip 'search_save'
493
+ end
494
+
495
+ should 'not search_load' do
496
+ skip 'search_load'
497
+ end
498
+
499
+ =begin
500
+ should 'not zip_complete' do
501
+ xhr :get, :zip_complete,
502
+ zip: '1000000',
503
+ adrs_prefix: :book_adrs_attributes_
504
+ assert_template 'edgarj/sssns/new'
505
+ assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
506
+ end
507
+ =end
508
+
509
+ # test Edgarj::AuthenticationMixin
510
+
511
+ should 'be nil current_user' do
512
+ get :index
513
+ assert_nil @controller.send(:current_user)
514
+ end
515
+ end
516
+ end
@@ -0,0 +1,4 @@
1
+ require 'test_helper'
2
+
3
+ class AuthorsHelperTest < ActionView::TestCase
4
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class AuthorTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class BookTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class EdgarjTest < ActiveSupport::TestCase
4
+ test "truth" do
5
+ assert_kind_of Module, Edgarj
6
+ end
7
+ end
@@ -0,0 +1,32 @@
1
+ m_polanyi:
2
+ name: Michael Polanyi
3
+ user_group_id: <%= Edgarj::label('author_assignee_science_rep') %>
4
+ created_at: <%= Time.zone.local(2012, 9,29,23,59,59).to_s(:db) %>
5
+
6
+ t_nangou:
7
+ name: Tsugumasa Nangou
8
+ user_group_id: <%= Edgarj::label('author_assignee_science_rep') %>
9
+ created_at: <%= Time.zone.local(2012, 9,30,23,59,59).to_s(:db) %>
10
+
11
+ e_masuda:
12
+ name: Etsusuke Masuda
13
+ created_at: <%= Time.zone.local(2012,10, 1, 0, 0, 0).to_s(:db) %>
14
+
15
+ y_yasuhiko:
16
+ name: Yoshikazu Yasuhiko
17
+ user_group_id: <%= Edgarj::label('author_assignee_comic_rep') %>
18
+ created_at: <%= Time.zone.local(2012,10, 1, 0, 0, 1).to_s(:db) %>
19
+
20
+ r_yamagishi:
21
+ name: Ryoko Yamagishi
22
+ user_group_id: <%= Edgarj::label('author_assignee_comic_rep') %>
23
+ created_at: <%= Time.zone.local(2012,10, 1,23,59,59).to_s(:db) %>
24
+
25
+ m_hagio:
26
+ name: Moto Hagio
27
+ user_group_id: <%= Edgarj::label('author_assignee_comic_rep') %>
28
+ created_at: <%= Time.zone.local(2012,10, 2, 0, 0, 0).to_s(:db) %>
29
+
30
+ homeless:
31
+ name: Homeless Writer
32
+ created_at: <%= Time.zone.local(2012,10, 2, 0, 0, 1).to_s(:db) %>
@@ -0,0 +1,56 @@
1
+ # for edgarj:scaffold generated controller test
2
+ one:
3
+ author: m_polanyi
4
+ name: The Tacit Dimension
5
+
6
+ tacit_dimension:
7
+ author: m_polanyi
8
+ name: The Tacit Dimension
9
+
10
+ personal_knowledge:
11
+ author: m_polanyi
12
+ name: Personal Knowledge
13
+
14
+ meaning:
15
+ author: m_polanyi
16
+ name: Meaning
17
+
18
+ logic_of_liberty:
19
+ author: m_polanyi
20
+ name: Logic of Liberty
21
+
22
+ knowing_n_being:
23
+ author: m_polanyi
24
+ name: Knowing and Being
25
+
26
+ science_of_budo:
27
+ author: t_nangou
28
+ name: Science of Budo
29
+
30
+ what_is_budo:
31
+ author: t_nangou
32
+ name: What is Budo
33
+
34
+ the_way_of_budo_training:
35
+ author: t_nangou
36
+ name: The way of Budo Training
37
+
38
+ miracle_of_japan_history:
39
+ author: e_masuda
40
+ name: Miracle of Japan History
41
+
42
+ the_origin_01:
43
+ author: y_yasuhiko
44
+ name: Mobile Suit Gundam THE ORIGIN 01
45
+
46
+ the_origin_02:
47
+ author: y_yasuhiko
48
+ name: Mobile Suit Gundam THE ORIGIN 02
49
+
50
+ the_origin_03:
51
+ author: y_yasuhiko
52
+ name: Mobile Suit Gundam THE ORIGIN 03
53
+
54
+ the_origin_04:
55
+ author: y_yasuhiko
56
+ name: Mobile Suit Gundam THE ORIGIN 04