enju_oai 0.2.0.beta.2 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (297) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +11 -0
  3. data/Rakefile +1 -1
  4. data/app/assets/config/enju_oai_manifest.js +0 -0
  5. data/app/controllers/oai_controller.rb +2 -0
  6. data/app/views/oai/_record_dcndl.xml.builder +164 -54
  7. data/app/views/oai/get_record.xml.builder +2 -2
  8. data/app/views/oai/identify.xml.builder +2 -2
  9. data/app/views/oai/list_identifiers.xml.builder +10 -12
  10. data/app/views/oai/list_metadata_formats.xml.builder +2 -2
  11. data/app/views/oai/list_records.xml.builder +17 -19
  12. data/app/views/oai/list_sets.xml.builder +2 -2
  13. data/app/views/oai/provider.xml.builder +2 -2
  14. data/lib/enju_oai/oai_controller.rb +3 -2
  15. data/lib/enju_oai/version.rb +1 -1
  16. data/spec/cassette_library/oai/list_records_xml_builder/when_metadataPrefix_is_dcndl/renders_well-formed_XML.yml +62 -0
  17. data/spec/controllers/oai_controller_spec.rb +42 -10
  18. data/spec/dummy/app/models/application_record.rb +3 -0
  19. data/spec/dummy/app/models/user.rb +5 -1
  20. data/spec/dummy/bin/rails +1 -1
  21. data/spec/dummy/bin/setup +21 -12
  22. data/spec/dummy/bin/update +29 -0
  23. data/spec/dummy/bin/yarn +11 -0
  24. data/spec/dummy/config/application.rb +7 -17
  25. data/spec/dummy/config/database.yml +17 -22
  26. data/spec/dummy/config/environment.rb +4 -4
  27. data/spec/dummy/config/environments/development.rb +24 -11
  28. data/spec/dummy/config/environments/production.rb +28 -16
  29. data/spec/dummy/config/environments/test.rb +6 -8
  30. data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
  31. data/spec/dummy/config/initializers/assets.rb +14 -0
  32. data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
  33. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  34. data/spec/dummy/config/initializers/inflections.rb +6 -5
  35. data/spec/dummy/config/initializers/mime_types.rb +0 -1
  36. data/spec/dummy/config/initializers/session_store.rb +1 -1
  37. data/spec/dummy/config/initializers/wrap_parameters.rb +6 -6
  38. data/spec/dummy/config/sunspot.yml +23 -0
  39. data/spec/dummy/db/migrate/001_create_agents.rb +7 -7
  40. data/spec/dummy/db/migrate/002_devise_create_users.rb +6 -6
  41. data/spec/dummy/db/migrate/005_create_manifestations.rb +10 -10
  42. data/spec/dummy/db/migrate/006_create_items.rb +6 -6
  43. data/spec/dummy/db/migrate/012_create_owns.rb +3 -3
  44. data/spec/dummy/db/migrate/015_create_creates.rb +3 -3
  45. data/spec/dummy/db/migrate/029_create_subjects.rb +4 -4
  46. data/spec/dummy/db/migrate/032_create_checkins.rb +2 -2
  47. data/spec/dummy/db/migrate/033_create_checkouts.rb +5 -5
  48. data/spec/dummy/db/migrate/035_create_reserves.rb +6 -6
  49. data/spec/dummy/db/migrate/041_create_roles.rb +3 -3
  50. data/spec/dummy/db/migrate/047_create_produces.rb +3 -3
  51. data/spec/dummy/db/migrate/059_create_libraries.rb +8 -10
  52. data/spec/dummy/db/migrate/069_create_shelves.rb +4 -5
  53. data/spec/dummy/db/migrate/073_create_carrier_types.rb +2 -2
  54. data/spec/dummy/db/migrate/077_create_user_groups.rb +2 -2
  55. data/spec/dummy/db/migrate/080_create_library_groups.rb +3 -4
  56. data/spec/dummy/db/migrate/112_create_frequencies.rb +2 -2
  57. data/spec/dummy/db/migrate/113_create_events.rb +4 -4
  58. data/spec/dummy/db/migrate/114_create_event_categories.rb +2 -2
  59. data/spec/dummy/db/migrate/117_create_form_of_works.rb +2 -2
  60. data/spec/dummy/db/migrate/120_create_baskets.rb +3 -4
  61. data/spec/dummy/db/migrate/121_create_checked_items.rb +4 -4
  62. data/spec/dummy/db/migrate/124_create_bookstores.rb +2 -2
  63. data/spec/dummy/db/migrate/125_create_donates.rb +3 -3
  64. data/spec/dummy/db/migrate/127_create_use_restrictions.rb +2 -2
  65. data/spec/dummy/db/migrate/129_create_item_has_use_restrictions.rb +3 -3
  66. data/spec/dummy/db/migrate/130_create_request_status_types.rb +2 -2
  67. data/spec/dummy/db/migrate/131_create_request_types.rb +2 -2
  68. data/spec/dummy/db/migrate/132_create_circulation_statuses.rb +2 -2
  69. data/spec/dummy/db/migrate/133_create_agent_merges.rb +2 -2
  70. data/spec/dummy/db/migrate/134_create_agent_merge_lists.rb +1 -1
  71. data/spec/dummy/db/migrate/142_create_classifications.rb +3 -3
  72. data/spec/dummy/db/migrate/144_create_classification_types.rb +2 -2
  73. data/spec/dummy/db/migrate/145_create_subject_heading_types.rb +2 -2
  74. data/spec/dummy/db/migrate/146_create_subject_types.rb +2 -2
  75. data/spec/dummy/db/migrate/149_create_message_templates.rb +18 -0
  76. data/spec/dummy/db/migrate/154_create_messages.rb +23 -0
  77. data/spec/dummy/db/migrate/20080819181903_create_message_requests.rb +18 -0
  78. data/spec/dummy/db/migrate/20080830154109_create_realizes.rb +3 -3
  79. data/spec/dummy/db/migrate/20080830172106_create_exemplifies.rb +4 -4
  80. data/spec/dummy/db/migrate/20080905191442_create_agent_types.rb +2 -2
  81. data/spec/dummy/db/migrate/20081006090811_create_subscriptions.rb +5 -8
  82. data/spec/dummy/db/migrate/20081006093246_create_subscribes.rb +5 -6
  83. data/spec/dummy/db/migrate/20081023092436_create_search_engines.rb +6 -6
  84. data/spec/dummy/db/migrate/20081025083323_create_countries.rb +5 -5
  85. data/spec/dummy/db/migrate/20081025083905_create_languages.rb +6 -6
  86. data/spec/dummy/db/migrate/20081027150907_create_picture_files.rb +2 -4
  87. data/spec/dummy/db/migrate/20081028083142_create_agent_import_files.rb +1 -1
  88. data/spec/dummy/db/migrate/20081028083208_create_resource_import_files.rb +1 -1
  89. data/spec/dummy/db/migrate/20081028093607_create_event_import_files.rb +1 -1
  90. data/spec/dummy/db/migrate/20081030023412_create_checkout_types.rb +2 -2
  91. data/spec/dummy/db/migrate/20081030023518_create_user_group_has_checkout_types.rb +9 -9
  92. data/spec/dummy/db/migrate/20081030023615_create_carrier_type_has_checkout_types.rb +4 -4
  93. data/spec/dummy/db/migrate/20081212075554_create_checkout_stat_has_manifestations.rb +5 -5
  94. data/spec/dummy/db/migrate/20081212080038_create_manifestation_checkout_stats.rb +1 -1
  95. data/spec/dummy/db/migrate/20081215094302_create_user_checkout_stats.rb +1 -1
  96. data/spec/dummy/db/migrate/20081215094955_create_checkout_stat_has_users.rb +4 -4
  97. data/spec/dummy/db/migrate/20081216190517_create_reserve_stat_has_manifestations.rb +4 -4
  98. data/spec/dummy/db/migrate/20081216190724_create_manifestation_reserve_stats.rb +1 -1
  99. data/spec/dummy/db/migrate/20081220023628_create_user_reserve_stats.rb +1 -1
  100. data/spec/dummy/db/migrate/20081220034117_create_reserve_stat_has_users.rb +3 -3
  101. data/spec/dummy/db/migrate/20090321130448_add_completed_at_to_user_checkout_stat.rb +1 -1
  102. data/spec/dummy/db/migrate/20090519203307_create_participates.rb +3 -3
  103. data/spec/dummy/db/migrate/20090705133942_add_attachments_picture_to_picture_file.rb +1 -1
  104. data/spec/dummy/db/migrate/20090705212043_add_attachments_attachment_to_manifestation.rb +1 -1
  105. data/spec/dummy/db/migrate/20090720091106_create_medium_of_performances.rb +2 -2
  106. data/spec/dummy/db/migrate/20090720091429_create_content_types.rb +2 -2
  107. data/spec/dummy/db/migrate/20090812151902_create_agent_relationship_types.rb +2 -2
  108. data/spec/dummy/db/migrate/20090831220301_create_lending_policies.rb +7 -7
  109. data/spec/dummy/db/migrate/20090913173236_create_nii_types.rb +3 -3
  110. data/spec/dummy/db/migrate/20090913185239_add_nii_type_id_to_manifestation.rb +1 -1
  111. data/spec/dummy/db/migrate/20091012101112_add_dcndl_schema.rb +3 -3
  112. data/spec/dummy/db/migrate/20091025080447_create_licenses.rb +2 -2
  113. data/spec/dummy/db/migrate/20091202124834_create_versions.rb +4 -4
  114. data/spec/dummy/db/migrate/20091214131723_create_series_statements.rb +1 -1
  115. data/spec/dummy/db/migrate/20100129142347_create_import_requests.rb +1 -1
  116. data/spec/dummy/db/migrate/20100211105551_add_admin_networks_to_library_group.rb +1 -1
  117. data/spec/dummy/db/migrate/20100223121519_rename_series_statement_title_to_original_title.rb +1 -1
  118. data/spec/dummy/db/migrate/20100314190054_add_opening_hour_to_library.rb +1 -1
  119. data/spec/dummy/db/migrate/20100321235924_add_series_statement_identifier_to_series_statement.rb +1 -1
  120. data/spec/dummy/db/migrate/20100525124311_create_manifestation_relationships.rb +1 -1
  121. data/spec/dummy/db/migrate/20100606065209_create_user_has_roles.rb +3 -5
  122. data/spec/dummy/db/migrate/20100606073747_create_agent_relationships.rb +1 -1
  123. data/spec/dummy/db/migrate/20100607044753_create_manifestation_relationship_types.rb +2 -2
  124. data/spec/dummy/db/migrate/20100814091104_add_position_to_agent_relationship.rb +1 -1
  125. data/spec/dummy/db/migrate/20100925043847_create_resource_import_results.rb +1 -1
  126. data/spec/dummy/db/migrate/20100925074559_create_agent_import_results.rb +1 -1
  127. data/spec/dummy/db/migrate/20100925074639_create_event_import_results.rb +1 -1
  128. data/spec/dummy/db/migrate/20101212070145_add_acquired_at_to_item.rb +1 -1
  129. data/spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb +2 -2
  130. data/spec/dummy/db/migrate/20110301035123_add_pub_date_to_manifestation.rb +1 -1
  131. data/spec/dummy/db/migrate/20110301121550_add_birth_date_and_death_date_to_agent.rb +1 -1
  132. data/spec/dummy/db/migrate/20110301134521_add_expire_date_to_reserve.rb +1 -1
  133. data/spec/dummy/db/migrate/20110318183304_add_valid_period_for_new_user_to_user_group.rb +2 -2
  134. data/spec/dummy/db/migrate/20110328130826_add_current_checkout_count_to_user_group_has_checkout_type.rb +1 -1
  135. data/spec/dummy/db/migrate/20110603184217_add_edit_mode_to_resource_import_file.rb +1 -1
  136. data/spec/dummy/db/migrate/20110619064807_add_edition_string_to_manifestation.rb +1 -1
  137. data/spec/dummy/db/migrate/20110620173525_add_bookstore_id_to_item.rb +1 -1
  138. data/spec/dummy/db/migrate/20110621093332_remove_expire_date_from_reserve.rb +1 -1
  139. data/spec/dummy/db/migrate/20110627034940_create_series_statement_merge_lists.rb +1 -1
  140. data/spec/dummy/db/migrate/20110627035057_create_series_statement_merges.rb +3 -3
  141. data/spec/dummy/db/migrate/20110627122938_add_number_of_day_to_notify_overdue_to_user_group.rb +4 -4
  142. data/spec/dummy/db/migrate/20110913115320_add_lft_and_rgt_to_message.rb +11 -0
  143. data/spec/dummy/db/migrate/20110913120629_add_lft_and_rgt_to_classification.rb +1 -1
  144. data/spec/dummy/db/migrate/20110916091020_add_volume_number_to_manifestation.rb +1 -1
  145. data/spec/dummy/db/migrate/20110916103953_add_manifestaiton_id_to_series_statement.rb +1 -1
  146. data/spec/dummy/db/migrate/20110918162329_add_note_to_series_statement.rb +1 -1
  147. data/spec/dummy/db/migrate/20111124110059_create_create_types.rb +1 -1
  148. data/spec/dummy/db/migrate/20111124110319_create_realize_types.rb +1 -1
  149. data/spec/dummy/db/migrate/20111124110355_create_produce_types.rb +1 -1
  150. data/spec/dummy/db/migrate/20111124112131_add_create_type_to_create.rb +1 -1
  151. data/spec/dummy/db/migrate/20111217234412_add_save_checkout_history_to_user.rb +2 -2
  152. data/spec/dummy/db/migrate/20111218002349_add_checkout_icalendar_token_to_user.rb +2 -2
  153. data/spec/dummy/db/migrate/20120105074911_add_isil_to_library.rb +1 -1
  154. data/spec/dummy/db/migrate/20120125050502_add_depth_to_message.rb +6 -0
  155. data/spec/dummy/db/migrate/20120125152919_add_title_subseries_transcription_to_series_statement.rb +1 -1
  156. data/spec/dummy/db/migrate/20120129014038_create_budget_types.rb +1 -1
  157. data/spec/dummy/db/migrate/20120129020544_add_budget_type_id_to_item.rb +1 -1
  158. data/spec/dummy/db/migrate/20120319120638_add_content_type_id_to_manifestation.rb +2 -2
  159. data/spec/dummy/db/migrate/20120319173203_create_accepts.rb +4 -7
  160. data/spec/dummy/db/migrate/20120406020752_add_url_to_subject.rb +1 -1
  161. data/spec/dummy/db/migrate/20120410104851_add_year_of_publication_to_manifestation.rb +1 -1
  162. data/spec/dummy/db/migrate/20120413051535_add_event_import_fingerprint_to_event_import_file.rb +1 -1
  163. data/spec/dummy/db/migrate/20120413072700_add_picture_meta_to_picture_file.rb +1 -1
  164. data/spec/dummy/db/migrate/20120413100352_add_fingerprint_to_picture_file.rb +1 -1
  165. data/spec/dummy/db/migrate/20120413161340_add_fingerprint_to_resource_import_file.rb +1 -1
  166. data/spec/dummy/db/migrate/20120413161403_add_fingerprint_to_agent_import_file.rb +1 -1
  167. data/spec/dummy/db/migrate/20120413170705_add_error_message_to_resource_import_file.rb +1 -1
  168. data/spec/dummy/db/migrate/20120413170720_add_error_message_to_agent_import_file.rb +1 -1
  169. data/spec/dummy/db/migrate/20120413170734_add_error_message_to_event_import_file.rb +1 -1
  170. data/spec/dummy/db/migrate/20120415060342_rename_event_import_file_imported_at_to_executed_at.rb +1 -1
  171. data/spec/dummy/db/migrate/20120415164821_add_attachment_meta_to_manifestation.rb +1 -1
  172. data/spec/dummy/db/migrate/20120418081407_add_month_of_publication_to_manifestation.rb +1 -1
  173. data/spec/dummy/db/migrate/20120424103932_add_librarian_id_to_checked_item.rb +1 -1
  174. data/spec/dummy/db/migrate/20120510140958_add_closed_to_shelf.rb +2 -2
  175. data/spec/dummy/db/migrate/20120511072422_add_agent_identifier_to_agent.rb +1 -1
  176. data/spec/dummy/db/migrate/20120602141129_add_edit_mode_to_agent_import_file.rb +1 -1
  177. data/spec/dummy/db/migrate/20121116031206_add_fulltext_content_to_manifestation.rb +1 -1
  178. data/spec/dummy/db/migrate/20130221154434_add_additional_attributes_to_user.rb +4 -4
  179. data/spec/dummy/db/migrate/20130303124821_add_retained_at_to_reserve.rb +1 -1
  180. data/spec/dummy/db/migrate/20130304015019_add_postponed_at_to_reserve.rb +1 -1
  181. data/spec/dummy/db/migrate/20130412083556_add_latitude_and_longitude_to_library.rb +1 -1
  182. data/spec/dummy/db/migrate/20130416054135_add_circulation_status_id_to_item.rb +3 -3
  183. data/spec/dummy/db/migrate/20130421093852_add_periodical_to_manifestation.rb +1 -1
  184. data/spec/dummy/db/migrate/20130421155019_add_creator_string_to_series_statement.rb +1 -1
  185. data/spec/dummy/db/migrate/20130421164124_add_series_master_to_series_statement.rb +1 -1
  186. data/spec/dummy/db/migrate/20130429020822_add_root_manifestation_id_to_series_statement.rb +1 -1
  187. data/spec/dummy/db/migrate/20130504133816_add_manifestation_id_to_subject.rb +1 -1
  188. data/spec/dummy/db/migrate/20130504143515_add_manifestation_id_to_classification.rb +1 -1
  189. data/spec/dummy/db/migrate/20130504195916_add_subject_heading_type_id_to_subject.rb +1 -1
  190. data/spec/dummy/db/migrate/20130506175303_create_identifier_types.rb +1 -1
  191. data/spec/dummy/db/migrate/20130506175834_create_identifiers.rb +3 -3
  192. data/spec/dummy/db/migrate/20130509185724_add_statement_of_responsibility_to_manifestation.rb +1 -1
  193. data/spec/dummy/db/migrate/20130519065638_add_lock_version_to_reserve.rb +2 -2
  194. data/spec/dummy/db/migrate/20130519065837_add_lock_version_to_checkin.rb +2 -2
  195. data/spec/dummy/db/migrate/20140110122216_create_user_import_files.rb +2 -2
  196. data/spec/dummy/db/migrate/20140110131010_create_user_import_results.rb +3 -3
  197. data/spec/dummy/db/migrate/20140122054321_create_profiles.rb +6 -7
  198. data/spec/dummy/db/migrate/20140518050147_create_reserve_transitions.rb +1 -1
  199. data/spec/dummy/db/migrate/20140518111006_create_message_transitions.rb +18 -0
  200. data/spec/dummy/db/migrate/20140518135713_create_message_request_transitions.rb +18 -0
  201. data/spec/dummy/db/migrate/20140519170214_create_resource_import_file_transitions.rb +1 -1
  202. data/spec/dummy/db/migrate/20140519171220_create_import_request_transitions.rb +1 -1
  203. data/spec/dummy/db/migrate/20140523171309_create_event_import_file_transitions.rb +1 -1
  204. data/spec/dummy/db/migrate/20140524020735_create_agent_import_file_transitions.rb +1 -1
  205. data/spec/dummy/db/migrate/20140524074813_create_user_import_file_transitions.rb +2 -3
  206. data/spec/dummy/db/migrate/20140528045518_create_user_checkout_stat_transitions.rb +1 -1
  207. data/spec/dummy/db/migrate/20140528045539_create_user_reserve_stat_transitions.rb +1 -1
  208. data/spec/dummy/db/migrate/20140528045600_create_manifestation_checkout_stat_transitions.rb +1 -1
  209. data/spec/dummy/db/migrate/20140528045617_create_manifestation_reserve_stat_transitions.rb +1 -1
  210. data/spec/dummy/db/migrate/20140610123439_drop_email_unique_constraint_enju_leaf_rc10.rb +1 -1
  211. data/spec/dummy/db/migrate/20140614065404_create_resource_export_files.rb +1 -1
  212. data/spec/dummy/db/migrate/20140614141500_create_resource_export_file_transitions.rb +1 -1
  213. data/spec/dummy/db/migrate/20140628071719_add_user_encoding_to_event_import_file.rb +1 -1
  214. data/spec/dummy/db/migrate/20140628072217_add_user_encoding_to_user_import_file.rb +1 -1
  215. data/spec/dummy/db/migrate/20140628073524_add_user_encoding_to_agent_import_file.rb +1 -1
  216. data/spec/dummy/db/migrate/20140628073535_add_user_encoding_to_resource_import_file.rb +1 -1
  217. data/spec/dummy/db/migrate/20140709113413_create_user_export_files.rb +2 -2
  218. data/spec/dummy/db/migrate/20140709113905_create_user_export_file_transitions.rb +2 -2
  219. data/spec/dummy/db/migrate/20140720140916_add_binding_item_identifier_to_item.rb +1 -1
  220. data/spec/dummy/db/migrate/20140720170714_add_default_library_id_to_user_import_file.rb +2 -2
  221. data/spec/dummy/db/migrate/20140720170735_add_default_user_group_id_to_user_import_file.rb +2 -2
  222. data/spec/dummy/db/migrate/20140720192418_add_default_library_id_to_event_import_file.rb +1 -1
  223. data/spec/dummy/db/migrate/20140721151416_add_default_shelf_id_to_resource_import_file.rb +1 -1
  224. data/spec/dummy/db/migrate/20140802082007_add_manifestation_id_to_item.rb +1 -1
  225. data/spec/dummy/db/migrate/20140810061942_add_user_id_to_user_checkout_stat.rb +1 -1
  226. data/spec/dummy/db/migrate/20140810091231_add_checkout_icalendar_token_to_profile.rb +2 -2
  227. data/spec/dummy/db/migrate/20140810091417_add_save_checkout_history_to_profile.rb +2 -2
  228. data/spec/dummy/db/migrate/20140811031145_add_expired_at_to_profile.rb +1 -1
  229. data/spec/dummy/db/migrate/20140812152348_create_event_export_files.rb +1 -1
  230. data/spec/dummy/db/migrate/20140812153137_create_event_export_file_transitions.rb +1 -1
  231. data/spec/dummy/db/migrate/20140813182425_add_publication_place_to_manifestation.rb +1 -1
  232. data/spec/dummy/db/migrate/20140814070854_add_default_event_category_id_to_event_import_file.rb +1 -1
  233. data/spec/dummy/db/migrate/20140821151023_create_colors.rb +2 -4
  234. data/spec/dummy/db/migrate/20140822114527_add_error_message_to_resource_import_result.rb +1 -1
  235. data/spec/dummy/db/migrate/20140823083524_add_extent_to_manifestation.rb +1 -1
  236. data/spec/dummy/db/migrate/20140823094847_add_dimensions_to_manifestation.rb +1 -1
  237. data/spec/dummy/db/migrate/20140823095740_rename_manifestation_periodical_to_serial.rb +1 -1
  238. data/spec/dummy/db/migrate/20141003181336_add_full_name_transcription_to_profile.rb +1 -1
  239. data/spec/dummy/db/migrate/20141003182825_add_date_of_birth_to_profile.rb +1 -1
  240. data/spec/dummy/db/migrate/20141014065831_add_shelf_id_to_checkout.rb +1 -1
  241. data/spec/dummy/db/migrate/20150117111136_add_foreign_key_to_items_referencing_manifestations.rb +5 -0
  242. data/spec/dummy/db/migrate/20150221063719_add_settings_to_library_group.rb +1 -1
  243. data/spec/dummy/db/migrate/20150506105356_add_error_message_to_user_import_result.rb +1 -1
  244. data/spec/dummy/db/migrate/20150924115059_create_withdraws.rb +4 -6
  245. data/spec/dummy/db/migrate/20151125004028_add_profile_id_to_agent.rb +6 -0
  246. data/spec/dummy/db/migrate/20151213070943_add_translation_table_to_library_group.rb +12 -7
  247. data/spec/dummy/db/migrate/20151213072705_add_footer_banner_to_library_group.rb +16 -3
  248. data/spec/dummy/db/migrate/20160610093229_add_html_snippet_to_library_group.rb +1 -1
  249. data/spec/dummy/db/migrate/20160627232219_add_most_recent_to_user_import_file_transitions.rb +1 -1
  250. data/spec/dummy/db/migrate/20160627232316_add_most_recent_to_user_export_file_transitions.rb +1 -1
  251. data/spec/dummy/db/migrate/20160703185015_add_most_recent_to_message_transitions.rb +9 -0
  252. data/spec/dummy/db/migrate/20160801080612_add_most_recent_to_import_request_transitions.rb +9 -0
  253. data/spec/dummy/db/migrate/20160801080619_add_most_recent_to_resource_import_file_transitions.rb +9 -0
  254. data/spec/dummy/db/migrate/20160801080637_add_most_recent_to_resource_export_file_transitions.rb +9 -0
  255. data/spec/dummy/db/migrate/20160801080643_add_most_recent_to_agent_import_file_transitions.rb +9 -0
  256. data/spec/dummy/db/migrate/20160811102604_add_picture_width_to_picture_file.rb +6 -0
  257. data/spec/dummy/db/migrate/20160813191647_add_max_number_of_results_to_library_group.rb +5 -0
  258. data/spec/dummy/db/migrate/20160813191733_add_family_name_first_to_library_group.rb +5 -0
  259. data/spec/dummy/db/migrate/20160813192542_add_pub_year_facet_range_interval_to_library_group.rb +5 -0
  260. data/spec/dummy/db/migrate/20160813203039_add_user_id_to_library_group.rb +5 -0
  261. data/spec/dummy/db/migrate/20160814165332_add_most_recent_to_message_request_transitions.rb +9 -0
  262. data/spec/dummy/db/migrate/20160820004638_add_attachment_attachment_to_carrier_types.rb +11 -0
  263. data/spec/dummy/db/migrate/20170305064014_add_csv_charset_conversion_to_library_group.rb +5 -0
  264. data/spec/dummy/db/migrate/20171014084528_add_header_logo_to_library_group.rb +5 -0
  265. data/spec/dummy/db/migrate/20171119051258_set_not_null_to_manifestation_id_on_items.rb +5 -0
  266. data/spec/dummy/db/migrate/20171126133835_rename_login_banner_to_old_login_banner.rb +5 -0
  267. data/spec/dummy/db/migrate/20171126135238_add_foreign_key_to_library_group_id_on_library.rb +5 -0
  268. data/spec/dummy/db/migrate/20180102162311_add_header_logo_meta_to_library_group.rb +5 -0
  269. data/spec/dummy/db/migrate/20180107160726_add_constraints_to_most_recent_for_user_import_file_transitions.rb +13 -0
  270. data/spec/dummy/db/migrate/20180107160740_add_constraints_to_most_recent_for_user_export_file_transitions.rb +13 -0
  271. data/spec/dummy/db/migrate/20180107161311_add_constraints_to_most_recent_for_agent_import_file_transitions.rb +13 -0
  272. data/spec/dummy/db/migrate/20180107161331_add_constraints_to_most_recent_for_resource_import_file_transitions.rb +13 -0
  273. data/spec/dummy/db/migrate/20180107161347_add_constraints_to_most_recent_for_resource_export_file_transitions.rb +13 -0
  274. data/spec/dummy/db/migrate/20180107161410_add_constraints_to_most_recent_for_import_request_transitions.rb +13 -0
  275. data/spec/dummy/db/migrate/20190818075603_add_memo_to_manifestation.rb +5 -0
  276. data/spec/dummy/db/migrate/20190818075628_add_memo_to_item.rb +5 -0
  277. data/spec/dummy/db/migrate/20191219122214_create_custom_properties.rb +12 -0
  278. data/spec/dummy/db/migrate/20200425072340_create_manifestation_custom_properties.rb +12 -0
  279. data/spec/dummy/db/migrate/20200425072349_create_item_custom_properties.rb +12 -0
  280. data/spec/dummy/db/migrate/20200425074758_create_manifestation_custom_values.rb +12 -0
  281. data/spec/dummy/db/migrate/20200425074822_create_item_custom_values.rb +12 -0
  282. data/spec/dummy/db/schema.rb +967 -887
  283. data/spec/factories/manifestation.rb +1 -1
  284. data/spec/factories/user.rb +11 -20
  285. data/spec/fixtures/library_groups.yml +1 -6
  286. data/spec/rails_helper.rb +53 -0
  287. data/spec/spec_helper.rb +82 -47
  288. data/spec/support/controller_macros.rb +3 -3
  289. data/spec/views/oai/get_record.xml.builder +3 -3
  290. data/spec/views/oai/identify.xml.builder_spec.rb +1 -1
  291. data/spec/views/oai/list_identifiers.xml.builder_spec.rb +13 -6
  292. data/spec/views/oai/list_metadata_formats.xml.builder_spec.rb +1 -1
  293. data/spec/views/oai/list_records.xml.builder_spec.rb +57 -17
  294. metadata +421 -297
  295. data/README.rdoc +0 -10
  296. data/spec/dummy/config/initializers/enju_leaf.rb +0 -2
  297. data/spec/dummy/db/migrate/20160813130535_add_email_to_library_group.rb +0 -5
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :manifestation do |f|
3
3
  f.sequence(:original_title){|n| "manifestation_title_#{n}"}
4
4
  f.carrier_type_id{CarrierType.find(1).id}
@@ -1,37 +1,28 @@
1
- FactoryGirl.define do
2
- factory :admin, :class => User do |f|
1
+ FactoryBot.define do
2
+ factory :admin, class: User do |f|
3
3
  f.sequence(:username){|n| "admin_#{n}"}
4
4
  f.sequence(:email){|n| "admin_#{n}@example.jp"}
5
5
  f.role {Role.find_by_name('Administrator')}
6
- f.password 'adminpassword'
7
- f.password_confirmation 'adminpassword'
8
- f.user_group {UserGroup.first}
9
- f.required_role {Role.find_by_name('User')}
10
- f.sequence(:user_number){|n| "user_number_#{n}"}
6
+ f.password { 'adminpassword' }
7
+ f.password_confirmation { 'adminpassword' }
11
8
  end
12
9
 
13
- factory :librarian, :class => User do |f|
10
+ factory :librarian, class: User do |f|
14
11
  f.sequence(:username){|n| "librarian_#{n}"}
15
12
  f.sequence(:email){|n| "librarian_#{n}@example.jp"}
16
13
  f.role {Role.find_by_name('Librarian')}
17
- f.password 'librarianpassword'
18
- f.password_confirmation 'librarianpassword'
19
- f.user_group {UserGroup.first}
20
- f.required_role {Role.find_by_name('User')}
21
- f.sequence(:user_number){|n| "user_number_#{n}"}
14
+ f.password { 'librarianpassword' }
15
+ f.password_confirmation { 'librarianpassword' }
22
16
  end
23
17
 
24
- factory :user, :class => User do |f|
18
+ factory :user, class: User do |f|
25
19
  f.sequence(:username){|n| "user_#{n}"}
26
20
  f.sequence(:email){|n| "user_#{n}@example.jp"}
27
21
  f.role {Role.find_by_name('User')}
28
- f.password 'userpassword'
29
- f.password_confirmation 'userpassword'
30
- f.user_group {UserGroup.first}
31
- f.required_role {Role.find_by_name('User')}
32
- f.sequence(:user_number){|n| "user_number_#{n}"}
22
+ f.password { 'userpassword' }
23
+ f.password_confirmation { 'userpassword' }
33
24
  end
34
25
 
35
- factory :invalid_user, :class => User do |f|
26
+ factory :invalid_user, class: User do |f|
36
27
  end
37
28
  end
@@ -7,12 +7,7 @@ one:
7
7
  note:
8
8
  my_networks: 0.0.0.0/0
9
9
  url: "http://localhost:3000/"
10
- settings: <% if Rails::VERSION::MAJOR > 3 %>
11
- "{\"max_number_of_results\":200,\"family_name_first\":true}"
12
- <% else %>
13
- "---\n:max_number_of_results: 200\n:family_name_first: true\n"
14
- <% end %>
15
-
10
+ user_id: 1
16
11
 
17
12
  # == Schema Information
18
13
  #
@@ -0,0 +1,53 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+ SimpleCov.start 'rails'
4
+ Coveralls.wear!
5
+
6
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
7
+ ENV["RAILS_ENV"] ||= 'test'
8
+ require File.expand_path("../dummy/config/environment", __FILE__)
9
+ require 'rspec/rails'
10
+ require 'factory_bot'
11
+ require 'vcr'
12
+
13
+ # Requires supporting ruby files with custom matchers and macros, etc,
14
+ # in spec/support/ and its subdirectories.
15
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
16
+
17
+ RSpec.configure do |config|
18
+ # ## Mock Framework
19
+ #
20
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
21
+ #
22
+ # config.mock_with :mocha
23
+ # config.mock_with :flexmock
24
+ # config.mock_with :rr
25
+
26
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
27
+ config.fixture_path = "#{::Rails.root}/../../spec/fixtures"
28
+
29
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
30
+ # examples within a transaction, remove the following line or assign false
31
+ # instead of true.
32
+ config.use_transactional_fixtures = true
33
+
34
+ # If true, the base class of anonymous controllers will be inferred
35
+ # automatically. This will be the default behavior in future versions of
36
+ # rspec-rails.
37
+ config.infer_base_class_for_anonymous_controllers = false
38
+
39
+ config.extend ControllerMacros, type: :controller
40
+
41
+ config.infer_spec_type_from_file_location!
42
+ end
43
+
44
+ FactoryBot.definition_file_paths << "#{::Rails.root}/../../spec/factories"
45
+ FactoryBot.find_definitions
46
+
47
+ VCR.configure do |c|
48
+ c.cassette_library_dir = 'spec/cassette_library'
49
+ c.hook_into :webmock
50
+ c.configure_rspec_metadata!
51
+ c.allow_http_connections_when_no_cassette = true
52
+ c.ignore_localhost = true
53
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,57 +1,92 @@
1
- require 'simplecov'
2
- require 'coveralls'
3
- SimpleCov.start 'rails'
4
- Coveralls.wear!
5
-
6
- # This file is copied to spec/ when you run 'rails generate rspec:install'
7
- ENV["RAILS_ENV"] ||= 'test'
8
- require File.expand_path("../dummy/config/environment", __FILE__)
9
- require 'rspec/rails'
10
- require 'factory_girl'
11
- require 'sunspot-rails-tester'
12
-
13
- # Requires supporting ruby files with custom matchers and macros, etc,
14
- # in spec/support/ and its subdirectories.
15
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
16
-
1
+ # This file was generated by the `rails generate rspec:install` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # The generated `.rspec` file contains `--require spec_helper` which will cause
4
+ # this file to always be loaded, without a need to explicitly require it in any
5
+ # files.
6
+ #
7
+ # Given that it is always loaded, you are encouraged to keep this file as
8
+ # light-weight as possible. Requiring heavyweight dependencies from this file
9
+ # will add to the boot time of your test suite on EVERY test run, even for an
10
+ # individual file that may not need all of that loaded. Instead, consider making
11
+ # a separate helper file that requires the additional dependencies and performs
12
+ # the additional setup, and require it from the spec files that actually need
13
+ # it.
14
+ #
15
+ # The `.rspec` file also contains a few flags that are not defaults but that
16
+ # users commonly want.
17
+ #
18
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
17
19
  RSpec.configure do |config|
18
- # ## Mock Framework
19
- #
20
- # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
21
- #
22
- # config.mock_with :mocha
23
- # config.mock_with :flexmock
24
- # config.mock_with :rr
25
-
26
- # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
27
- config.fixture_path = "#{::Rails.root}/../../spec/fixtures"
20
+ # rspec-expectations config goes here. You can use an alternate
21
+ # assertion/expectation library such as wrong or the stdlib/minitest
22
+ # assertions if you prefer.
23
+ config.expect_with :rspec do |expectations|
24
+ # This option will default to `true` in RSpec 4. It makes the `description`
25
+ # and `failure_message` of custom matchers include text for helper methods
26
+ # defined using `chain`, e.g.:
27
+ # be_bigger_than(2).and_smaller_than(4).description
28
+ # # => "be bigger than 2 and smaller than 4"
29
+ # ...rather than:
30
+ # # => "be bigger than 2"
31
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
32
+ end
28
33
 
29
- # If you're not using ActiveRecord, or you'd prefer not to run each of your
30
- # examples within a transaction, remove the following line or assign false
31
- # instead of true.
32
- config.use_transactional_fixtures = true
34
+ # rspec-mocks config goes here. You can use an alternate test double
35
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
36
+ config.mock_with :rspec do |mocks|
37
+ # Prevents you from mocking or stubbing a method that does not exist on
38
+ # a real object. This is generally recommended, and will default to
39
+ # `true` in RSpec 4.
40
+ mocks.verify_partial_doubles = false
41
+ end
33
42
 
34
- # If true, the base class of anonymous controllers will be inferred
35
- # automatically. This will be the default behavior in future versions of
36
- # rspec-rails.
37
- config.infer_base_class_for_anonymous_controllers = false
43
+ # The settings below are suggested to provide a good initial experience
44
+ # with RSpec, but feel free to customize to your heart's content.
45
+ =begin
46
+ # These two settings work together to allow you to limit a spec run
47
+ # to individual examples or groups you care about by tagging them with
48
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
49
+ # get run.
50
+ config.filter_run :focus
51
+ config.run_all_when_everything_filtered = true
38
52
 
39
- config.extend ControllerMacros, :type => :controller
53
+ # Allows RSpec to persist some state between runs in order to support
54
+ # the `--only-failures` and `--next-failure` CLI options. We recommend
55
+ # you configure your source control system to ignore this file.
56
+ config.example_status_persistence_file_path = "spec/examples.txt"
40
57
 
41
- $original_sunspot_session = Sunspot.session
58
+ # Limits the available syntax to the non-monkey patched syntax that is
59
+ # recommended. For more details, see:
60
+ # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
61
+ # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
62
+ # - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
63
+ config.disable_monkey_patching!
42
64
 
43
- config.before do
44
- Sunspot.session = Sunspot::Rails::StubSessionProxy.new($original_sunspot_session)
65
+ # Many RSpec users commonly either run the entire suite or an individual
66
+ # file, and it's useful to allow more verbose output when running an
67
+ # individual spec file.
68
+ if config.files_to_run.one?
69
+ # Use the documentation formatter for detailed output,
70
+ # unless a formatter has already been configured
71
+ # (e.g. via a command-line flag).
72
+ config.default_formatter = 'doc'
45
73
  end
46
74
 
47
- config.before :each, :solr => true do
48
- Sunspot::Rails::Tester.start_original_sunspot_session
49
- Sunspot.session = $original_sunspot_session
50
- Sunspot.remove_all!
51
- end
75
+ # Print the 10 slowest examples and example groups at the
76
+ # end of the spec run, to help surface which specs are running
77
+ # particularly slow.
78
+ config.profile_examples = 10
52
79
 
53
- config.infer_spec_type_from_file_location!
54
- end
80
+ # Run specs in random order to surface order dependencies. If you find an
81
+ # order dependency and want to debug it, you can fix the order by providing
82
+ # the seed, which is printed after each run.
83
+ # --seed 1234
84
+ config.order = :random
55
85
 
56
- FactoryGirl.definition_file_paths << "#{::Rails.root}/../../spec/factories"
57
- FactoryGirl.find_definitions
86
+ # Seed global randomization in this process using the `--seed` CLI option.
87
+ # Setting this allows you to use `--seed` to deterministically reproduce
88
+ # test failures related to randomization by passing the same `--seed` value
89
+ # as the one that triggered the failure.
90
+ Kernel.srand config.seed
91
+ =end
92
+ end
@@ -2,14 +2,14 @@ module ControllerMacros
2
2
  def login_admin
3
3
  before(:each) do
4
4
  @request.env["devise.mapping"] = Devise.mappings[:admin]
5
- sign_in FactoryGirl.create(:admin)
5
+ sign_in FactoryBot.create(:admin)
6
6
  end
7
7
  end
8
8
 
9
9
  def login_librarian
10
10
  before(:each) do
11
11
  @request.env["devise.mapping"] = Devise.mappings[:user]
12
- user = FactoryGirl.create(:librarian)
12
+ user = FactoryBot.create(:librarian)
13
13
  sign_in user
14
14
  end
15
15
  end
@@ -17,7 +17,7 @@ module ControllerMacros
17
17
  def login_user
18
18
  before(:each) do
19
19
  @request.env["devise.mapping"] = Devise.mappings[:user]
20
- user = FactoryGirl.create(:user)
20
+ user = FactoryBot.create(:user)
21
21
  sign_in user
22
22
  end
23
23
  end
@@ -1,10 +1,10 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require 'spec_helper'
2
+ require 'rails_helper'
3
3
 
4
4
  describe "oai/show.xml.builder" do
5
5
  describe "When metadataPrefix is 'oai_dc'" do
6
6
  before(:each) do
7
- assign(:manifestation, FactoryGirl.create(:manifestation))
7
+ assign(:manifestation, FactoryBot.create(:manifestation))
8
8
  assign(:oai, metadataPrefix: 'oai_dc')
9
9
  end
10
10
 
@@ -18,7 +18,7 @@ describe "oai/show.xml.builder" do
18
18
 
19
19
  describe "When metadataPrefix is 'junii2'" do
20
20
  before(:each) do
21
- assign(:manifestation, FactoryGirl.create(:manifestation))
21
+ assign(:manifestation, FactoryBot.create(:manifestation))
22
22
  assign(:oai, metadataPrefix: 'junii2')
23
23
  end
24
24
 
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require 'spec_helper'
2
+ require 'rails_helper'
3
3
 
4
4
  describe "oai/identify.xml.builder" do
5
5
  fixtures :all
@@ -1,18 +1,25 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require 'spec_helper'
2
+ require 'rails_helper'
3
3
 
4
4
  describe "oai/list_identifiers.xml.builder" do
5
5
  fixtures :all
6
6
  before(:each) do
7
7
  view.stub(:current_user_role_name).and_return('Guest')
8
- assign(:oai, { :errors => [] })
9
- manifestations = [ FactoryGirl.create(:manifestation) ]
10
- manifestations.stub(:last_page?){true}
11
- manifestations.stub(:total_count){manifestations.size}
12
- assign(:manifestations, manifestations)
8
+ assign(:oai, { errors: [] })
9
+ @manifestations = Manifestation.all
10
+ @manifestations.stub(:next_page_cursor){'11223344=='}
11
+ @manifestations.stub(:last_page?){false}
12
+ @manifestations.stub(:total_count){@manifestations.size}
13
+ assign(:manifestations, @manifestations)
13
14
  end
15
+
14
16
  it "renders the XML template" do
15
17
  render
16
18
  expect(rendered).to match /<ListIdentifiers>/
17
19
  end
20
+
21
+ it "renders resumptionToken" do
22
+ render
23
+ expect(Nokogiri::XML(rendered).remove_namespaces!.at('//resumptionToken').content).to eq '11223344%3D%3D'
24
+ end
18
25
  end
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require 'spec_helper'
2
+ require 'rails_helper'
3
3
 
4
4
  describe "oai/list_metadata_formats.xml.builder" do
5
5
  fixtures :all
@@ -1,16 +1,16 @@
1
- # -*- encoding: utf-8 -*-
2
- require 'spec_helper'
1
+ require 'rails_helper'
3
2
 
4
3
  describe "oai/list_records.xml.builder" do
5
4
  fixtures :all
6
5
 
7
6
  before(:each) do
8
7
  view.stub(:current_user_role_name).and_return('Guest')
9
- assign(:oai, { :errors => [] })
10
- manifestations = [ FactoryGirl.create(:manifestation) ]
11
- manifestations.stub(:last_page?){true}
12
- manifestations.stub(:total_count){manifestations.size}
13
- assign(:manifestations, manifestations)
8
+ assign(:oai, { errors: [] })
9
+ @manifestations = [FactoryBot.create(:manifestation, pub_date: '2015-08-15')]
10
+ @manifestations.stub(:next_page_cursor){nil}
11
+ @manifestations.stub(:last_page?){true}
12
+ @manifestations.stub(:total_count){@manifestations.size}
13
+ assign(:manifestations, @manifestations)
14
14
  end
15
15
 
16
16
  it "renders the XML template" do
@@ -19,18 +19,20 @@ describe "oai/list_records.xml.builder" do
19
19
  end
20
20
 
21
21
  it "renders dc:date" do
22
- manifestations = [FactoryGirl.create(:manifestation, pub_date: '2015-08-15')]
23
- manifestations.stub(:last_page?){true}
24
- manifestations.stub(:total_count){manifestations.size}
25
- assign(:manifestations, manifestations)
26
22
  render
27
23
  expect(rendered).to match /2015-08-15/
28
24
  end
29
25
 
30
26
  describe "when metadataPrefix is oai_dc" do
31
27
  before(:each) do
32
- assign(:oai, { :errors => [], :metadataPrefix => 'oai_dc' } )
28
+ assign(:oai, { errors: [], metadataPrefix: 'oai_dc' } )
29
+ @manifestations = [FactoryBot.create(:manifestation, nii_type_id: 1)]
30
+ @manifestations.stub(:next_page_cursor){nil}
31
+ @manifestations.stub(:last_page?){true}
32
+ @manifestations.stub(:total_count){@manifestations.size}
33
+ assign(:manifestations, @manifestations)
33
34
  end
35
+
34
36
  it "renders the XML template" do
35
37
  render
36
38
  expect(rendered).to match /<oai_dc/
@@ -39,19 +41,57 @@ describe "oai/list_records.xml.builder" do
39
41
 
40
42
  describe "when metadataPrefix is junii2" do
41
43
  before(:each) do
42
- assign(:oai, { :errors => [], :metadataPrefix => 'junii2' } )
44
+ assign(:oai, { errors: [], metadataPrefix: 'junii2' } )
45
+ @manifestations = [FactoryBot.create(:manifestation, nii_type_id: 1)]
46
+ @manifestations.stub(:next_page_cursor){nil}
47
+ @manifestations.stub(:last_page?){true}
48
+ @manifestations.stub(:total_count){@manifestations.size}
43
49
  end
50
+
44
51
  it "renders the XML template" do
52
+ assign(:manifestations, @manifestations)
45
53
  render
46
54
  expect(rendered).to match /<junii2/
47
55
  end
56
+
48
57
  it "renders NIItype" do
49
- manifestations = [FactoryGirl.create(:manifestation, nii_type_id: 1)]
50
- manifestations.stub(:last_page?){true}
51
- manifestations.stub(:total_count){manifestations.size}
52
- assign(:manifestations, manifestations)
58
+ assign(:manifestations, @manifestations)
53
59
  render
54
60
  expect(rendered).to match /<NIItype>Journal Article<\/NIItype>/
55
61
  end
56
62
  end
63
+
64
+ describe "when metadataPrefix is dcndl" do
65
+ before(:each) do
66
+ assign(:oai, { errors: [], metadataPrefix: 'dcndl' } )
67
+ @manifestations = Manifestation.all
68
+ @manifestations.stub(:next_page_cursor){'11223344=='}
69
+ @manifestations.stub(:last_page?){false}
70
+ @manifestations.stub(:total_count){@manifestations.size}
71
+ assign(:manifestations, @manifestations)
72
+ end
73
+
74
+ it "renders the XML template" do
75
+ render
76
+ expect(rendered).to match /dcndl/
77
+ end
78
+
79
+ it "renders well-formed XML", vcr: true do
80
+ NdlBook.import_from_sru_response('R100000002-I000008369884-00')
81
+ render
82
+ doc = Nokogiri::XML(rendered)
83
+ expect(doc.errors).to be_empty
84
+ end
85
+
86
+ it "renders extent and dimensions" do
87
+ FactoryBot.create(:manifestation, extent: "123p", dimensions: "23cm")
88
+ render
89
+ expect(rendered).to include "<dcterms:extent>123p ; 23cm</dcterms:extent>"
90
+ end
91
+
92
+ it "renders resumptionToken" do
93
+ render
94
+ expect(Nokogiri::XML(rendered).remove_namespaces!.at('//resumptionToken').content).to eq '11223344%3D%3D'
95
+ end
96
+ end
57
97
  end