enju_trunk_subject 1.0.4

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 (280) hide show
  1. checksums.yaml +15 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +36 -0
  5. data/app/controllers/classification_types_controller.rb +13 -0
  6. data/app/controllers/classifications_controller.rb +114 -0
  7. data/app/controllers/subject_has_classifications_controller.rb +97 -0
  8. data/app/controllers/subject_heading_type_has_subjects_controller.rb +80 -0
  9. data/app/controllers/subject_heading_types_controller.rb +13 -0
  10. data/app/controllers/subject_types_controller.rb +13 -0
  11. data/app/controllers/subjects_controller.rb +216 -0
  12. data/app/controllers/work_has_subjects_controller.rb +107 -0
  13. data/app/models/classification.rb +89 -0
  14. data/app/models/classification_type.rb +20 -0
  15. data/app/models/enju_subject/ability.rb +55 -0
  16. data/app/models/subject.rb +100 -0
  17. data/app/models/subject_has_classification.rb +37 -0
  18. data/app/models/subject_heading_type.rb +21 -0
  19. data/app/models/subject_heading_type_has_subject.rb +22 -0
  20. data/app/models/subject_type.rb +20 -0
  21. data/app/models/work_has_subject.rb +35 -0
  22. data/app/views/classification_types/_form.html.erb +19 -0
  23. data/app/views/classification_types/edit.html.erb +13 -0
  24. data/app/views/classification_types/index.html.erb +45 -0
  25. data/app/views/classification_types/new.html.erb +12 -0
  26. data/app/views/classification_types/show.html.erb +30 -0
  27. data/app/views/classifications/_form.html.erb +27 -0
  28. data/app/views/classifications/edit.html.erb +13 -0
  29. data/app/views/classifications/index.html.erb +54 -0
  30. data/app/views/classifications/new.html.erb +12 -0
  31. data/app/views/classifications/show.html.erb +34 -0
  32. data/app/views/manifestations/_classification_detail.html.erb +14 -0
  33. data/app/views/manifestations/_subject_detail.html.erb +14 -0
  34. data/app/views/manifestations/_subject_facet.html.erb +18 -0
  35. data/app/views/manifestations/_subject_form.html.erb +21 -0
  36. data/app/views/subject_has_classifications/edit.html.erb +30 -0
  37. data/app/views/subject_has_classifications/index.html.erb +38 -0
  38. data/app/views/subject_has_classifications/new.html.erb +32 -0
  39. data/app/views/subject_has_classifications/show.html.erb +22 -0
  40. data/app/views/subject_heading_type_has_subjects/edit.html.erb +28 -0
  41. data/app/views/subject_heading_type_has_subjects/index.html.erb +30 -0
  42. data/app/views/subject_heading_type_has_subjects/new.html.erb +27 -0
  43. data/app/views/subject_heading_type_has_subjects/show.html.erb +23 -0
  44. data/app/views/subject_heading_types/_form.html.erb +19 -0
  45. data/app/views/subject_heading_types/edit.html.erb +13 -0
  46. data/app/views/subject_heading_types/index.html.erb +43 -0
  47. data/app/views/subject_heading_types/new.html.erb +12 -0
  48. data/app/views/subject_heading_types/show.html.erb +27 -0
  49. data/app/views/subject_types/_form.html.erb +19 -0
  50. data/app/views/subject_types/edit.html.erb +13 -0
  51. data/app/views/subject_types/index.html.erb +43 -0
  52. data/app/views/subject_types/new.html.erb +12 -0
  53. data/app/views/subject_types/show.html.erb +29 -0
  54. data/app/views/subjects/_form.html.erb +42 -0
  55. data/app/views/subjects/_index.html.erb +48 -0
  56. data/app/views/subjects/_index_classification.html.erb +57 -0
  57. data/app/views/subjects/_index_work.html.erb +60 -0
  58. data/app/views/subjects/_show_work_list.html.erb +15 -0
  59. data/app/views/subjects/edit.html.erb +13 -0
  60. data/app/views/subjects/index.atom.builder +10 -0
  61. data/app/views/subjects/index.html.erb +7 -0
  62. data/app/views/subjects/index.rss.builder +29 -0
  63. data/app/views/subjects/new.html.erb +12 -0
  64. data/app/views/subjects/show.html.erb +69 -0
  65. data/app/views/subjects/show.js.erb +1 -0
  66. data/app/views/work_has_subjects/_form.html.erb +24 -0
  67. data/app/views/work_has_subjects/edit.html.erb +29 -0
  68. data/app/views/work_has_subjects/index.html.erb +31 -0
  69. data/app/views/work_has_subjects/new.html.erb +42 -0
  70. data/app/views/work_has_subjects/show.html.erb +25 -0
  71. data/config/locales/translation_en.yml +35 -0
  72. data/config/locales/translation_ja.yml +39 -0
  73. data/config/routes.rb +7 -0
  74. data/db/fixtures/classification_types.yml +7 -0
  75. data/db/fixtures/subject_types.yml +28 -0
  76. data/db/migrate/029_create_subjects.rb +28 -0
  77. data/db/migrate/142_create_classifications.rb +19 -0
  78. data/db/migrate/144_create_classification_types.rb +16 -0
  79. data/db/migrate/145_create_subject_heading_types.rb +16 -0
  80. data/db/migrate/146_create_subject_types.rb +16 -0
  81. data/db/migrate/20110913120629_add_lft_and_rgt_to_classification.rb +11 -0
  82. data/db/migrate/20140427142354_add_classifiation_identifier_to_classification.rb +6 -0
  83. data/lib/enju_subject.rb +33 -0
  84. data/lib/enju_subject/engine.rb +8 -0
  85. data/lib/enju_subject/manifestation.rb +31 -0
  86. data/lib/enju_subject/master_model.rb +41 -0
  87. data/lib/enju_subject/version.rb +3 -0
  88. data/lib/generators/enju_subject/setup/USAGE +8 -0
  89. data/lib/generators/enju_subject/setup/setup_generator.rb +10 -0
  90. data/lib/generators/enju_subject/setup/templates/db/fixtures/classification_types.yml +13 -0
  91. data/lib/generators/enju_subject/setup/templates/db/fixtures/subject_heading_types.yml +39 -0
  92. data/lib/generators/enju_subject/setup/templates/db/fixtures/subject_types.yml +28 -0
  93. data/lib/tasks/enju_subject_tasks.rake +19 -0
  94. data/spec/controllers/classification_types_controller_spec.rb +445 -0
  95. data/spec/controllers/classifications_controller_spec.rb +441 -0
  96. data/spec/controllers/subject_heading_types_controller_spec.rb +445 -0
  97. data/spec/controllers/subject_types_controller_spec.rb +447 -0
  98. data/spec/controllers/subjects_controller_spec.rb +437 -0
  99. data/spec/dummy/Rakefile +7 -0
  100. data/spec/dummy/app/assets/javascripts/application.js +9 -0
  101. data/spec/dummy/app/assets/stylesheets/application.css +7 -0
  102. data/spec/dummy/app/controllers/application_controller.rb +47 -0
  103. data/spec/dummy/app/helpers/application_helper.rb +21 -0
  104. data/spec/dummy/app/models/ability.rb +59 -0
  105. data/spec/dummy/app/models/setting.rb +4 -0
  106. data/spec/dummy/app/models/user.rb +43 -0
  107. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  108. data/spec/dummy/config.ru +4 -0
  109. data/spec/dummy/config/application.rb +46 -0
  110. data/spec/dummy/config/application.yml +38 -0
  111. data/spec/dummy/config/boot.rb +10 -0
  112. data/spec/dummy/config/database.yml +25 -0
  113. data/spec/dummy/config/environment.rb +5 -0
  114. data/spec/dummy/config/environments/development.rb +30 -0
  115. data/spec/dummy/config/environments/production.rb +60 -0
  116. data/spec/dummy/config/environments/test.rb +39 -0
  117. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  118. data/spec/dummy/config/initializers/devise.rb +207 -0
  119. data/spec/dummy/config/initializers/inflections.rb +10 -0
  120. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  121. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  122. data/spec/dummy/config/initializers/session_store.rb +8 -0
  123. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  124. data/spec/dummy/config/locales/devise.en.yml +57 -0
  125. data/spec/dummy/config/locales/en.yml +18 -0
  126. data/spec/dummy/config/locales/ja.yml +18 -0
  127. data/spec/dummy/config/routes.rb +60 -0
  128. data/spec/dummy/db/fixtures/roles.yml +25 -0
  129. data/spec/dummy/db/migrate/001_create_agents.rb +53 -0
  130. data/spec/dummy/db/migrate/005_create_manifestations.rb +56 -0
  131. data/spec/dummy/db/migrate/006_create_items.rb +24 -0
  132. data/spec/dummy/db/migrate/012_create_owns.rb +12 -0
  133. data/spec/dummy/db/migrate/015_create_creates.rb +12 -0
  134. data/spec/dummy/db/migrate/047_create_produces.rb +12 -0
  135. data/spec/dummy/db/migrate/059_create_libraries.rb +28 -0
  136. data/spec/dummy/db/migrate/069_create_shelves.rb +15 -0
  137. data/spec/dummy/db/migrate/073_create_carrier_types.rb +11 -0
  138. data/spec/dummy/db/migrate/077_create_user_groups.rb +12 -0
  139. data/spec/dummy/db/migrate/080_create_library_groups.rb +18 -0
  140. data/spec/dummy/db/migrate/112_create_frequencies.rb +12 -0
  141. data/spec/dummy/db/migrate/117_create_form_of_works.rb +12 -0
  142. data/spec/dummy/db/migrate/120_create_baskets.rb +12 -0
  143. data/spec/dummy/db/migrate/124_create_bookstores.rb +17 -0
  144. data/spec/dummy/db/migrate/125_create_donates.rb +12 -0
  145. data/spec/dummy/db/migrate/130_create_request_status_types.rb +12 -0
  146. data/spec/dummy/db/migrate/131_create_request_types.rb +12 -0
  147. data/spec/dummy/db/migrate/20080830154109_create_realizes.rb +13 -0
  148. data/spec/dummy/db/migrate/20080830172106_create_exemplifies.rb +13 -0
  149. data/spec/dummy/db/migrate/20080905191442_create_agent_types.rb +12 -0
  150. data/spec/dummy/db/migrate/20081006090811_create_subscriptions.rb +17 -0
  151. data/spec/dummy/db/migrate/20081006093246_create_subscribes.rb +14 -0
  152. data/spec/dummy/db/migrate/20081023092436_create_search_engines.rb +17 -0
  153. data/spec/dummy/db/migrate/20081025083323_create_countries.rb +28 -0
  154. data/spec/dummy/db/migrate/20081025083905_create_languages.rb +23 -0
  155. data/spec/dummy/db/migrate/20081027150907_create_picture_files.rb +15 -0
  156. data/spec/dummy/db/migrate/20081028083142_create_agent_import_files.rb +22 -0
  157. data/spec/dummy/db/migrate/20081028083208_create_resource_import_files.rb +22 -0
  158. data/spec/dummy/db/migrate/20090705133942_add_attachments_picture_to_picture_file.rb +15 -0
  159. data/spec/dummy/db/migrate/20090705212043_add_attachments_attachment_to_manifestation.rb +15 -0
  160. data/spec/dummy/db/migrate/20090719201843_create_extents.rb +12 -0
  161. data/spec/dummy/db/migrate/20090720091106_create_medium_of_performances.rb +12 -0
  162. data/spec/dummy/db/migrate/20090720091429_create_content_types.rb +12 -0
  163. data/spec/dummy/db/migrate/20090812151902_create_agent_relationship_types.rb +12 -0
  164. data/spec/dummy/db/migrate/20091012101112_add_dcndl_schema.rb +27 -0
  165. data/spec/dummy/db/migrate/20091025080447_create_licenses.rb +12 -0
  166. data/spec/dummy/db/migrate/20091202124834_create_versions.rb +18 -0
  167. data/spec/dummy/db/migrate/20091214131723_create_series_statements.rb +13 -0
  168. data/spec/dummy/db/migrate/20100129142347_create_import_requests.rb +15 -0
  169. data/spec/dummy/db/migrate/20100211105551_add_admin_networks_to_library_group.rb +9 -0
  170. data/spec/dummy/db/migrate/20100223121519_rename_series_statement_title_to_original_title.rb +13 -0
  171. data/spec/dummy/db/migrate/20100321235924_add_series_statement_identifier_to_series_statement.rb +10 -0
  172. data/spec/dummy/db/migrate/20100525124311_create_manifestation_relationships.rb +13 -0
  173. data/spec/dummy/db/migrate/20100606073747_create_agent_relationships.rb +13 -0
  174. data/spec/dummy/db/migrate/20100607044753_create_manifestation_relationship_types.rb +12 -0
  175. data/spec/dummy/db/migrate/20100814091104_add_position_to_agent_relationship.rb +11 -0
  176. data/spec/dummy/db/migrate/20100925043847_create_resource_import_results.rb +15 -0
  177. data/spec/dummy/db/migrate/20100925074559_create_agent_import_results.rb +12 -0
  178. data/spec/dummy/db/migrate/20101212070145_add_acquired_at_to_item.rb +9 -0
  179. data/spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb +9 -0
  180. data/spec/dummy/db/migrate/20110301035123_add_pub_date_to_manifestation.rb +9 -0
  181. data/spec/dummy/db/migrate/20110301121550_add_birth_date_and_death_date_to_agent.rb +11 -0
  182. data/spec/dummy/db/migrate/20110425133109_add_issn_to_series_statement.rb +9 -0
  183. data/spec/dummy/db/migrate/20110603184217_add_edit_mode_to_resource_import_file.rb +9 -0
  184. data/spec/dummy/db/migrate/20110618091240_add_periodical_to_series_statement.rb +9 -0
  185. data/spec/dummy/db/migrate/20110619064807_add_edition_string_to_manifestation.rb +9 -0
  186. data/spec/dummy/db/migrate/20110620173525_add_bookstore_id_to_item.rb +11 -0
  187. data/spec/dummy/db/migrate/20110627034940_create_series_statement_merge_lists.rb +9 -0
  188. data/spec/dummy/db/migrate/20110627035057_create_series_statement_merges.rb +12 -0
  189. data/spec/dummy/db/migrate/20110627122938_add_number_of_day_to_notify_overdue_to_user_group.rb +13 -0
  190. data/spec/dummy/db/migrate/20110820131417_create_series_has_manifestations.rb +13 -0
  191. data/spec/dummy/db/migrate/20110916053430_rename_manifestation_number_list_to_number_string.rb +13 -0
  192. data/spec/dummy/db/migrate/20110916091020_add_volume_number_to_manifestation.rb +13 -0
  193. data/spec/dummy/db/migrate/20110916103953_add_manifestaiton_id_to_series_statement.rb +10 -0
  194. data/spec/dummy/db/migrate/20110918162329_add_note_to_series_statement.rb +9 -0
  195. data/spec/dummy/db/migrate/20111009183423_add_ndc_to_manifestation.rb +9 -0
  196. data/spec/dummy/db/migrate/20111124110059_create_create_types.rb +12 -0
  197. data/spec/dummy/db/migrate/20111124110319_create_realize_types.rb +12 -0
  198. data/spec/dummy/db/migrate/20111124110355_create_produce_types.rb +12 -0
  199. data/spec/dummy/db/migrate/20111124112131_add_create_type_to_create.rb +7 -0
  200. data/spec/dummy/db/migrate/20111201121844_create_roles.rb +12 -0
  201. data/spec/dummy/db/migrate/20111201155456_create_users.rb +8 -0
  202. data/spec/dummy/db/migrate/20111201155513_add_devise_to_users.rb +49 -0
  203. data/spec/dummy/db/migrate/20111201163718_create_user_has_roles.rb +10 -0
  204. data/spec/dummy/db/migrate/20120105074911_add_isil_to_library.rb +5 -0
  205. data/spec/dummy/db/migrate/20120125152919_add_title_subseries_transcription_to_series_statement.rb +6 -0
  206. data/spec/dummy/db/migrate/20120129014038_create_budget_types.rb +12 -0
  207. data/spec/dummy/db/migrate/20120129020544_add_budget_type_id_to_item.rb +6 -0
  208. data/spec/dummy/db/migrate/20120319120638_add_content_type_id_to_manifestation.rb +6 -0
  209. data/spec/dummy/db/migrate/20120319173203_create_accepts.rb +14 -0
  210. data/spec/dummy/db/migrate/20120410104851_add_year_of_publication_to_manifestation.rb +5 -0
  211. data/spec/dummy/db/migrate/20120413072700_add_picture_meta_to_picture_file.rb +5 -0
  212. data/spec/dummy/db/migrate/20120413100352_add_fingerprint_to_picture_file.rb +5 -0
  213. data/spec/dummy/db/migrate/20120413161340_add_fingerprint_to_resource_import_file.rb +5 -0
  214. data/spec/dummy/db/migrate/20120413161403_add_fingerprint_to_agent_import_file.rb +5 -0
  215. data/spec/dummy/db/migrate/20120413170705_add_error_message_to_resource_import_file.rb +5 -0
  216. data/spec/dummy/db/migrate/20120413170720_add_error_message_to_agent_import_file.rb +5 -0
  217. data/spec/dummy/db/migrate/20120415060308_rename_resource_import_file_imported_at_to_executed_at.rb +9 -0
  218. data/spec/dummy/db/migrate/20120415164821_add_attachment_meta_to_manifestation.rb +5 -0
  219. data/spec/dummy/db/migrate/20120418081407_add_month_of_publication_to_manifestation.rb +5 -0
  220. data/spec/dummy/db/migrate/20120510140958_add_closed_to_shelf.rb +5 -0
  221. data/spec/dummy/db/migrate/20120511072422_add_agent_identifier_to_agent.rb +6 -0
  222. data/spec/dummy/db/migrate/20120602141129_add_edit_mode_to_agent_import_file.rb +5 -0
  223. data/spec/dummy/db/migrate/20130221154434_add_additional_attributes_to_user.rb +26 -0
  224. data/spec/dummy/db/migrate/20130421093852_add_periodical_to_manifestation.rb +5 -0
  225. data/spec/dummy/db/migrate/20130421155019_add_creator_string_to_series_statement.rb +7 -0
  226. data/spec/dummy/db/migrate/20130421164124_add_series_master_to_series_statement.rb +5 -0
  227. data/spec/dummy/db/migrate/20130506175303_create_identifier_types.rb +12 -0
  228. data/spec/dummy/db/migrate/20130506175834_create_identifiers.rb +15 -0
  229. data/spec/dummy/db/migrate/20130509185724_add_statement_of_responsibility_to_manifestation.rb +5 -0
  230. data/spec/dummy/db/schema.rb +901 -0
  231. data/spec/dummy/db/seeds.rb +32 -0
  232. data/spec/dummy/public/404.html +26 -0
  233. data/spec/dummy/public/422.html +26 -0
  234. data/spec/dummy/public/500.html +26 -0
  235. data/spec/dummy/public/favicon.ico +0 -0
  236. data/spec/dummy/script/rails +6 -0
  237. data/spec/dummy/spec/fixtures/subjects.yml +72 -0
  238. data/spec/dummy/test/fixtures/user_groups.yml +13 -0
  239. data/spec/dummy/test/fixtures/user_has_roles.yml +9 -0
  240. data/spec/dummy/test/fixtures/users.yml +11 -0
  241. data/spec/dummy/test/unit/user_group_test.rb +7 -0
  242. data/spec/dummy/test/unit/user_has_role_test.rb +7 -0
  243. data/spec/dummy/test/unit/user_test.rb +7 -0
  244. data/spec/factories/classification.rb +6 -0
  245. data/spec/factories/classification_type.rb +5 -0
  246. data/spec/factories/manifestation.rb +6 -0
  247. data/spec/factories/subject.rb +7 -0
  248. data/spec/factories/subject_heading_type.rb +5 -0
  249. data/spec/factories/subject_heading_type_has_subject.rb +6 -0
  250. data/spec/factories/subject_type.rb +5 -0
  251. data/spec/factories/user.rb +34 -0
  252. data/spec/fixtures/agent_types.yml +35 -0
  253. data/spec/fixtures/agents.yml +143 -0
  254. data/spec/fixtures/carrier_types.yml +51 -0
  255. data/spec/fixtures/classification_types.yml +188 -0
  256. data/spec/fixtures/classifications.yml +118 -0
  257. data/spec/fixtures/languages.yml +1901 -0
  258. data/spec/fixtures/library_groups.yml +33 -0
  259. data/spec/fixtures/manifestations.yml +22 -0
  260. data/spec/fixtures/roles.yml +21 -0
  261. data/spec/fixtures/shtsv.tsv +3 -0
  262. data/spec/fixtures/subject_heading_types.yml +39 -0
  263. data/spec/fixtures/subject_types.yml +42 -0
  264. data/spec/fixtures/subjects.yml +80 -0
  265. data/spec/fixtures/user_groups.yml +25 -0
  266. data/spec/fixtures/user_has_roles.yml +41 -0
  267. data/spec/fixtures/users.yml +69 -0
  268. data/spec/models/classification_spec.rb +46 -0
  269. data/spec/models/classification_type_spec.rb +21 -0
  270. data/spec/models/subject_heading_type_spec.rb +21 -0
  271. data/spec/models/subject_spec.rb +33 -0
  272. data/spec/models/subject_type_spec.rb +21 -0
  273. data/spec/requests/subjects_spec.rb +9 -0
  274. data/spec/routing/subject_heading_types_routing_spec.rb +35 -0
  275. data/spec/routing/subject_types_routing_spec.rb +35 -0
  276. data/spec/routing/subjects_routing_spec.rb +35 -0
  277. data/spec/spec_helper.rb +45 -0
  278. data/spec/support/controller_macros.rb +48 -0
  279. data/spec/support/devise.rb +3 -0
  280. metadata +675 -0
@@ -0,0 +1,441 @@
1
+ require 'spec_helper'
2
+
3
+ describe ClassificationsController do
4
+ fixtures :all
5
+
6
+ def valid_attributes
7
+ FactoryGirl.attributes_for(:classification)
8
+ end
9
+
10
+ describe "GET index", :solr => true do
11
+ before do
12
+ Classification.reindex
13
+ end
14
+
15
+ describe "When logged in as Administrator" do
16
+ login_admin
17
+
18
+ it "assigns all classifications as @classifications" do
19
+ get :index
20
+ assigns(:classifications).should_not be_empty
21
+ end
22
+ end
23
+
24
+ describe "When logged in as Librarian" do
25
+ login_librarian
26
+
27
+ it "assigns all classifications as @classifications" do
28
+ get :index
29
+ assigns(:classifications).should_not be_empty
30
+ end
31
+ end
32
+
33
+ describe "When logged in as User" do
34
+ login_user
35
+
36
+ it "assigns all classifications as @classifications" do
37
+ get :index
38
+ assigns(:classifications).should_not be_empty
39
+ end
40
+ end
41
+
42
+ describe "When not logged in" do
43
+ it "assigns all classifications as @classifications" do
44
+ get :index
45
+ assigns(:classifications).should_not be_empty
46
+ end
47
+
48
+ it "should get index with query" do
49
+ get :index, :query => '500'
50
+ response.should be_success
51
+ assigns(:classifications).should_not be_empty
52
+ end
53
+ end
54
+ end
55
+
56
+ describe "GET show" do
57
+ before(:each) do
58
+ @classification = FactoryGirl.create(:classification)
59
+ end
60
+
61
+ describe "When logged in as Administrator" do
62
+ login_admin
63
+
64
+ it "assigns the requested classification as @classification" do
65
+ get :show, :id => @classification.id
66
+ assigns(:classification).should eq(@classification)
67
+ end
68
+ end
69
+
70
+ describe "When logged in as Librarian" do
71
+ login_librarian
72
+
73
+ it "assigns the requested classification as @classification" do
74
+ get :show, :id => @classification.id
75
+ assigns(:classification).should eq(@classification)
76
+ end
77
+ end
78
+
79
+ describe "When logged in as User" do
80
+ login_user
81
+
82
+ it "assigns the requested classification as @classification" do
83
+ get :show, :id => @classification.id
84
+ assigns(:classification).should eq(@classification)
85
+ end
86
+ end
87
+
88
+ describe "When not logged in" do
89
+ it "assigns the requested classification as @classification" do
90
+ get :show, :id => @classification.id
91
+ assigns(:classification).should eq(@classification)
92
+ end
93
+ end
94
+ end
95
+
96
+ describe "GET new" do
97
+ describe "When logged in as Administrator" do
98
+ login_admin
99
+
100
+ it "assigns the requested classification as @classification" do
101
+ get :new
102
+ assigns(:classification).should_not be_valid
103
+ end
104
+ end
105
+
106
+ describe "When logged in as Librarian" do
107
+ login_librarian
108
+
109
+ it "assigns the requested classification as @classification" do
110
+ get :new
111
+ assigns(:classification).should_not be_valid
112
+ end
113
+ end
114
+
115
+ describe "When logged in as User" do
116
+ login_user
117
+
118
+ it "should assign the requested classification as @classification" do
119
+ get :new
120
+ assigns(:classification).should_not be_valid
121
+ end
122
+ end
123
+
124
+ describe "When not logged in" do
125
+ it "should not assign the requested classification as @classification" do
126
+ get :new
127
+ assigns(:classification).should_not be_valid
128
+ response.should redirect_to(new_user_session_url)
129
+ end
130
+ end
131
+ end
132
+
133
+ describe "GET edit" do
134
+ describe "When logged in as Administrator" do
135
+ login_admin
136
+
137
+ it "assigns the requested classification as @classification" do
138
+ classification = FactoryGirl.create(:classification)
139
+ get :edit, :id => classification.id
140
+ assigns(:classification).should eq(classification)
141
+ end
142
+ end
143
+
144
+ describe "When logged in as Librarian" do
145
+ login_librarian
146
+
147
+ it "assigns the requested classification as @classification" do
148
+ classification = FactoryGirl.create(:classification)
149
+ get :edit, :id => classification.id
150
+ assigns(:classification).should eq(classification)
151
+ end
152
+ end
153
+
154
+ describe "When logged in as User" do
155
+ login_user
156
+
157
+ it "assigns the requested classification as @classification" do
158
+ classification = FactoryGirl.create(:classification)
159
+ get :edit, :id => classification.id
160
+ response.should be_forbidden
161
+ end
162
+ end
163
+
164
+ describe "When not logged in" do
165
+ it "should not assign the requested classification as @classification" do
166
+ classification = FactoryGirl.create(:classification)
167
+ get :edit, :id => classification.id
168
+ response.should redirect_to(new_user_session_url)
169
+ end
170
+ end
171
+ end
172
+
173
+ describe "POST create" do
174
+ before(:each) do
175
+ @attrs = valid_attributes
176
+ @invalid_attrs = {:category => ''}
177
+ end
178
+
179
+ describe "When logged in as Administrator" do
180
+ login_admin
181
+
182
+ describe "with valid params" do
183
+ it "assigns a newly created classification as @classification" do
184
+ post :create, :classification => @attrs
185
+ assigns(:classification).should be_valid
186
+ end
187
+
188
+ it "redirects to the created classification" do
189
+ post :create, :classification => @attrs
190
+ response.should redirect_to(classification_url(assigns(:classification)))
191
+ end
192
+ end
193
+
194
+ describe "with invalid params" do
195
+ it "assigns a newly created but unsaved classification as @classification" do
196
+ post :create, :classification => @invalid_attrs
197
+ assigns(:classification).should_not be_valid
198
+ end
199
+
200
+ it "re-renders the 'new' template" do
201
+ post :create, :classification => @invalid_attrs
202
+ response.should render_template("new")
203
+ end
204
+ end
205
+ end
206
+
207
+ describe "When logged in as Librarian" do
208
+ login_librarian
209
+
210
+ describe "with valid params" do
211
+ it "assigns a newly created classification as @classification" do
212
+ post :create, :classification => @attrs
213
+ assigns(:classification).should be_valid
214
+ end
215
+
216
+ it "should be forbidden" do
217
+ post :create, :classification => @attrs
218
+ response.should be_forbidden
219
+ end
220
+ end
221
+
222
+ describe "with invalid params" do
223
+ it "assigns a newly created but unsaved classification as @classification" do
224
+ post :create, :classification => @invalid_attrs
225
+ assigns(:classification).should_not be_valid
226
+ end
227
+
228
+ it "should be forbidden" do
229
+ post :create, :classification => @invalid_attrs
230
+ response.should be_forbidden
231
+ end
232
+ end
233
+ end
234
+
235
+ describe "When logged in as User" do
236
+ login_user
237
+
238
+ describe "with valid params" do
239
+ it "assigns a newly created classification as @classification" do
240
+ post :create, :classification => @attrs
241
+ assigns(:classification).should be_valid
242
+ end
243
+
244
+ it "should be forbidden" do
245
+ post :create, :classification => @attrs
246
+ response.should be_forbidden
247
+ end
248
+ end
249
+
250
+ describe "with invalid params" do
251
+ it "assigns a newly created but unsaved classification as @classification" do
252
+ post :create, :classification => @invalid_attrs
253
+ assigns(:classification).should_not be_valid
254
+ end
255
+
256
+ it "should be forbidden" do
257
+ post :create, :classification => @invalid_attrs
258
+ response.should be_forbidden
259
+ end
260
+ end
261
+ end
262
+
263
+ describe "When not logged in" do
264
+ describe "with valid params" do
265
+ it "assigns a newly created classification as @classification" do
266
+ post :create, :classification => @attrs
267
+ assigns(:classification).should be_valid
268
+ end
269
+
270
+ it "should be forbidden" do
271
+ post :create, :classification => @attrs
272
+ response.should redirect_to(new_user_session_url)
273
+ end
274
+ end
275
+
276
+ describe "with invalid params" do
277
+ it "assigns a newly created but unsaved classification as @classification" do
278
+ post :create, :classification => @invalid_attrs
279
+ assigns(:classification).should_not be_valid
280
+ end
281
+
282
+ it "should be forbidden" do
283
+ post :create, :classification => @invalid_attrs
284
+ response.should redirect_to(new_user_session_url)
285
+ end
286
+ end
287
+ end
288
+ end
289
+
290
+ describe "PUT update" do
291
+ before(:each) do
292
+ @classification = FactoryGirl.create(:classification)
293
+ @attrs = valid_attributes
294
+ @invalid_attrs = {:category => ''}
295
+ end
296
+
297
+ describe "When logged in as Administrator" do
298
+ login_admin
299
+
300
+ describe "with valid params" do
301
+ it "updates the requested classification" do
302
+ put :update, :id => @classification.id, :classification => @attrs
303
+ end
304
+
305
+ it "assigns the requested classification as @classification" do
306
+ put :update, :id => @classification.id, :classification => @attrs
307
+ assigns(:classification).should eq(@classification)
308
+ end
309
+ end
310
+
311
+ describe "with invalid params" do
312
+ it "assigns the requested classification as @classification" do
313
+ put :update, :id => @classification.id, :classification => @invalid_attrs
314
+ response.should render_template("edit")
315
+ end
316
+ end
317
+ end
318
+
319
+ describe "When logged in as Librarian" do
320
+ login_librarian
321
+
322
+ describe "with valid params" do
323
+ it "updates the requested classification" do
324
+ put :update, :id => @classification.id, :classification => @attrs
325
+ end
326
+
327
+ it "should be forbidden" do
328
+ put :update, :id => @classification.id, :classification => @attrs
329
+ assigns(:classification).should eq(@classification)
330
+ response.should be_forbidden
331
+ end
332
+ end
333
+
334
+ describe "with invalid params" do
335
+ it "should be forbidden" do
336
+ put :update, :id => @classification, :classification => @invalid_attrs
337
+ response.should be_forbidden
338
+ end
339
+ end
340
+ end
341
+
342
+ describe "When logged in as User" do
343
+ login_user
344
+
345
+ describe "with valid params" do
346
+ it "updates the requested classification" do
347
+ put :update, :id => @classification.id, :classification => @attrs
348
+ end
349
+
350
+ it "assigns the requested classification as @classification" do
351
+ put :update, :id => @classification.id, :classification => @attrs
352
+ assigns(:classification).should eq(@classification)
353
+ response.should be_forbidden
354
+ end
355
+ end
356
+
357
+ describe "with invalid params" do
358
+ it "assigns the requested classification as @classification" do
359
+ put :update, :id => @classification.id, :classification => @invalid_attrs
360
+ response.should be_forbidden
361
+ end
362
+ end
363
+ end
364
+
365
+ describe "When not logged in" do
366
+ describe "with valid params" do
367
+ it "updates the requested classification" do
368
+ put :update, :id => @classification.id, :classification => @attrs
369
+ end
370
+
371
+ it "should be forbidden" do
372
+ put :update, :id => @classification.id, :classification => @attrs
373
+ response.should redirect_to(new_user_session_url)
374
+ end
375
+ end
376
+
377
+ describe "with invalid params" do
378
+ it "assigns the requested classification as @classification" do
379
+ put :update, :id => @classification.id, :classification => @invalid_attrs
380
+ response.should redirect_to(new_user_session_url)
381
+ end
382
+ end
383
+ end
384
+ end
385
+
386
+ describe "DELETE destroy" do
387
+ before(:each) do
388
+ @classification = FactoryGirl.create(:classification)
389
+ end
390
+
391
+ describe "When logged in as Administrator" do
392
+ login_admin
393
+
394
+ it "destroys the requested classification" do
395
+ delete :destroy, :id => @classification.id
396
+ end
397
+
398
+ it "redirects to the classifications list" do
399
+ delete :destroy, :id => @classification.id
400
+ response.should redirect_to(classifications_url)
401
+ end
402
+ end
403
+
404
+ describe "When logged in as Librarian" do
405
+ login_librarian
406
+
407
+ it "destroys the requested classification" do
408
+ delete :destroy, :id => @classification.id
409
+ end
410
+
411
+ it "should be forbidden" do
412
+ delete :destroy, :id => @classification.id
413
+ response.should be_forbidden
414
+ end
415
+ end
416
+
417
+ describe "When logged in as User" do
418
+ login_user
419
+
420
+ it "destroys the requested classification" do
421
+ delete :destroy, :id => @classification.id
422
+ end
423
+
424
+ it "should be forbidden" do
425
+ delete :destroy, :id => @classification.id
426
+ response.should be_forbidden
427
+ end
428
+ end
429
+
430
+ describe "When not logged in" do
431
+ it "destroys the requested classification" do
432
+ delete :destroy, :id => @classification.id
433
+ end
434
+
435
+ it "should be forbidden" do
436
+ delete :destroy, :id => @classification.id
437
+ response.should redirect_to(new_user_session_url)
438
+ end
439
+ end
440
+ end
441
+ end
@@ -0,0 +1,445 @@
1
+ require 'spec_helper'
2
+ require 'sunspot/rails/spec_helper'
3
+
4
+ describe SubjectHeadingTypesController do
5
+ fixtures :all
6
+ disconnect_sunspot
7
+
8
+ def valid_attributes
9
+ FactoryGirl.attributes_for(:subject_heading_type)
10
+ end
11
+
12
+ describe "GET index" do
13
+ before(:each) do
14
+ FactoryGirl.create(:subject_heading_type)
15
+ end
16
+
17
+ describe "When logged in as Administrator" do
18
+ login_admin
19
+
20
+ it "assigns all subject_heading_types as @subject_heading_types" do
21
+ get :index
22
+ assigns(:subject_heading_types).should eq(SubjectHeadingType.all)
23
+ end
24
+ end
25
+
26
+ describe "When logged in as Librarian" do
27
+ login_librarian
28
+
29
+ it "assigns all subject_heading_types as @subject_heading_types" do
30
+ get :index
31
+ assigns(:subject_heading_types).should eq(SubjectHeadingType.all)
32
+ end
33
+ end
34
+
35
+ describe "When logged in as User" do
36
+ login_user
37
+
38
+ it "assigns all subject_heading_types as @subject_heading_types" do
39
+ get :index
40
+ assigns(:subject_heading_types).should eq(SubjectHeadingType.all)
41
+ end
42
+ end
43
+
44
+ describe "When not logged in" do
45
+ it "assigns all subject_heading_types as @subject_heading_types" do
46
+ get :index
47
+ assigns(:subject_heading_types).should eq(SubjectHeadingType.all)
48
+ end
49
+ end
50
+ end
51
+
52
+ describe "GET show" do
53
+ describe "When logged in as Administrator" do
54
+ login_admin
55
+
56
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
57
+ subject_heading_type = FactoryGirl.create(:subject_heading_type)
58
+ get :show, :id => subject_heading_type.id
59
+ assigns(:subject_heading_type).should eq(subject_heading_type)
60
+ end
61
+ end
62
+
63
+ describe "When logged in as Librarian" do
64
+ login_librarian
65
+
66
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
67
+ subject_heading_type = FactoryGirl.create(:subject_heading_type)
68
+ get :show, :id => subject_heading_type.id
69
+ assigns(:subject_heading_type).should eq(subject_heading_type)
70
+ end
71
+ end
72
+
73
+ describe "When logged in as User" do
74
+ login_user
75
+
76
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
77
+ subject_heading_type = FactoryGirl.create(:subject_heading_type)
78
+ get :show, :id => subject_heading_type.id
79
+ assigns(:subject_heading_type).should eq(subject_heading_type)
80
+ end
81
+ end
82
+
83
+ describe "When not logged in" do
84
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
85
+ subject_heading_type = FactoryGirl.create(:subject_heading_type)
86
+ get :show, :id => subject_heading_type.id
87
+ assigns(:subject_heading_type).should eq(subject_heading_type)
88
+ end
89
+ end
90
+ end
91
+
92
+ describe "GET new" do
93
+ describe "When logged in as Administrator" do
94
+ login_admin
95
+
96
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
97
+ get :new
98
+ assigns(:subject_heading_type).should_not be_valid
99
+ response.should be_success
100
+ end
101
+ end
102
+
103
+ describe "When logged in as Librarian" do
104
+ login_librarian
105
+
106
+ it "should not assign the requested subject_heading_type as @subject_heading_type" do
107
+ get :new
108
+ assigns(:subject_heading_type).should_not be_valid
109
+ response.should be_forbidden
110
+ end
111
+ end
112
+
113
+ describe "When logged in as User" do
114
+ login_user
115
+
116
+ it "should not assign the requested subject_heading_type as @subject_heading_type" do
117
+ get :new
118
+ assigns(:subject_heading_type).should_not be_valid
119
+ response.should be_forbidden
120
+ end
121
+ end
122
+
123
+ describe "When not logged in" do
124
+ it "should not assign the requested subject_heading_type as @subject_heading_type" do
125
+ get :new
126
+ assigns(:subject_heading_type).should_not be_valid
127
+ response.should redirect_to(new_user_session_url)
128
+ end
129
+ end
130
+ end
131
+
132
+ describe "GET edit" do
133
+ describe "When logged in as Administrator" do
134
+ login_admin
135
+
136
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
137
+ subject_heading_type = FactoryGirl.create(:subject_heading_type)
138
+ get :edit, :id => subject_heading_type.id
139
+ assigns(:subject_heading_type).should eq(subject_heading_type)
140
+ end
141
+ end
142
+
143
+ describe "When logged in as Librarian" do
144
+ login_librarian
145
+
146
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
147
+ subject_heading_type = FactoryGirl.create(:subject_heading_type)
148
+ get :edit, :id => subject_heading_type.id
149
+ response.should be_forbidden
150
+ end
151
+ end
152
+
153
+ describe "When logged in as User" do
154
+ login_user
155
+
156
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
157
+ subject_heading_type = FactoryGirl.create(:subject_heading_type)
158
+ get :edit, :id => subject_heading_type.id
159
+ response.should be_forbidden
160
+ end
161
+ end
162
+
163
+ describe "When not logged in" do
164
+ it "should not assign the requested subject_heading_type as @subject_heading_type" do
165
+ subject_heading_type = FactoryGirl.create(:subject_heading_type)
166
+ get :edit, :id => subject_heading_type.id
167
+ response.should redirect_to(new_user_session_url)
168
+ end
169
+ end
170
+ end
171
+
172
+ describe "POST create" do
173
+ before(:each) do
174
+ @attrs = valid_attributes
175
+ @invalid_attrs = {:name => ''}
176
+ end
177
+
178
+ describe "When logged in as Administrator" do
179
+ login_admin
180
+
181
+ describe "with valid params" do
182
+ it "assigns a newly created subject_heading_type as @subject_heading_type" do
183
+ post :create, :subject_heading_type => @attrs
184
+ assigns(:subject_heading_type).should be_valid
185
+ end
186
+
187
+ it "redirects to the created agent" do
188
+ post :create, :subject_heading_type => @attrs
189
+ response.should redirect_to(assigns(:subject_heading_type))
190
+ end
191
+ end
192
+
193
+ describe "with invalid params" do
194
+ it "assigns a newly created but unsaved subject_heading_type as @subject_heading_type" do
195
+ post :create, :subject_heading_type => @invalid_attrs
196
+ assigns(:subject_heading_type).should_not be_valid
197
+ end
198
+
199
+ it "should be successful" do
200
+ post :create, :subject_heading_type => @invalid_attrs
201
+ response.should be_success
202
+ end
203
+ end
204
+ end
205
+
206
+ describe "When logged in as Librarian" do
207
+ login_librarian
208
+
209
+ describe "with valid params" do
210
+ it "assigns a newly created subject_heading_type as @subject_heading_type" do
211
+ post :create, :subject_heading_type => @attrs
212
+ assigns(:subject_heading_type).should be_valid
213
+ end
214
+
215
+ it "should be forbidden" do
216
+ post :create, :subject_heading_type => @attrs
217
+ response.should be_forbidden
218
+ end
219
+ end
220
+
221
+ describe "with invalid params" do
222
+ it "assigns a newly created but unsaved subject_heading_type as @subject_heading_type" do
223
+ post :create, :subject_heading_type => @invalid_attrs
224
+ assigns(:subject_heading_type).should_not be_valid
225
+ end
226
+
227
+ it "should be forbidden" do
228
+ post :create, :subject_heading_type => @invalid_attrs
229
+ response.should be_forbidden
230
+ end
231
+ end
232
+ end
233
+
234
+ describe "When logged in as User" do
235
+ login_user
236
+
237
+ describe "with valid params" do
238
+ it "assigns a newly created subject_heading_type as @subject_heading_type" do
239
+ post :create, :subject_heading_type => @attrs
240
+ assigns(:subject_heading_type).should be_valid
241
+ end
242
+
243
+ it "should be forbidden" do
244
+ post :create, :subject_heading_type => @attrs
245
+ response.should be_forbidden
246
+ end
247
+ end
248
+
249
+ describe "with invalid params" do
250
+ it "assigns a newly created but unsaved subject_heading_type as @subject_heading_type" do
251
+ post :create, :subject_heading_type => @invalid_attrs
252
+ assigns(:subject_heading_type).should_not be_valid
253
+ end
254
+
255
+ it "should be forbidden" do
256
+ post :create, :subject_heading_type => @invalid_attrs
257
+ response.should be_forbidden
258
+ end
259
+ end
260
+ end
261
+
262
+ describe "When not logged in" do
263
+ describe "with valid params" do
264
+ it "assigns a newly created subject_heading_type as @subject_heading_type" do
265
+ post :create, :subject_heading_type => @attrs
266
+ assigns(:subject_heading_type).should be_valid
267
+ end
268
+
269
+ it "should be forbidden" do
270
+ post :create, :subject_heading_type => @attrs
271
+ response.should redirect_to(new_user_session_url)
272
+ end
273
+ end
274
+
275
+ describe "with invalid params" do
276
+ it "assigns a newly created but unsaved subject_heading_type as @subject_heading_type" do
277
+ post :create, :subject_heading_type => @invalid_attrs
278
+ assigns(:subject_heading_type).should_not be_valid
279
+ end
280
+
281
+ it "should be forbidden" do
282
+ post :create, :subject_heading_type => @invalid_attrs
283
+ response.should redirect_to(new_user_session_url)
284
+ end
285
+ end
286
+ end
287
+ end
288
+
289
+ describe "PUT update" do
290
+ before(:each) do
291
+ @subject_heading_type = FactoryGirl.create(:subject_heading_type)
292
+ @attrs = valid_attributes
293
+ @invalid_attrs = {:name => ''}
294
+ end
295
+
296
+ describe "When logged in as Administrator" do
297
+ login_admin
298
+
299
+ describe "with valid params" do
300
+ it "updates the requested subject_heading_type" do
301
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @attrs
302
+ end
303
+
304
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
305
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @attrs
306
+ assigns(:subject_heading_type).should eq(@subject_heading_type)
307
+ end
308
+
309
+ it "moves its position when specified" do
310
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @attrs, :move => 'lower'
311
+ response.should redirect_to(subject_heading_types_url)
312
+ end
313
+ end
314
+
315
+ describe "with invalid params" do
316
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
317
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @invalid_attrs
318
+ response.should render_template("edit")
319
+ end
320
+ end
321
+ end
322
+
323
+ describe "When logged in as Librarian" do
324
+ login_librarian
325
+
326
+ describe "with valid params" do
327
+ it "updates the requested subject_heading_type" do
328
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @attrs
329
+ end
330
+
331
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
332
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @attrs
333
+ assigns(:subject_heading_type).should eq(@subject_heading_type)
334
+ response.should be_forbidden
335
+ end
336
+ end
337
+
338
+ describe "with invalid params" do
339
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
340
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @invalid_attrs
341
+ response.should be_forbidden
342
+ end
343
+ end
344
+ end
345
+
346
+ describe "When logged in as User" do
347
+ login_user
348
+
349
+ describe "with valid params" do
350
+ it "updates the requested subject_heading_type" do
351
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @attrs
352
+ end
353
+
354
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
355
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @attrs
356
+ assigns(:subject_heading_type).should eq(@subject_heading_type)
357
+ response.should be_forbidden
358
+ end
359
+ end
360
+
361
+ describe "with invalid params" do
362
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
363
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @invalid_attrs
364
+ response.should be_forbidden
365
+ end
366
+ end
367
+ end
368
+
369
+ describe "When not logged in" do
370
+ describe "with valid params" do
371
+ it "updates the requested subject_heading_type" do
372
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @attrs
373
+ end
374
+
375
+ it "should be forbidden" do
376
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @attrs
377
+ response.should redirect_to(new_user_session_url)
378
+ end
379
+ end
380
+
381
+ describe "with invalid params" do
382
+ it "assigns the requested subject_heading_type as @subject_heading_type" do
383
+ put :update, :id => @subject_heading_type.id, :subject_heading_type => @invalid_attrs
384
+ response.should redirect_to(new_user_session_url)
385
+ end
386
+ end
387
+ end
388
+ end
389
+
390
+ describe "DELETE destroy" do
391
+ before(:each) do
392
+ @subject_heading_type = FactoryGirl.create(:subject_heading_type)
393
+ end
394
+
395
+ describe "When logged in as Administrator" do
396
+ login_admin
397
+
398
+ it "destroys the requested subject_heading_type" do
399
+ delete :destroy, :id => @subject_heading_type.id
400
+ end
401
+
402
+ it "redirects to the subject_heading_types list" do
403
+ delete :destroy, :id => @subject_heading_type.id
404
+ response.should redirect_to(subject_heading_types_url)
405
+ end
406
+ end
407
+
408
+ describe "When logged in as Librarian" do
409
+ login_librarian
410
+
411
+ it "destroys the requested subject_heading_type" do
412
+ delete :destroy, :id => @subject_heading_type.id
413
+ end
414
+
415
+ it "should be forbidden" do
416
+ delete :destroy, :id => @subject_heading_type.id
417
+ response.should be_forbidden
418
+ end
419
+ end
420
+
421
+ describe "When logged in as User" do
422
+ login_user
423
+
424
+ it "destroys the requested subject_heading_type" do
425
+ delete :destroy, :id => @subject_heading_type.id
426
+ end
427
+
428
+ it "should be forbidden" do
429
+ delete :destroy, :id => @subject_heading_type.id
430
+ response.should be_forbidden
431
+ end
432
+ end
433
+
434
+ describe "When not logged in" do
435
+ it "destroys the requested subject_heading_type" do
436
+ delete :destroy, :id => @subject_heading_type.id
437
+ end
438
+
439
+ it "should be forbidden" do
440
+ delete :destroy, :id => @subject_heading_type.id
441
+ response.should redirect_to(new_user_session_url)
442
+ end
443
+ end
444
+ end
445
+ end