enju_library 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (217) hide show
  1. data/README.rdoc +2 -2
  2. data/app/controllers/shelves_controller.rb +2 -1
  3. data/app/helpers/shelves_helper.rb +9 -5
  4. data/app/models/library.rb +1 -2
  5. data/app/models/library_group.rb +7 -1
  6. data/app/models/shelf.rb +1 -0
  7. data/app/views/accepts/index.html.erb +2 -2
  8. data/app/views/bookstores/index.html.erb +3 -3
  9. data/app/views/bookstores/show.html.erb +1 -1
  10. data/app/views/budget_types/index.html.erb +2 -2
  11. data/app/views/libraries/_form.html.erb +1 -1
  12. data/app/views/libraries/index.html.erb +3 -3
  13. data/app/views/libraries/show.html.erb +1 -1
  14. data/app/views/library_groups/index.html.erb +1 -1
  15. data/app/views/request_status_types/index.html.erb +2 -2
  16. data/app/views/request_types/index.html.erb +2 -2
  17. data/app/views/search_engines/index.html.erb +2 -2
  18. data/app/views/shelves/_library_facet.html.erb +1 -4
  19. data/app/views/shelves/index.html.erb +2 -2
  20. data/app/views/shelves/show.mobile.erb +33 -0
  21. data/app/views/subscribes/index.html.erb +2 -2
  22. data/app/views/subscriptions/index.html.erb +2 -2
  23. data/app/views/subscriptions/show.html.erb +1 -1
  24. data/lib/enju_library/engine.rb +0 -8
  25. data/lib/enju_library/version.rb +1 -1
  26. data/lib/enju_library.rb +0 -2
  27. data/spec/controllers/bookstores_controller_spec.rb +447 -0
  28. data/spec/controllers/budget_types_controller_spec.rb +167 -0
  29. data/spec/controllers/libraries_controller_spec.rb +517 -0
  30. data/spec/controllers/library_groups_controller_spec.rb +133 -0
  31. data/spec/controllers/request_status_types_controller_spec.rb +447 -0
  32. data/spec/controllers/request_types_controller_spec.rb +447 -0
  33. data/spec/controllers/search_engines_controller_spec.rb +447 -0
  34. data/spec/controllers/shelves_controller_spec.rb +437 -0
  35. data/spec/controllers/subscribes_controller_spec.rb +441 -0
  36. data/spec/controllers/subscriptions_controller_spec.rb +442 -0
  37. data/{test → spec}/dummy/README.rdoc +0 -0
  38. data/{test → spec}/dummy/Rakefile +0 -0
  39. data/{test → spec}/dummy/app/assets/javascripts/application.js +0 -0
  40. data/{test → spec}/dummy/app/assets/stylesheets/application.css +0 -0
  41. data/spec/dummy/app/controllers/application_controller.rb +59 -0
  42. data/spec/dummy/app/helpers/application_helper.rb +13 -0
  43. data/spec/dummy/app/models/ability.rb +51 -0
  44. data/spec/dummy/app/models/picture_file.rb +49 -0
  45. data/spec/dummy/app/models/role.rb +46 -0
  46. data/spec/dummy/app/models/user.rb +94 -0
  47. data/spec/dummy/app/models/user_group.rb +40 -0
  48. data/spec/dummy/app/models/user_has_role.rb +5 -0
  49. data/{test → spec}/dummy/app/views/layouts/application.html.erb +0 -0
  50. data/spec/dummy/app/views/page/403.html.erb +9 -0
  51. data/spec/dummy/app/views/page/403.mobile.erb +5 -0
  52. data/spec/dummy/app/views/page/403.xml.erb +4 -0
  53. data/spec/dummy/app/views/page/404.html.erb +9 -0
  54. data/spec/dummy/app/views/page/404.mobile.erb +5 -0
  55. data/spec/dummy/app/views/page/404.xml.erb +4 -0
  56. data/{test → spec}/dummy/config/application.rb +3 -0
  57. data/{test → spec}/dummy/config/boot.rb +0 -0
  58. data/{test → spec}/dummy/config/database.yml +0 -0
  59. data/{test → spec}/dummy/config/environment.rb +0 -0
  60. data/{test → spec}/dummy/config/environments/development.rb +0 -0
  61. data/{test → spec}/dummy/config/environments/production.rb +0 -0
  62. data/{test → spec}/dummy/config/environments/test.rb +0 -0
  63. data/{test → spec}/dummy/config/initializers/backtrace_silencers.rb +0 -0
  64. data/spec/dummy/config/initializers/devise.rb +205 -0
  65. data/{test → spec}/dummy/config/initializers/inflections.rb +0 -0
  66. data/{test → spec}/dummy/config/initializers/mime_types.rb +0 -0
  67. data/{test → spec}/dummy/config/initializers/secret_token.rb +0 -0
  68. data/{test → spec}/dummy/config/initializers/session_store.rb +0 -0
  69. data/{test → spec}/dummy/config/initializers/wrap_parameters.rb +0 -0
  70. data/{test → spec}/dummy/config/locales/en.yml +0 -0
  71. data/{test → spec}/dummy/config/routes.rb +2 -0
  72. data/{test → spec}/dummy/config.ru +0 -0
  73. data/spec/dummy/db/development.sqlite3 +0 -0
  74. data/spec/dummy/db/migrate/001_create_patrons.rb +58 -0
  75. data/spec/dummy/db/migrate/005_create_manifestations.rb +61 -0
  76. data/spec/dummy/db/migrate/006_create_items.rb +31 -0
  77. data/spec/dummy/db/migrate/012_create_owns.rb +12 -0
  78. data/spec/dummy/db/migrate/015_create_creates.rb +12 -0
  79. data/spec/dummy/db/migrate/047_create_produces.rb +12 -0
  80. data/spec/dummy/db/migrate/073_create_carrier_types.rb +11 -0
  81. data/spec/dummy/db/migrate/077_create_user_groups.rb +16 -0
  82. data/spec/dummy/db/migrate/125_create_donates.rb +12 -0
  83. data/spec/dummy/db/migrate/20080830154109_create_realizes.rb +13 -0
  84. data/spec/dummy/db/migrate/20080830172106_create_exemplifies.rb +13 -0
  85. data/spec/dummy/db/migrate/20080905191442_create_patron_types.rb +12 -0
  86. data/spec/dummy/db/migrate/20081025083323_create_countries.rb +28 -0
  87. data/spec/dummy/db/migrate/20081025083905_create_languages.rb +23 -0
  88. data/spec/dummy/db/migrate/20081027150907_create_picture_files.rb +16 -0
  89. data/spec/dummy/db/migrate/20090705133942_add_attachments_picture_to_picture_file.rb +15 -0
  90. data/spec/dummy/db/migrate/20090812151902_create_patron_relationship_types.rb +12 -0
  91. data/spec/dummy/db/migrate/20091012101112_add_dcndl_schema.rb +27 -0
  92. data/spec/dummy/db/migrate/20091202124834_create_versions.rb +18 -0
  93. data/spec/dummy/db/migrate/20091214131723_create_series_statements.rb +13 -0
  94. data/spec/dummy/db/migrate/20100223121519_rename_series_statement_title_to_original_title.rb +13 -0
  95. data/spec/dummy/db/migrate/20100321235924_add_series_statement_identifier_to_series_statement.rb +10 -0
  96. data/spec/dummy/db/migrate/20100525124311_create_manifestation_relationships.rb +13 -0
  97. data/spec/dummy/db/migrate/20100606073747_create_patron_relationships.rb +13 -0
  98. data/spec/dummy/db/migrate/20100607044753_create_manifestation_relationship_types.rb +12 -0
  99. data/spec/dummy/db/migrate/20100814091104_add_position_to_patron_relationship.rb +11 -0
  100. data/spec/dummy/db/migrate/20101212070145_add_acquired_at_to_item.rb +9 -0
  101. data/spec/dummy/db/migrate/20110301035123_add_pub_date_to_manifestation.rb +9 -0
  102. data/spec/dummy/db/migrate/20110301121550_add_birth_date_and_death_date_to_patron.rb +11 -0
  103. data/spec/dummy/db/migrate/20110318183304_add_valid_period_for_new_user_to_user_group.rb +13 -0
  104. data/spec/dummy/db/migrate/20110425133109_add_issn_to_series_statement.rb +9 -0
  105. data/spec/dummy/db/migrate/20110618091240_add_periodical_to_series_statement.rb +9 -0
  106. data/spec/dummy/db/migrate/20110619064807_add_edition_string_to_manifestation.rb +9 -0
  107. data/{db → spec/dummy/db}/migrate/20110620173525_add_bookstore_id_to_item.rb +0 -0
  108. data/spec/dummy/db/migrate/20110627034940_create_series_statement_merge_lists.rb +9 -0
  109. data/spec/dummy/db/migrate/20110627035057_create_series_statement_merges.rb +12 -0
  110. data/spec/dummy/db/migrate/20110820131417_create_series_has_manifestations.rb +13 -0
  111. data/spec/dummy/db/migrate/20110916053430_rename_manifestation_number_list_to_number_string.rb +13 -0
  112. data/spec/dummy/db/migrate/20110916091020_add_volume_number_to_manifestation.rb +13 -0
  113. data/spec/dummy/db/migrate/20110916103953_add_manifestaiton_id_to_series_statement.rb +10 -0
  114. data/spec/dummy/db/migrate/20110918161853_rename_series_statement_manifestation_id_to_root_manifestation_id.rb +13 -0
  115. data/spec/dummy/db/migrate/20110918162329_add_note_to_series_statement.rb +9 -0
  116. data/spec/dummy/db/migrate/20111124110059_create_create_types.rb +12 -0
  117. data/spec/dummy/db/migrate/20111124110319_create_realize_types.rb +12 -0
  118. data/spec/dummy/db/migrate/20111124110355_create_produce_types.rb +12 -0
  119. data/spec/dummy/db/migrate/20111124112131_add_create_type_to_create.rb +7 -0
  120. data/spec/dummy/db/migrate/20111201121844_create_roles.rb +12 -0
  121. data/spec/dummy/db/migrate/20111201155456_create_users.rb +16 -0
  122. data/spec/dummy/db/migrate/20111201155513_add_devise_to_users.rb +44 -0
  123. data/spec/dummy/db/migrate/20111201163718_create_user_has_roles.rb +10 -0
  124. data/spec/dummy/db/migrate/20120125152919_add_title_subseries_transcription_to_series_statement.rb +6 -0
  125. data/spec/dummy/db/migrate/20120413072700_add_picture_meta_to_picture_file.rb +5 -0
  126. data/spec/dummy/db/migrate/20120413100352_add_fingerprint_to_picture_file.rb +5 -0
  127. data/spec/dummy/db/schema.rb +642 -0
  128. data/spec/dummy/db/test.sqlite3 +0 -0
  129. data/{test → spec}/dummy/public/404.html +0 -0
  130. data/{test → spec}/dummy/public/422.html +0 -0
  131. data/{test → spec}/dummy/public/500.html +0 -0
  132. data/{test → spec}/dummy/public/favicon.ico +0 -0
  133. data/{test → spec}/dummy/script/rails +0 -0
  134. data/spec/dummy/solr/conf/admin-extra.html +31 -0
  135. data/spec/dummy/solr/conf/elevate.xml +36 -0
  136. data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  137. data/spec/dummy/solr/conf/protwords.txt +21 -0
  138. data/spec/dummy/solr/conf/schema.xml +238 -0
  139. data/spec/dummy/solr/conf/scripts.conf +24 -0
  140. data/spec/dummy/solr/conf/solrconfig.xml +934 -0
  141. data/spec/dummy/solr/conf/spellings.txt +2 -0
  142. data/spec/dummy/solr/conf/stopwords.txt +58 -0
  143. data/spec/dummy/solr/conf/synonyms.txt +31 -0
  144. data/spec/dummy/solr/data/test/index/_k.fdt +0 -0
  145. data/spec/dummy/solr/data/test/index/_k.fdx +0 -0
  146. data/spec/dummy/solr/data/test/index/_k.fnm +3 -0
  147. data/spec/dummy/solr/data/test/index/_k.frq +1 -0
  148. data/spec/dummy/solr/data/test/index/_k.nrm +1 -0
  149. data/spec/dummy/solr/data/test/index/_k.prx +0 -0
  150. data/spec/dummy/solr/data/test/index/_k.tii +0 -0
  151. data/spec/dummy/solr/data/test/index/_k.tis +0 -0
  152. data/spec/dummy/solr/data/test/index/segments.gen +0 -0
  153. data/spec/dummy/solr/data/test/index/segments_18 +0 -0
  154. data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
  155. data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
  156. data/spec/dummy/tmp/cache/4AD/470/country_all +0 -0
  157. data/spec/factories/bookstore.rb +5 -0
  158. data/spec/factories/budget_types.rb +5 -0
  159. data/spec/factories/carrier_types.yml +51 -0
  160. data/spec/factories/library.rb +13 -0
  161. data/spec/factories/manifestation.rb +6 -0
  162. data/spec/factories/request_status_type.rb +5 -0
  163. data/spec/factories/request_type.rb +5 -0
  164. data/spec/factories/search_engine.rb +9 -0
  165. data/spec/factories/shelf.rb +6 -0
  166. data/spec/factories/subscribe.rb +8 -0
  167. data/spec/factories/subscription.rb +6 -0
  168. data/spec/factories/user.rb +37 -0
  169. data/spec/fixtures/bookstores.yml +107 -0
  170. data/spec/fixtures/budget_types.yml +29 -0
  171. data/spec/fixtures/carrier_types.yml +51 -0
  172. data/spec/fixtures/languages.yml +1901 -0
  173. data/spec/fixtures/libraries.yml +102 -0
  174. data/spec/fixtures/library_groups.yml +33 -0
  175. data/spec/fixtures/manifestations.yml +2022 -0
  176. data/spec/fixtures/request_status_types.yml +63 -0
  177. data/spec/fixtures/request_types.yml +55 -0
  178. data/spec/fixtures/roles.yml +21 -0
  179. data/spec/fixtures/search_engines.yml +41 -0
  180. data/spec/fixtures/shelves.yml +47 -0
  181. data/spec/fixtures/subscribes.yml +45 -0
  182. data/spec/fixtures/subscriptions.yml +27 -0
  183. data/spec/fixtures/user_groups.yml +31 -0
  184. data/spec/fixtures/user_has_roles.yml +41 -0
  185. data/spec/fixtures/users.yml +129 -0
  186. data/spec/models/bookstore_spec.rb +26 -0
  187. data/spec/models/budget_type_spec.rb +22 -0
  188. data/spec/models/library_group_spec.rb +33 -0
  189. data/spec/models/library_spec.rb +47 -0
  190. data/spec/models/request_status_type_spec.rb +21 -0
  191. data/spec/models/request_type_spec.rb +21 -0
  192. data/spec/models/search_engine_spec.rb +29 -0
  193. data/spec/models/shelf_spec.rb +29 -0
  194. data/spec/models/subscribe_spec.rb +21 -0
  195. data/spec/models/subscription_spec.rb +26 -0
  196. data/spec/routing/budget_types_routing_spec.rb +35 -0
  197. data/spec/routing/libraries_routing_spec.rb +35 -0
  198. data/spec/spec_helper.rb +55 -0
  199. data/spec/support/controller_macros.rb +46 -0
  200. data/spec/support/devise.rb +4 -0
  201. data/spec/support/vcr.rb +9 -0
  202. data/spec/views/budget_types/edit.html.erb_spec.rb +23 -0
  203. data/spec/views/budget_types/index.html.erb_spec.rb +28 -0
  204. data/spec/views/budget_types/new.html.erb_spec.rb +23 -0
  205. data/spec/views/budget_types/show.html.erb_spec.rb +24 -0
  206. metadata +372 -198
  207. data/lib/enju_library/master_model.rb +0 -19
  208. data/lib/enju_library/url_validator.rb +0 -10
  209. data/test/dummy/app/controllers/application_controller.rb +0 -3
  210. data/test/dummy/app/helpers/application_helper.rb +0 -2
  211. data/test/dummy/db/development.sqlite3 +0 -0
  212. data/test/dummy/db/test.sqlite3 +0 -0
  213. data/test/dummy/log/development.log +0 -0
  214. data/test/dummy/log/test.log +0 -0
  215. data/test/enju_library_test.rb +0 -7
  216. data/test/integration/navigation_test.rb +0 -10
  217. data/test/test_helper.rb +0 -15
@@ -0,0 +1,447 @@
1
+ require 'spec_helper'
2
+ require 'sunspot/rails/spec_helper'
3
+
4
+ describe BookstoresController do
5
+ fixtures :all
6
+ disconnect_sunspot
7
+
8
+ def valid_attributes
9
+ FactoryGirl.attributes_for(:bookstore)
10
+ end
11
+
12
+ describe "GET index" do
13
+ before(:each) do
14
+ FactoryGirl.create(:bookstore)
15
+ end
16
+
17
+ describe "When logged in as Administrator" do
18
+ login_admin
19
+
20
+ it "assigns all bookstores as @bookstores" do
21
+ get :index
22
+ assigns(:bookstores).should eq(Bookstore.page(1))
23
+ end
24
+ end
25
+
26
+ describe "When logged in as Librarian" do
27
+ login_librarian
28
+
29
+ it "assigns all bookstores as @bookstores" do
30
+ get :index
31
+ assigns(:bookstores).should eq(Bookstore.page(1))
32
+ end
33
+ end
34
+
35
+ describe "When logged in as User" do
36
+ login_user
37
+
38
+ it "assigns all bookstores as @bookstores" do
39
+ get :index
40
+ assigns(:bookstores).should be_empty
41
+ response.should be_forbidden
42
+ end
43
+ end
44
+
45
+ describe "When not logged in" do
46
+ it "assigns all bookstores as @bookstores" do
47
+ get :index
48
+ assigns(:bookstores).should be_empty
49
+ response.should redirect_to(new_user_session_url)
50
+ end
51
+ end
52
+ end
53
+
54
+ describe "GET show" do
55
+ before(:each) do
56
+ @bookstore = FactoryGirl.create(:bookstore)
57
+ end
58
+
59
+ describe "When logged in as Administrator" do
60
+ login_admin
61
+
62
+ it "assigns the requested bookstore as @bookstore" do
63
+ get :show, :id => @bookstore.id
64
+ assigns(:bookstore).should eq(@bookstore)
65
+ end
66
+ end
67
+
68
+ describe "When logged in as Librarian" do
69
+ login_librarian
70
+
71
+ it "assigns the requested bookstore as @bookstore" do
72
+ get :show, :id => @bookstore.id
73
+ assigns(:bookstore).should eq(@bookstore)
74
+ end
75
+ end
76
+
77
+ describe "When logged in as User" do
78
+ login_user
79
+
80
+ it "assigns the requested bookstore as @bookstore" do
81
+ get :show, :id => @bookstore.id
82
+ assigns(:bookstore).should eq(@bookstore)
83
+ end
84
+ end
85
+
86
+ describe "When not logged in" do
87
+ it "assigns the requested bookstore as @bookstore" do
88
+ get :show, :id => @bookstore.id
89
+ assigns(:bookstore).should eq(@bookstore)
90
+ end
91
+ end
92
+ end
93
+
94
+ describe "GET new" do
95
+ describe "When logged in as Administrator" do
96
+ login_admin
97
+
98
+ it "assigns the requested bookstore as @bookstore" do
99
+ get :new
100
+ assigns(:bookstore).should_not be_valid
101
+ response.should be_success
102
+ end
103
+ end
104
+
105
+ describe "When logged in as Librarian" do
106
+ login_librarian
107
+
108
+ it "should not assign the requested bookstore as @bookstore" do
109
+ get :new
110
+ assigns(:bookstore).should_not be_valid
111
+ response.should be_forbidden
112
+ end
113
+ end
114
+
115
+ describe "When logged in as User" do
116
+ login_user
117
+
118
+ it "should not assign the requested bookstore as @bookstore" do
119
+ get :new
120
+ assigns(:bookstore).should_not be_valid
121
+ response.should be_forbidden
122
+ end
123
+ end
124
+
125
+ describe "When not logged in" do
126
+ it "should not assign the requested bookstore as @bookstore" do
127
+ get :new
128
+ assigns(:bookstore).should_not be_valid
129
+ response.should redirect_to(new_user_session_url)
130
+ end
131
+ end
132
+ end
133
+
134
+ describe "GET edit" do
135
+ before(:each) do
136
+ @bookstore = FactoryGirl.create(:bookstore)
137
+ end
138
+
139
+ describe "When logged in as Administrator" do
140
+ login_admin
141
+
142
+ it "assigns the requested bookstore as @bookstore" do
143
+ get :edit, :id => @bookstore.id
144
+ assigns(:bookstore).should eq(@bookstore)
145
+ end
146
+ end
147
+
148
+ describe "When logged in as Librarian" do
149
+ login_librarian
150
+
151
+ it "assigns the requested bookstore as @bookstore" do
152
+ get :edit, :id => @bookstore.id
153
+ response.should be_forbidden
154
+ end
155
+ end
156
+
157
+ describe "When logged in as User" do
158
+ login_user
159
+
160
+ it "assigns the requested bookstore as @bookstore" do
161
+ get :edit, :id => @bookstore.id
162
+ response.should be_forbidden
163
+ end
164
+ end
165
+
166
+ describe "When not logged in" do
167
+ it "should not assign the requested bookstore as @bookstore" do
168
+ get :edit, :id => @bookstore.id
169
+ response.should redirect_to(new_user_session_url)
170
+ end
171
+ end
172
+ end
173
+
174
+ describe "POST create" do
175
+ before(:each) do
176
+ @attrs = valid_attributes
177
+ @invalid_attrs = {:name => ''}
178
+ end
179
+
180
+ describe "When logged in as Administrator" do
181
+ login_admin
182
+
183
+ describe "with valid params" do
184
+ it "assigns a newly created bookstore as @bookstore" do
185
+ post :create, :bookstore => @attrs
186
+ assigns(:bookstore).should be_valid
187
+ end
188
+
189
+ it "redirects to the created bookstore" do
190
+ post :create, :bookstore => @attrs
191
+ response.should redirect_to(assigns(:bookstore))
192
+ end
193
+ end
194
+
195
+ describe "with invalid params" do
196
+ it "assigns a newly created but unsaved bookstore as @bookstore" do
197
+ post :create, :bookstore => @invalid_attrs
198
+ assigns(:bookstore).should_not be_valid
199
+ end
200
+
201
+ it "should be successful" do
202
+ post :create, :bookstore => @invalid_attrs
203
+ response.should be_success
204
+ end
205
+ end
206
+ end
207
+
208
+ describe "When logged in as Librarian" do
209
+ login_librarian
210
+
211
+ describe "with valid params" do
212
+ it "assigns a newly created bookstore as @bookstore" do
213
+ post :create, :bookstore => @attrs
214
+ assigns(:bookstore).should be_valid
215
+ end
216
+
217
+ it "should be forbidden" do
218
+ post :create, :bookstore => @attrs
219
+ response.should be_forbidden
220
+ end
221
+ end
222
+
223
+ describe "with invalid params" do
224
+ it "assigns a newly created but unsaved bookstore as @bookstore" do
225
+ post :create, :bookstore => @invalid_attrs
226
+ assigns(:bookstore).should_not be_valid
227
+ end
228
+
229
+ it "should be forbidden" do
230
+ post :create, :bookstore => @invalid_attrs
231
+ response.should be_forbidden
232
+ end
233
+ end
234
+ end
235
+
236
+ describe "When logged in as User" do
237
+ login_user
238
+
239
+ describe "with valid params" do
240
+ it "assigns a newly created bookstore as @bookstore" do
241
+ post :create, :bookstore => @attrs
242
+ assigns(:bookstore).should be_valid
243
+ end
244
+
245
+ it "should be forbidden" do
246
+ post :create, :bookstore => @attrs
247
+ response.should be_forbidden
248
+ end
249
+ end
250
+
251
+ describe "with invalid params" do
252
+ it "assigns a newly created but unsaved bookstore as @bookstore" do
253
+ post :create, :bookstore => @invalid_attrs
254
+ assigns(:bookstore).should_not be_valid
255
+ end
256
+
257
+ it "should be forbidden" do
258
+ post :create, :bookstore => @invalid_attrs
259
+ response.should be_forbidden
260
+ end
261
+ end
262
+ end
263
+
264
+ describe "When not logged in" do
265
+ describe "with valid params" do
266
+ it "assigns a newly created bookstore as @bookstore" do
267
+ post :create, :bookstore => @attrs
268
+ assigns(:bookstore).should be_valid
269
+ end
270
+
271
+ it "should be forbidden" do
272
+ post :create, :bookstore => @attrs
273
+ response.should redirect_to(new_user_session_url)
274
+ end
275
+ end
276
+
277
+ describe "with invalid params" do
278
+ it "assigns a newly created but unsaved bookstore as @bookstore" do
279
+ post :create, :bookstore => @invalid_attrs
280
+ assigns(:bookstore).should_not be_valid
281
+ end
282
+
283
+ it "should be forbidden" do
284
+ post :create, :bookstore => @invalid_attrs
285
+ response.should redirect_to(new_user_session_url)
286
+ end
287
+ end
288
+ end
289
+ end
290
+
291
+ describe "PUT update" do
292
+ before(:each) do
293
+ @bookstore = FactoryGirl.create(:bookstore)
294
+ @attrs = valid_attributes
295
+ @invalid_attrs = {:name => ''}
296
+ end
297
+
298
+ describe "When logged in as Administrator" do
299
+ login_admin
300
+
301
+ describe "with valid params" do
302
+ it "updates the requested bookstore" do
303
+ put :update, :id => @bookstore.id, :bookstore => @attrs
304
+ end
305
+
306
+ it "assigns the requested bookstore as @bookstore" do
307
+ put :update, :id => @bookstore.id, :bookstore => @attrs
308
+ assigns(:bookstore).should eq(@bookstore)
309
+ end
310
+
311
+ it "moves its position when specified" do
312
+ put :update, :id => @bookstore.id, :bookstore => @attrs, :move => 'lower'
313
+ response.should redirect_to(bookstores_url)
314
+ end
315
+ end
316
+
317
+ describe "with invalid params" do
318
+ it "assigns the requested bookstore as @bookstore" do
319
+ put :update, :id => @bookstore.id, :bookstore => @invalid_attrs
320
+ response.should render_template("edit")
321
+ end
322
+ end
323
+ end
324
+
325
+ describe "When logged in as Librarian" do
326
+ login_librarian
327
+
328
+ describe "with valid params" do
329
+ it "updates the requested bookstore" do
330
+ put :update, :id => @bookstore.id, :bookstore => @attrs
331
+ end
332
+
333
+ it "assigns the requested bookstore as @bookstore" do
334
+ put :update, :id => @bookstore.id, :bookstore => @attrs
335
+ assigns(:bookstore).should eq(@bookstore)
336
+ response.should be_forbidden
337
+ end
338
+ end
339
+
340
+ describe "with invalid params" do
341
+ it "assigns the requested bookstore as @bookstore" do
342
+ put :update, :id => @bookstore.id, :bookstore => @invalid_attrs
343
+ response.should be_forbidden
344
+ end
345
+ end
346
+ end
347
+
348
+ describe "When logged in as User" do
349
+ login_user
350
+
351
+ describe "with valid params" do
352
+ it "updates the requested bookstore" do
353
+ put :update, :id => @bookstore.id, :bookstore => @attrs
354
+ end
355
+
356
+ it "assigns the requested bookstore as @bookstore" do
357
+ put :update, :id => @bookstore.id, :bookstore => @attrs
358
+ assigns(:bookstore).should eq(@bookstore)
359
+ response.should be_forbidden
360
+ end
361
+ end
362
+
363
+ describe "with invalid params" do
364
+ it "assigns the requested bookstore as @bookstore" do
365
+ put :update, :id => @bookstore.id, :bookstore => @invalid_attrs
366
+ response.should be_forbidden
367
+ end
368
+ end
369
+ end
370
+
371
+ describe "When not logged in" do
372
+ describe "with valid params" do
373
+ it "updates the requested bookstore" do
374
+ put :update, :id => @bookstore.id, :bookstore => @attrs
375
+ end
376
+
377
+ it "should be forbidden" do
378
+ put :update, :id => @bookstore.id, :bookstore => @attrs
379
+ response.should redirect_to(new_user_session_url)
380
+ end
381
+ end
382
+
383
+ describe "with invalid params" do
384
+ it "assigns the requested bookstore as @bookstore" do
385
+ put :update, :id => @bookstore.id, :bookstore => @invalid_attrs
386
+ response.should redirect_to(new_user_session_url)
387
+ end
388
+ end
389
+ end
390
+ end
391
+
392
+ describe "DELETE destroy" do
393
+ before(:each) do
394
+ @bookstore = FactoryGirl.create(:bookstore)
395
+ end
396
+
397
+ describe "When logged in as Administrator" do
398
+ login_admin
399
+
400
+ it "destroys the requested bookstore" do
401
+ delete :destroy, :id => @bookstore.id
402
+ end
403
+
404
+ it "redirects to the bookstores list" do
405
+ delete :destroy, :id => @bookstore.id
406
+ response.should redirect_to(bookstores_url)
407
+ end
408
+ end
409
+
410
+ describe "When logged in as Librarian" do
411
+ login_librarian
412
+
413
+ it "destroys the requested bookstore" do
414
+ delete :destroy, :id => @bookstore.id
415
+ end
416
+
417
+ it "should be forbidden" do
418
+ delete :destroy, :id => @bookstore.id
419
+ response.should be_forbidden
420
+ end
421
+ end
422
+
423
+ describe "When logged in as User" do
424
+ login_user
425
+
426
+ it "destroys the requested bookstore" do
427
+ delete :destroy, :id => @bookstore.id
428
+ end
429
+
430
+ it "should be forbidden" do
431
+ delete :destroy, :id => @bookstore.id
432
+ response.should be_forbidden
433
+ end
434
+ end
435
+
436
+ describe "When not logged in" do
437
+ it "destroys the requested bookstore" do
438
+ delete :destroy, :id => @bookstore.id
439
+ end
440
+
441
+ it "should be forbidden" do
442
+ delete :destroy, :id => @bookstore.id
443
+ response.should redirect_to(new_user_session_url)
444
+ end
445
+ end
446
+ end
447
+ end
@@ -0,0 +1,167 @@
1
+ require 'spec_helper'
2
+
3
+ # This spec was generated by rspec-rails when you ran the scaffold generator.
4
+ # It demonstrates how one might use RSpec to specify the controller code that
5
+ # was generated by Rails when you ran the scaffold generator.
6
+ #
7
+ # It assumes that the implementation code is generated by the rails scaffold
8
+ # generator. If you are using any extension libraries to generate different
9
+ # controller code, this generated spec may or may not pass.
10
+ #
11
+ # It only uses APIs available in rails and/or rspec-rails. There are a number
12
+ # of tools you can use to make these specs even more expressive, but we're
13
+ # sticking to rails and rspec-rails APIs to keep things simple and stable.
14
+ #
15
+ # Compared to earlier versions of this generator, there is very limited use of
16
+ # stubs and message expectations in this spec. Stubs are only used when there
17
+ # is no simpler way to get a handle on the object needed for the example.
18
+ # Message expectations are only used when there is no simpler way to specify
19
+ # that an instance is receiving a specific message.
20
+
21
+ describe BudgetTypesController do
22
+ fixtures :all
23
+ login_admin
24
+
25
+ # This should return the minimal set of attributes required to create a valid
26
+ # BudgetType. As you add validations to BudgetType, be sure to
27
+ # update the return value of this method accordingly.
28
+ def valid_attributes
29
+ FactoryGirl.attributes_for(:budget_type)
30
+ end
31
+
32
+ describe "GET index" do
33
+ it "assigns all budget_types as @budget_types" do
34
+ budget_type = BudgetType.create! valid_attributes
35
+ get :index
36
+ assigns(:budget_types).should eq(BudgetType.all)
37
+ end
38
+ end
39
+
40
+ describe "GET show" do
41
+ it "assigns the requested budget_type as @budget_type" do
42
+ budget_type = BudgetType.create! valid_attributes
43
+ get :show, :id => budget_type.id
44
+ assigns(:budget_type).should eq(budget_type)
45
+ end
46
+ end
47
+
48
+ describe "GET new" do
49
+ it "assigns a new budget_type as @budget_type" do
50
+ get :new
51
+ assigns(:budget_type).should be_a_new(BudgetType)
52
+ end
53
+ end
54
+
55
+ describe "GET edit" do
56
+ it "assigns the requested budget_type as @budget_type" do
57
+ budget_type = BudgetType.create! valid_attributes
58
+ get :edit, :id => budget_type.id
59
+ assigns(:budget_type).should eq(budget_type)
60
+ end
61
+ end
62
+
63
+ describe "POST create" do
64
+ describe "with valid params" do
65
+ it "creates a new BudgetType" do
66
+ expect {
67
+ post :create, :budget_type => valid_attributes
68
+ }.to change(BudgetType, :count).by(1)
69
+ end
70
+
71
+ it "assigns a newly created budget_type as @budget_type" do
72
+ post :create, :budget_type => valid_attributes
73
+ assigns(:budget_type).should be_a(BudgetType)
74
+ assigns(:budget_type).should be_persisted
75
+ end
76
+
77
+ it "redirects to the created budget_type" do
78
+ post :create, :budget_type => valid_attributes
79
+ response.should redirect_to(BudgetType.last)
80
+ end
81
+ end
82
+
83
+ describe "with invalid params" do
84
+ it "assigns a newly created but unsaved budget_type as @budget_type" do
85
+ # Trigger the behavior that occurs when invalid params are submitted
86
+ BudgetType.any_instance.stub(:save).and_return(false)
87
+ post :create, :budget_type => {}
88
+ assigns(:budget_type).should be_a_new(BudgetType)
89
+ end
90
+
91
+ it "re-renders the 'new' template" do
92
+ # Trigger the behavior that occurs when invalid params are submitted
93
+ BudgetType.any_instance.stub(:save).and_return(false)
94
+ post :create, :budget_type => {}
95
+ #response.should render_template("new")
96
+ end
97
+ end
98
+ end
99
+
100
+ describe "PUT update" do
101
+ describe "with valid params" do
102
+ it "updates the requested budget_type" do
103
+ budget_type = BudgetType.create! valid_attributes
104
+ # Assuming there are no other budget_types in the database, this
105
+ # specifies that the BudgetType created on the previous line
106
+ # receives the :update_attributes message with whatever params are
107
+ # submitted in the request.
108
+ BudgetType.any_instance.should_receive(:update_attributes).with({'these' => 'params'})
109
+ put :update, :id => budget_type.id, :budget_type => {'these' => 'params'}
110
+ end
111
+
112
+ it "assigns the requested budget_type as @budget_type" do
113
+ budget_type = BudgetType.create! valid_attributes
114
+ put :update, :id => budget_type.id, :budget_type => valid_attributes
115
+ assigns(:budget_type).should eq(budget_type)
116
+ end
117
+
118
+ it "redirects to the budget_type" do
119
+ budget_type = BudgetType.create! valid_attributes
120
+ put :update, :id => budget_type.id, :budget_type => valid_attributes
121
+ response.should redirect_to(budget_type)
122
+ end
123
+
124
+ it "moves its position when specified" do
125
+ budget_type = BudgetType.create! valid_attributes
126
+ position = budget_type.position
127
+ put :update, :id => budget_type.id, :move => 'higher'
128
+ response.should redirect_to budget_types_url
129
+ assigns(:budget_type).position.should eq position - 1
130
+ end
131
+ end
132
+
133
+ describe "with invalid params" do
134
+ it "assigns the budget_type as @budget_type" do
135
+ budget_type = BudgetType.create! valid_attributes
136
+ # Trigger the behavior that occurs when invalid params are submitted
137
+ BudgetType.any_instance.stub(:save).and_return(false)
138
+ put :update, :id => budget_type.id, :budget_type => {}
139
+ assigns(:budget_type).should eq(budget_type)
140
+ end
141
+
142
+ it "re-renders the 'edit' template" do
143
+ budget_type = BudgetType.create! valid_attributes
144
+ # Trigger the behavior that occurs when invalid params are submitted
145
+ BudgetType.any_instance.stub(:save).and_return(false)
146
+ put :update, :id => budget_type.id, :budget_type => {}
147
+ #response.should render_template("edit")
148
+ end
149
+ end
150
+ end
151
+
152
+ describe "DELETE destroy" do
153
+ it "destroys the requested budget_type" do
154
+ budget_type = BudgetType.create! valid_attributes
155
+ expect {
156
+ delete :destroy, :id => budget_type.id
157
+ }.to change(BudgetType, :count).by(-1)
158
+ end
159
+
160
+ it "redirects to the budget_types list" do
161
+ budget_type = BudgetType.create! valid_attributes
162
+ delete :destroy, :id => budget_type.id
163
+ response.should redirect_to(budget_types_url)
164
+ end
165
+ end
166
+
167
+ end