hyrax 2.6.0 → 2.7.0

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 (708) hide show
  1. checksums.yaml +4 -4
  2. data/app/actors/hyrax/actors/file_set_actor.rb +2 -2
  3. data/app/assets/javascripts/hyrax/collections/editor.es6 +12 -2
  4. data/app/indexers/hyrax/collection_indexer.rb +1 -3
  5. data/app/models/concerns/hyrax/collection_behavior.rb +8 -34
  6. data/app/presenters/hyrax/collection_presenter.rb +12 -1
  7. data/hyrax.gemspec +1 -2
  8. data/lib/hyrax/version.rb +1 -1
  9. metadata +5 -1402
  10. data/spec/.gitignore +0 -1
  11. data/spec/abilities/ability_spec.rb +0 -183
  12. data/spec/abilities/admin_ability_spec.rb +0 -18
  13. data/spec/abilities/admin_set_ability_spec.rb +0 -177
  14. data/spec/abilities/collection_ability_spec.rb +0 -194
  15. data/spec/abilities/collection_type_ability_spec.rb +0 -72
  16. data/spec/abilities/embargo_and_lease_ability_spec.rb +0 -22
  17. data/spec/abilities/file_set_abilities_spec.rb +0 -70
  18. data/spec/abilities/generic_work_abilities_spec.rb +0 -63
  19. data/spec/abilities/operation_ability_spec.rb +0 -12
  20. data/spec/abilities/permission_template_ability_spec.rb +0 -145
  21. data/spec/abilities/proxies_and_transfer_abilities_spec.rb +0 -109
  22. data/spec/abilities/solr_document_ability_spec.rb +0 -27
  23. data/spec/actors/hyrax/actors/apply_order_actor_spec.rb +0 -92
  24. data/spec/actors/hyrax/actors/apply_permission_template_actor_spec.rb +0 -135
  25. data/spec/actors/hyrax/actors/attach_members_actor_spec.rb +0 -68
  26. data/spec/actors/hyrax/actors/cleanup_file_sets_actor_spec.rb +0 -24
  27. data/spec/actors/hyrax/actors/cleanup_trophies_actor_spec.rb +0 -25
  28. data/spec/actors/hyrax/actors/collections_membership_actor_spec.rb +0 -364
  29. data/spec/actors/hyrax/actors/create_with_files_actor_spec.rb +0 -60
  30. data/spec/actors/hyrax/actors/create_with_files_ordered_members_actor_spec.rb +0 -41
  31. data/spec/actors/hyrax/actors/create_with_remote_files_actor_spec.rb +0 -136
  32. data/spec/actors/hyrax/actors/create_with_remote_files_ordered_members_actor_spec.rb +0 -49
  33. data/spec/actors/hyrax/actors/default_admin_set_actor_spec.rb +0 -81
  34. data/spec/actors/hyrax/actors/embargo_actor_spec.rb +0 -37
  35. data/spec/actors/hyrax/actors/featured_work_actor_spec.rb +0 -38
  36. data/spec/actors/hyrax/actors/file_actor_spec.rb +0 -125
  37. data/spec/actors/hyrax/actors/file_set_actor_spec.rb +0 -347
  38. data/spec/actors/hyrax/actors/file_set_ordered_members_actor_spec.rb +0 -35
  39. data/spec/actors/hyrax/actors/generic_work_actor_spec.rb +0 -316
  40. data/spec/actors/hyrax/actors/initialize_workflow_actor_spec.rb +0 -35
  41. data/spec/actors/hyrax/actors/interpret_visibility_actor_spec.rb +0 -445
  42. data/spec/actors/hyrax/actors/lease_actor_spec.rb +0 -54
  43. data/spec/actors/hyrax/actors/model_actor_spec.rb +0 -24
  44. data/spec/actors/hyrax/actors/optimistic_lock_validator_spec.rb +0 -55
  45. data/spec/actors/hyrax/actors/ordered_members_actor_spec.rb +0 -59
  46. data/spec/actors/hyrax/actors/transactional_request_spec.rb +0 -46
  47. data/spec/actors/hyrax/actors/transfer_request_actor_spec.rb +0 -43
  48. data/spec/authorities/qa/authorities/collections_spec.rb +0 -68
  49. data/spec/authorities/qa/authorities/find_works_spec.rb +0 -52
  50. data/spec/channels/hyrax/application_cable/channel_spec.rb +0 -14
  51. data/spec/channels/hyrax/application_cable/connection_spec.rb +0 -37
  52. data/spec/channels/hyrax/notifications_channel_spec.rb +0 -45
  53. data/spec/config/hyrax_events_spec.rb +0 -44
  54. data/spec/controllers/catalog_controller_spec.rb +0 -135
  55. data/spec/controllers/hyrax/accepts_batches_controller_spec.rb +0 -67
  56. data/spec/controllers/hyrax/admin/admin_sets_controller_spec.rb +0 -284
  57. data/spec/controllers/hyrax/admin/appearances_controller_spec.rb +0 -66
  58. data/spec/controllers/hyrax/admin/collection_type_participants_controller_spec.rb +0 -152
  59. data/spec/controllers/hyrax/admin/collection_types_controller_spec.rb +0 -322
  60. data/spec/controllers/hyrax/admin/features_controller_spec.rb +0 -31
  61. data/spec/controllers/hyrax/admin/permission_template_accesses_controller_spec.rb +0 -101
  62. data/spec/controllers/hyrax/admin/permission_templates_controller_spec.rb +0 -71
  63. data/spec/controllers/hyrax/admin/stats_controller_spec.rb +0 -61
  64. data/spec/controllers/hyrax/admin/strategies_controller_spec.rb +0 -39
  65. data/spec/controllers/hyrax/admin/users_controller_spec.rb +0 -17
  66. data/spec/controllers/hyrax/admin/workflow_roles_controller_spec.rb +0 -76
  67. data/spec/controllers/hyrax/admin/workflows_controller_spec.rb +0 -18
  68. data/spec/controllers/hyrax/api/items_controller_spec.rb +0 -404
  69. data/spec/controllers/hyrax/api/zotero_controller_spec.rb +0 -162
  70. data/spec/controllers/hyrax/batch_edits_controller_spec.rb +0 -232
  71. data/spec/controllers/hyrax/batch_uploads_controller_spec.rb +0 -131
  72. data/spec/controllers/hyrax/citations_controller_spec.rb +0 -61
  73. data/spec/controllers/hyrax/collections_controller_spec.rb +0 -126
  74. data/spec/controllers/hyrax/contact_form_controller_spec.rb +0 -96
  75. data/spec/controllers/hyrax/content_blocks_controller_spec.rb +0 -71
  76. data/spec/controllers/hyrax/dashboard/collection_members_controller_spec.rb +0 -411
  77. data/spec/controllers/hyrax/dashboard/collections_controller_spec.rb +0 -518
  78. data/spec/controllers/hyrax/dashboard/nest_collections_controller_spec.rb +0 -360
  79. data/spec/controllers/hyrax/dashboard/profiles_controller_spec.rb +0 -155
  80. data/spec/controllers/hyrax/dashboard/works_controller_spec.rb +0 -13
  81. data/spec/controllers/hyrax/dashboard_controller_spec.rb +0 -42
  82. data/spec/controllers/hyrax/depositors_controller_spec.rb +0 -105
  83. data/spec/controllers/hyrax/downloads_controller_spec.rb +0 -159
  84. data/spec/controllers/hyrax/embargoes_controller_spec.rb +0 -147
  85. data/spec/controllers/hyrax/featured_work_lists_controller_spec.rb +0 -20
  86. data/spec/controllers/hyrax/featured_works_controller_spec.rb +0 -56
  87. data/spec/controllers/hyrax/file_sets_controller_spec.rb +0 -322
  88. data/spec/controllers/hyrax/fixity_checks_controller_spec.rb +0 -44
  89. data/spec/controllers/hyrax/generic_works_controller_json_spec.rb +0 -92
  90. data/spec/controllers/hyrax/generic_works_controller_spec.rb +0 -622
  91. data/spec/controllers/hyrax/homepage_controller_spec.rb +0 -138
  92. data/spec/controllers/hyrax/leases_controller_spec.rb +0 -117
  93. data/spec/controllers/hyrax/my/collections_controller_spec.rb +0 -36
  94. data/spec/controllers/hyrax/my/highlights_controller_spec.rb +0 -53
  95. data/spec/controllers/hyrax/my/shares_controller_spec.rb +0 -47
  96. data/spec/controllers/hyrax/my/works_controller_spec.rb +0 -54
  97. data/spec/controllers/hyrax/notifications_controller_spec.rb +0 -33
  98. data/spec/controllers/hyrax/operations_controller_spec.rb +0 -27
  99. data/spec/controllers/hyrax/pages_controller_spec.rb +0 -111
  100. data/spec/controllers/hyrax/permissions_controller_spec.rb +0 -56
  101. data/spec/controllers/hyrax/resource_sync_controller_spec.rb +0 -71
  102. data/spec/controllers/hyrax/single_use_links_controller_spec.rb +0 -100
  103. data/spec/controllers/hyrax/single_use_links_viewer_controller_spec.rb +0 -64
  104. data/spec/controllers/hyrax/static_controller_spec.rb +0 -28
  105. data/spec/controllers/hyrax/stats_controller_spec.rb +0 -73
  106. data/spec/controllers/hyrax/transfers_controller_spec.rb +0 -200
  107. data/spec/controllers/hyrax/trophies_controller_spec.rb +0 -40
  108. data/spec/controllers/hyrax/uploads_controller_spec.rb +0 -60
  109. data/spec/controllers/hyrax/users_controller_spec.rb +0 -151
  110. data/spec/controllers/hyrax/workflow_actions_controller_spec.rb +0 -54
  111. data/spec/conversions/power_converters/polymorphic_type_spec.rb +0 -22
  112. data/spec/conversions/power_converters/sipity_action_name_spec.rb +0 -32
  113. data/spec/conversions/power_converters/sipity_action_spec.rb +0 -43
  114. data/spec/conversions/power_converters/sipity_agent_spec.rb +0 -20
  115. data/spec/conversions/power_converters/sipity_entity_spec.rb +0 -53
  116. data/spec/conversions/power_converters/sipity_role_spec.rb +0 -31
  117. data/spec/conversions/power_converters/sipity_workflow_id_spec.rb +0 -28
  118. data/spec/conversions/power_converters/sipity_workflow_state_spec.rb +0 -20
  119. data/spec/factories/admin_sets.rb +0 -25
  120. data/spec/factories/admin_sets_lw.rb +0 -215
  121. data/spec/factories/api_items.rb +0 -91
  122. data/spec/factories/collection_branding_infos.rb +0 -11
  123. data/spec/factories/collection_type_participants.rb +0 -8
  124. data/spec/factories/collection_types.rb +0 -113
  125. data/spec/factories/collections.rb +0 -325
  126. data/spec/factories/collections_factory.rb +0 -134
  127. data/spec/factories/content_blocks.rb +0 -4
  128. data/spec/factories/featured_works.rb +0 -4
  129. data/spec/factories/file_sets.rb +0 -33
  130. data/spec/factories/generic_works.rb +0 -196
  131. data/spec/factories/object_id.rb +0 -6
  132. data/spec/factories/operations.rb +0 -21
  133. data/spec/factories/permission_template_accesses.rb +0 -16
  134. data/spec/factories/permission_templates.rb +0 -79
  135. data/spec/factories/proxy_deposit_requests.rb +0 -6
  136. data/spec/factories/single_use_links.rb +0 -13
  137. data/spec/factories/sipity_entities.rb +0 -7
  138. data/spec/factories/uploaded_files.rb +0 -5
  139. data/spec/factories/users.rb +0 -59
  140. data/spec/factories/workflow_actions.rb +0 -6
  141. data/spec/factories/workflow_states.rb +0 -6
  142. data/spec/factories/workflows.rb +0 -6
  143. data/spec/factory_tests/adminsets_factory_spec.rb +0 -132
  144. data/spec/factory_tests/collections_factory_spec.rb +0 -212
  145. data/spec/features/actor_stack_spec.rb +0 -77
  146. data/spec/features/admin_spec.rb +0 -30
  147. data/spec/features/batch_create_spec.rb +0 -75
  148. data/spec/features/batch_edit_spec.rb +0 -119
  149. data/spec/features/browse_catalog_spec.rb +0 -59
  150. data/spec/features/browse_dashboard_works_spec.rb +0 -56
  151. data/spec/features/catalog_search_spec.rb +0 -72
  152. data/spec/features/collection_multi_membership_spec.rb +0 -205
  153. data/spec/features/collection_spec.rb +0 -122
  154. data/spec/features/collection_type_spec.rb +0 -393
  155. data/spec/features/contact_form_spec.rb +0 -16
  156. data/spec/features/create_child_work_spec.rb +0 -82
  157. data/spec/features/create_work_admin_spec.rb +0 -44
  158. data/spec/features/create_work_spec.rb +0 -124
  159. data/spec/features/dashboard/all_works.rb +0 -23
  160. data/spec/features/dashboard/collection_spec.rb +0 -918
  161. data/spec/features/dashboard/display_admin_dashboard_spec.rb +0 -29
  162. data/spec/features/dashboard/display_dashboard_spec.rb +0 -18
  163. data/spec/features/delete_work_spec.rb +0 -23
  164. data/spec/features/edit_content_block_admin_spec.rb +0 -62
  165. data/spec/features/edit_file_spec.rb +0 -23
  166. data/spec/features/edit_work_spec.rb +0 -61
  167. data/spec/features/embargo_spec.rb +0 -90
  168. data/spec/features/homepage_spec.rb +0 -43
  169. data/spec/features/lease_spec.rb +0 -35
  170. data/spec/features/notifications_spec.rb +0 -20
  171. data/spec/features/ownership_transfer_spec.rb +0 -101
  172. data/spec/features/proxy_spec.rb +0 -25
  173. data/spec/features/search_spec.rb +0 -62
  174. data/spec/features/static_pages_spec.rb +0 -7
  175. data/spec/features/users_spec.rb +0 -48
  176. data/spec/features/work_generator_spec.rb +0 -29
  177. data/spec/features/work_show_spec.rb +0 -148
  178. data/spec/features/workflow_roles_spec.rb +0 -46
  179. data/spec/features/workflow_state_changes_spec.rb +0 -59
  180. data/spec/fixtures/1.5mb-avatar.jpg +0 -0
  181. data/spec/fixtures/4-20.png +0 -0
  182. data/spec/fixtures/Example.ogg +0 -0
  183. data/spec/fixtures/authorities/licenses.yml +0 -13
  184. data/spec/fixtures/charter.docx +0 -0
  185. data/spec/fixtures/config/schema_org.yml +0 -7
  186. data/spec/fixtures/config/schema_org_second.yml +0 -7
  187. data/spec/fixtures/countdown.avi +0 -0
  188. data/spec/fixtures/docx_fits.xml +0 -21
  189. data/spec/fixtures/dublin_core_rdf_descMetadata.nt +0 -13
  190. data/spec/fixtures/hyrax/.gitignore +0 -1
  191. data/spec/fixtures/hyrax/hyrax_test4.pdf +0 -0
  192. data/spec/fixtures/hyrax/hyrax_test5.mp3 +0 -0
  193. data/spec/fixtures/hyrax_generic_stub.txt +0 -1
  194. data/spec/fixtures/icons.zip +0 -0
  195. data/spec/fixtures/image.jp2 +0 -0
  196. data/spec/fixtures/image.jpg +0 -0
  197. data/spec/fixtures/image.png +0 -0
  198. data/spec/fixtures/jp2_fits.xml +0 -36
  199. data/spec/fixtures/jpg_fits.xml +0 -43
  200. data/spec/fixtures/mp3_fits.xml +0 -32
  201. data/spec/fixtures/pdf_fits.xml +0 -43
  202. data/spec/fixtures/piano_note.wav +0 -0
  203. data/spec/fixtures/png_fits.xml +0 -29
  204. data/spec/fixtures/sample_mpeg4.mp4 +0 -0
  205. data/spec/fixtures/small_file.txt +0 -1
  206. data/spec/fixtures/spoken-text.m4a +0 -0
  207. data/spec/fixtures/txt_fits.xml +0 -29
  208. data/spec/fixtures/world.png +0 -0
  209. data/spec/fixtures/xls_fits.xml +0 -18
  210. data/spec/fixtures/xml_fits.xml +0 -37
  211. data/spec/forms/hyrax/forms/admin/appearance_spec.rb +0 -46
  212. data/spec/forms/hyrax/forms/admin/collection_type_form_spec.rb +0 -108
  213. data/spec/forms/hyrax/forms/admin/collection_type_participant_form_spec.rb +0 -10
  214. data/spec/forms/hyrax/forms/admin_set_form_spec.rb +0 -88
  215. data/spec/forms/hyrax/forms/batch_edit_form_spec.rb +0 -111
  216. data/spec/forms/hyrax/forms/batch_upload_form_spec.rb +0 -75
  217. data/spec/forms/hyrax/forms/collection_form_spec.rb +0 -196
  218. data/spec/forms/hyrax/forms/dashboard/nest_collection_form_spec.rb +0 -159
  219. data/spec/forms/hyrax/forms/file_manager_form_spec.rb +0 -19
  220. data/spec/forms/hyrax/forms/file_set_edit_form_spec.rb +0 -53
  221. data/spec/forms/hyrax/forms/permission_template_form_spec.rb +0 -599
  222. data/spec/forms/hyrax/forms/work_form_spec.rb +0 -346
  223. data/spec/forms/hyrax/forms/workflow_action_form_spec.rb +0 -129
  224. data/spec/forms/hyrax/forms/workflow_responsibility_form_spec.rb +0 -41
  225. data/spec/forms/hyrax/generic_work_form_spec.rb +0 -127
  226. data/spec/helpers/blacklight_helper_spec.rb +0 -137
  227. data/spec/helpers/hyrax/ability_helper_spec.rb +0 -61
  228. data/spec/helpers/hyrax/batch_edits_helper_spec.rb +0 -59
  229. data/spec/helpers/hyrax/charts_helper_spec.rb +0 -63
  230. data/spec/helpers/hyrax/citations_behaviors/formatters/chicago_formatter_spec.rb +0 -10
  231. data/spec/helpers/hyrax/collections_helper_spec.rb +0 -117
  232. data/spec/helpers/hyrax/content_block_helper_spec.rb +0 -44
  233. data/spec/helpers/hyrax/dashboard_helper_behavior_spec.rb +0 -74
  234. data/spec/helpers/hyrax/file_set_helper_spec.rb +0 -65
  235. data/spec/helpers/hyrax/iiif_helper_spec.rb +0 -44
  236. data/spec/helpers/hyrax/trophy_helper_spec.rb +0 -37
  237. data/spec/helpers/hyrax_helper_spec.rb +0 -399
  238. data/spec/hyrax/transactions/create_work_spec.rb +0 -155
  239. data/spec/hyrax/transactions/steps/apply_permission_template_spec.rb +0 -72
  240. data/spec/hyrax/transactions/steps/ensure_admin_set_spec.rb +0 -25
  241. data/spec/hyrax/transactions/steps/ensure_permission_template_spec.rb +0 -33
  242. data/spec/hyrax/transactions/steps/save_work_spec.rb +0 -32
  243. data/spec/hyrax/transactions/steps/set_default_admin_set_spec.rb +0 -38
  244. data/spec/hyrax/transactions/steps/set_modified_date_spec.rb +0 -22
  245. data/spec/hyrax/transactions/steps/set_uploaded_date_spec.rb +0 -32
  246. data/spec/indexers/hyrax/collection_indexer_spec.rb +0 -43
  247. data/spec/indexers/hyrax/file_set_indexer_spec.rb +0 -126
  248. data/spec/indexers/hyrax/generic_work_indexer_spec.rb +0 -123
  249. data/spec/indexers/hyrax/repository_reindexer_spec.rb +0 -8
  250. data/spec/inputs/controlled_vocabulary_input_spec.rb +0 -57
  251. data/spec/inputs/multifile_input_spec.rb +0 -31
  252. data/spec/javascripts/authority_select_spec.js +0 -22
  253. data/spec/javascripts/autocomplete_spec.js.coffee +0 -199
  254. data/spec/javascripts/batch_select_spec.js +0 -15
  255. data/spec/javascripts/charts_spec.coffee +0 -10
  256. data/spec/javascripts/checklist_item_spec.js +0 -23
  257. data/spec/javascripts/deposit_agreement_spec.js +0 -70
  258. data/spec/javascripts/file_manager_member_spec.coffee +0 -88
  259. data/spec/javascripts/file_manager_sorting_spec.coffee +0 -23
  260. data/spec/javascripts/fixtures/chart_example.html +0 -1
  261. data/spec/javascripts/fixtures/dashboard_batch_forms.html +0 -11
  262. data/spec/javascripts/fixtures/file_manager_member.html +0 -40
  263. data/spec/javascripts/fixtures/save_button.html +0 -3
  264. data/spec/javascripts/fixtures/sortable.html +0 -182
  265. data/spec/javascripts/fixtures/sul_table.html +0 -29
  266. data/spec/javascripts/grant_spec.js +0 -43
  267. data/spec/javascripts/helpers/jasmine-ajax.js +0 -751
  268. data/spec/javascripts/helpers/jasmine-jquery.js +0 -838
  269. data/spec/javascripts/helpers/test_fixtures.js.coffee +0 -18
  270. data/spec/javascripts/helpers/test_responses.js +0 -12
  271. data/spec/javascripts/jasmine_spec.rb +0 -25
  272. data/spec/javascripts/relationships_control_spec.js.coffee +0 -27
  273. data/spec/javascripts/required_field_spec.js +0 -41
  274. data/spec/javascripts/save_manager_spec.coffee +0 -87
  275. data/spec/javascripts/save_work_spec.js +0 -262
  276. data/spec/javascripts/settings_spec.js +0 -74
  277. data/spec/javascripts/single_use_links_spec.coffee +0 -51
  278. data/spec/javascripts/support/jasmine.yml +0 -125
  279. data/spec/javascripts/support/jasmine_helper.rb +0 -14
  280. data/spec/javascripts/tabs_spec.js.coffee +0 -38
  281. data/spec/javascripts/uploaded_files_spec.js +0 -23
  282. data/spec/javascripts/visibility_component_spec.js +0 -531
  283. data/spec/jobs/attach_files_to_work_job_spec.rb +0 -80
  284. data/spec/jobs/attach_files_to_work_with_ordered_members_job_spec.rb +0 -13
  285. data/spec/jobs/batch_create_job_spec.rb +0 -79
  286. data/spec/jobs/characterize_job_spec.rb +0 -66
  287. data/spec/jobs/content_delete_event_job_spec.rb +0 -36
  288. data/spec/jobs/content_deposit_event_job_spec.rb +0 -25
  289. data/spec/jobs/content_depositor_change_event_job_spec.rb +0 -28
  290. data/spec/jobs/content_new_version_event_job_spec.rb +0 -21
  291. data/spec/jobs/content_restored_version_event_job_spec.rb +0 -28
  292. data/spec/jobs/content_update_event_job_spec.rb +0 -25
  293. data/spec/jobs/create_derivatives_job_spec.rb +0 -93
  294. data/spec/jobs/create_work_job_spec.rb +0 -60
  295. data/spec/jobs/file_set_attached_event_job_spec.rb +0 -34
  296. data/spec/jobs/fixity_check_job_spec.rb +0 -50
  297. data/spec/jobs/hyrax/grant_edit_job_spec.rb +0 -11
  298. data/spec/jobs/hyrax/grant_edit_to_members_job_spec.rb +0 -16
  299. data/spec/jobs/hyrax/grant_read_job_spec.rb +0 -11
  300. data/spec/jobs/hyrax/grant_read_to_members_job_spec.rb +0 -16
  301. data/spec/jobs/hyrax/revoke_edit_from_members_job_spec.rb +0 -16
  302. data/spec/jobs/hyrax/revoke_edit_job_spec.rb +0 -11
  303. data/spec/jobs/import_export_job_spec.rb +0 -28
  304. data/spec/jobs/import_url_job_spec.rb +0 -180
  305. data/spec/jobs/ingest_local_file_job_spec.rb +0 -40
  306. data/spec/jobs/inherit_permissions_job_spec.rb +0 -94
  307. data/spec/jobs/stream_notifications_job_spec.rb +0 -45
  308. data/spec/jobs/user_edit_profile_event_job_spec.rb +0 -17
  309. data/spec/jobs/visibility_copy_job_spec.rb +0 -53
  310. data/spec/lib/hyrax/analytics_spec.rb +0 -65
  311. data/spec/lib/hyrax/arkivo/actor_spec.rb +0 -78
  312. data/spec/lib/hyrax/arkivo/create_subscription_job_spec.rb +0 -50
  313. data/spec/lib/hyrax/arkivo/metadata_munger_spec.rb +0 -46
  314. data/spec/lib/hyrax/arkivo/schema_validator_spec.rb +0 -63
  315. data/spec/lib/hyrax/arkivo_spec.rb +0 -12
  316. data/spec/lib/hyrax/collections/search_service_spec.rb +0 -35
  317. data/spec/lib/hyrax/configuration_spec.rb +0 -91
  318. data/spec/lib/hyrax/controlled_vocabulary/importer/downloader_spec.rb +0 -33
  319. data/spec/lib/hyrax/controlled_vocabulary/importer/language_spec.rb +0 -24
  320. data/spec/lib/hyrax/move_all_works_to_admin_set_spec.rb +0 -13
  321. data/spec/lib/hyrax/name_spec.rb +0 -21
  322. data/spec/lib/hyrax/redis_event_store_spec.rb +0 -54
  323. data/spec/lib/hyrax/resource_sync/capability_list_writer_spec.rb +0 -33
  324. data/spec/lib/hyrax/resource_sync/change_list_writer_spec.rb +0 -78
  325. data/spec/lib/hyrax/resource_sync/resource_list_writer_spec.rb +0 -25
  326. data/spec/lib/hyrax/resource_sync/source_description_writer_spec.rb +0 -18
  327. data/spec/lib/hyrax/role_registry_spec.rb +0 -43
  328. data/spec/lib/hyrax/search_state_spec.rb +0 -26
  329. data/spec/lib/hyrax/zotero/config_spec.rb +0 -26
  330. data/spec/lib/hyrax/zotero_spec.rb +0 -9
  331. data/spec/lib/hyrax_spec.rb +0 -9
  332. data/spec/models/admin_set_spec.rb +0 -229
  333. data/spec/models/batch_upload_item_spec.rb +0 -7
  334. data/spec/models/checksum_audit_log_spec.rb +0 -162
  335. data/spec/models/collection_branding_info_spec.rb +0 -61
  336. data/spec/models/collection_spec.rb +0 -326
  337. data/spec/models/concerns/hyrax/collection_nesting_spec.rb +0 -83
  338. data/spec/models/content_block_spec.rb +0 -198
  339. data/spec/models/featured_work_list_spec.rb +0 -56
  340. data/spec/models/featured_work_spec.rb +0 -53
  341. data/spec/models/file_download_stat_spec.rb +0 -104
  342. data/spec/models/file_set_spec.rb +0 -668
  343. data/spec/models/file_view_stat_spec.rb +0 -81
  344. data/spec/models/flipflop_spec.rb +0 -49
  345. data/spec/models/generic_work_spec.rb +0 -117
  346. data/spec/models/hyrax/batch_create_operation_spec.rb +0 -59
  347. data/spec/models/hyrax/collection_type_participant_spec.rb +0 -43
  348. data/spec/models/hyrax/collection_type_spec.rb +0 -236
  349. data/spec/models/hyrax/download_spec.rb +0 -13
  350. data/spec/models/hyrax/operation_spec.rb +0 -123
  351. data/spec/models/hyrax/pageview_spec.rb +0 -13
  352. data/spec/models/hyrax/permission_template_access_spec.rb +0 -180
  353. data/spec/models/hyrax/permission_template_spec.rb +0 -291
  354. data/spec/models/hyrax/permissions/readable_permissions_spec.rb +0 -52
  355. data/spec/models/hyrax/permissions/writable_permissions_spec.rb +0 -12
  356. data/spec/models/hyrax/uploaded_file_spec.rb +0 -10
  357. data/spec/models/hyrax/user_usage_stats_spec.rb +0 -43
  358. data/spec/models/hyrax/work_behavior_spec.rb +0 -64
  359. data/spec/models/job_io_wrapper_spec.rb +0 -172
  360. data/spec/models/proxy_deposit_request_spec.rb +0 -152
  361. data/spec/models/single_use_link_spec.rb +0 -37
  362. data/spec/models/sipity/agent_spec.rb +0 -8
  363. data/spec/models/sipity/comment_spec.rb +0 -24
  364. data/spec/models/sipity/entity_spec.rb +0 -27
  365. data/spec/models/sipity/entity_specific_responsibility_spec.rb +0 -9
  366. data/spec/models/sipity/notifiable_context_spec.rb +0 -7
  367. data/spec/models/sipity/notification_recipient_spec.rb +0 -9
  368. data/spec/models/sipity/notification_spec.rb +0 -15
  369. data/spec/models/sipity/role_spec.rb +0 -40
  370. data/spec/models/sipity/workflow_action_spec.rb +0 -11
  371. data/spec/models/sipity/workflow_responsibility_spec.rb +0 -8
  372. data/spec/models/sipity/workflow_role_spec.rb +0 -8
  373. data/spec/models/sipity/workflow_spec.rb +0 -84
  374. data/spec/models/sipity/workflow_state_action_permission_spec.rb +0 -8
  375. data/spec/models/sipity/workflow_state_action_spec.rb +0 -8
  376. data/spec/models/sipity/workflow_state_spec.rb +0 -17
  377. data/spec/models/solr_document_spec.rb +0 -205
  378. data/spec/models/trophy_spec.rb +0 -19
  379. data/spec/models/user_mailbox_spec.rb +0 -134
  380. data/spec/models/user_spec.rb +0 -269
  381. data/spec/models/work_view_stat_spec.rb +0 -107
  382. data/spec/presenters/hyrax/admin/dashboard_presenter_spec.rb +0 -33
  383. data/spec/presenters/hyrax/admin/repository_growth_presenter_spec.rb +0 -25
  384. data/spec/presenters/hyrax/admin/repository_object_presenter_spec.rb +0 -24
  385. data/spec/presenters/hyrax/admin/user_activity_presenter_spec.rb +0 -20
  386. data/spec/presenters/hyrax/admin/users_presenter_spec.rb +0 -48
  387. data/spec/presenters/hyrax/admin/workflow_role_presenter_spec.rb +0 -12
  388. data/spec/presenters/hyrax/admin/workflow_roles_presenter_spec.rb +0 -16
  389. data/spec/presenters/hyrax/admin_set_options_presenter_spec.rb +0 -73
  390. data/spec/presenters/hyrax/admin_set_presenter_spec.rb +0 -143
  391. data/spec/presenters/hyrax/admin_stats_presenter_spec.rb +0 -143
  392. data/spec/presenters/hyrax/collection_options_presenter_spec.rb +0 -15
  393. data/spec/presenters/hyrax/collection_presenter_spec.rb +0 -461
  394. data/spec/presenters/hyrax/dashboard/user_presenter_spec.rb +0 -65
  395. data/spec/presenters/hyrax/embargo_presenter_spec.rb +0 -51
  396. data/spec/presenters/hyrax/file_set_presenter_spec.rb +0 -426
  397. data/spec/presenters/hyrax/file_usage_spec.rb +0 -162
  398. data/spec/presenters/hyrax/fixity_status_presenter_spec.rb +0 -55
  399. data/spec/presenters/hyrax/homepage_presenter_spec.rb +0 -42
  400. data/spec/presenters/hyrax/inspect_work_presenter_spec.rb +0 -59
  401. data/spec/presenters/hyrax/lease_presenter_spec.rb +0 -51
  402. data/spec/presenters/hyrax/member_presenter_factory_spec.rb +0 -26
  403. data/spec/presenters/hyrax/menu_presenter_spec.rb +0 -107
  404. data/spec/presenters/hyrax/permission_badge_spec.rb +0 -77
  405. data/spec/presenters/hyrax/presenter_factory_spec.rb +0 -53
  406. data/spec/presenters/hyrax/presenter_renderer_spec.rb +0 -30
  407. data/spec/presenters/hyrax/select_collection_type_list_presenter_spec.rb +0 -59
  408. data/spec/presenters/hyrax/select_collection_type_presenter_spec.rb +0 -10
  409. data/spec/presenters/hyrax/select_type_list_presenter_spec.rb +0 -37
  410. data/spec/presenters/hyrax/select_type_presenter_spec.rb +0 -74
  411. data/spec/presenters/hyrax/single_use_link_presenter_spec.rb +0 -41
  412. data/spec/presenters/hyrax/transfers_presenter_spec.rb +0 -44
  413. data/spec/presenters/hyrax/trophy_presenter_spec.rb +0 -53
  414. data/spec/presenters/hyrax/twitter_presenter_spec.rb +0 -27
  415. data/spec/presenters/hyrax/user_profile_presenter_spec.rb +0 -28
  416. data/spec/presenters/hyrax/version_list_presenter_spec.rb +0 -30
  417. data/spec/presenters/hyrax/version_presenter_spec.rb +0 -57
  418. data/spec/presenters/hyrax/work_show_presenter_spec.rb +0 -580
  419. data/spec/presenters/hyrax/work_usage_spec.rb +0 -144
  420. data/spec/presenters/hyrax/workflow_presenter_spec.rb +0 -75
  421. data/spec/rails_helper.rb +0 -2
  422. data/spec/renderers/hyrax/renderers/attribute_renderer_spec.rb +0 -118
  423. data/spec/renderers/hyrax/renderers/date_attribute_renderer_spec.rb +0 -39
  424. data/spec/renderers/hyrax/renderers/external_link_attribute_renderer_spec.rb +0 -22
  425. data/spec/renderers/hyrax/renderers/faceted_attribute_renderer_spec.rb +0 -35
  426. data/spec/renderers/hyrax/renderers/license_attribute_renderer_spec.rb +0 -21
  427. data/spec/renderers/hyrax/renderers/linked_attribute_renderer_spec.rb +0 -21
  428. data/spec/renderers/hyrax/renderers/rights_statement_attribute_renderer_spec.rb +0 -29
  429. data/spec/requests/legacy_routing_spec.rb +0 -7
  430. data/spec/requests/riiif_spec.rb +0 -32
  431. data/spec/routing/admin_routes_spec.rb +0 -29
  432. data/spec/routing/api_route_spec.rb +0 -89
  433. data/spec/routing/citations_route_spec.rb +0 -21
  434. data/spec/routing/collection_permission_templates_routes_spec.rb +0 -31
  435. data/spec/routing/collection_types_routes.rb +0 -35
  436. data/spec/routing/dashboard_routes_spec.rb +0 -37
  437. data/spec/routing/featured_works_route_spec.rb +0 -15
  438. data/spec/routing/operations_spec.rb +0 -9
  439. data/spec/routing/ownership_transfers_route_spec.rb +0 -43
  440. data/spec/routing/resource_sync_spec.rb +0 -19
  441. data/spec/routing/route_spec.rb +0 -205
  442. data/spec/routing/single_use_link_spec.rb +0 -27
  443. data/spec/routing/stats_route_spec.rb +0 -21
  444. data/spec/search_builders/hyrax/abstract_type_relation_spec.rb +0 -18
  445. data/spec/search_builders/hyrax/admin_admin_set_member_search_builder_spec.rb +0 -39
  446. data/spec/search_builders/hyrax/admin_set_search_builder_spec.rb +0 -78
  447. data/spec/search_builders/hyrax/catalog_search_builder_spec.rb +0 -86
  448. data/spec/search_builders/hyrax/collection_member_search_builder_spec.rb +0 -53
  449. data/spec/search_builders/hyrax/collection_search_builder_spec.rb +0 -74
  450. data/spec/search_builders/hyrax/dashboard/collections_search_builder_spec.rb +0 -103
  451. data/spec/search_builders/hyrax/dashboard/nested_collections_search_builder_spec.rb +0 -85
  452. data/spec/search_builders/hyrax/dashboard/works_search_builder_spec.rb +0 -44
  453. data/spec/search_builders/hyrax/embargo_search_builder_spec.rb +0 -17
  454. data/spec/search_builders/hyrax/file_set_search_builder_spec.rb +0 -28
  455. data/spec/search_builders/hyrax/lease_search_builder_spec.rb +0 -17
  456. data/spec/search_builders/hyrax/my/collections_search_builder_spec.rb +0 -35
  457. data/spec/search_builders/hyrax/my/find_works_search_builder_spec.rb +0 -63
  458. data/spec/search_builders/hyrax/my/shares_search_builder_spec.rb +0 -32
  459. data/spec/search_builders/hyrax/my/works_search_builder_spec.rb +0 -52
  460. data/spec/search_builders/hyrax/parent_collection_search_builder_spec.rb +0 -15
  461. data/spec/search_builders/hyrax/single_admin_set_search_builder_spec.rb +0 -20
  462. data/spec/search_builders/hyrax/stats/work_status_search_builder_spec.rb +0 -32
  463. data/spec/search_builders/hyrax/work_relation_spec.rb +0 -9
  464. data/spec/search_builders/hyrax/work_search_builder_spec.rb +0 -106
  465. data/spec/search_builders/hyrax/works_search_builder_spec.rb +0 -23
  466. data/spec/services/hyrax/abstract_message_service_spec.rb +0 -25
  467. data/spec/services/hyrax/adapters/nesting_index_adapter_spec.rb +0 -205
  468. data/spec/services/hyrax/admin_set_create_service_spec.rb +0 -114
  469. data/spec/services/hyrax/admin_set_member_service_spec.rb +0 -21
  470. data/spec/services/hyrax/admin_set_service_spec.rb +0 -171
  471. data/spec/services/hyrax/batch_create_failure_service_spec.rb +0 -18
  472. data/spec/services/hyrax/batch_create_success_service_spec.rb +0 -14
  473. data/spec/services/hyrax/change_content_depositor_service_spec.rb +0 -49
  474. data/spec/services/hyrax/collection_member_service_spec.rb +0 -19
  475. data/spec/services/hyrax/collection_size_service_spec.rb +0 -74
  476. data/spec/services/hyrax/collection_types/create_service_spec.rb +0 -127
  477. data/spec/services/hyrax/collection_types/permissions_service_spec.rb +0 -297
  478. data/spec/services/hyrax/collections/collection_member_service_spec.rb +0 -49
  479. data/spec/services/hyrax/collections/managed_collections_service_spec.rb +0 -17
  480. data/spec/services/hyrax/collections/migration_service_spec.rb +0 -467
  481. data/spec/services/hyrax/collections/nested_collection_persistence_service_spec.rb +0 -28
  482. data/spec/services/hyrax/collections/nested_collection_query_service_spec.rb +0 -353
  483. data/spec/services/hyrax/collections/permissions_create_service_spec.rb +0 -64
  484. data/spec/services/hyrax/collections/permissions_service_spec.rb +0 -380
  485. data/spec/services/hyrax/collections_service_spec.rb +0 -62
  486. data/spec/services/hyrax/curation_concern_spec.rb +0 -18
  487. data/spec/services/hyrax/database_migrator_spec.rb +0 -20
  488. data/spec/services/hyrax/default_middleware_stack_spec.rb +0 -36
  489. data/spec/services/hyrax/derivative_path_spec.rb +0 -65
  490. data/spec/services/hyrax/derivative_service_spec.rb +0 -49
  491. data/spec/services/hyrax/embargo_service_spec.rb +0 -59
  492. data/spec/services/hyrax/file_set_csv_service_spec.rb +0 -83
  493. data/spec/services/hyrax/file_set_derivatives_service_spec.rb +0 -13
  494. data/spec/services/hyrax/file_set_fixity_check_service_spec.rb +0 -129
  495. data/spec/services/hyrax/fixity_check_failure_service_spec.rb +0 -29
  496. data/spec/services/hyrax/graph_exporter_spec.rb +0 -58
  497. data/spec/services/hyrax/iiif_authorization_service_spec.rb +0 -43
  498. data/spec/services/hyrax/import_url_failure_service_spec.rb +0 -23
  499. data/spec/services/hyrax/lease_service_spec.rb +0 -50
  500. data/spec/services/hyrax/license_service_spec.rb +0 -34
  501. data/spec/services/hyrax/lock_manager_spec.rb +0 -13
  502. data/spec/services/hyrax/messenger_service_spec.rb +0 -15
  503. data/spec/services/hyrax/microdata_spec.rb +0 -94
  504. data/spec/services/hyrax/multiple_membership_checker_spec.rb +0 -155
  505. data/spec/services/hyrax/noid_spec.rb +0 -37
  506. data/spec/services/hyrax/permission_template_applicator_spec.rb +0 -69
  507. data/spec/services/hyrax/persist_derivatives_spec.rb +0 -22
  508. data/spec/services/hyrax/persist_directly_contained_output_file_service_spec.rb +0 -20
  509. data/spec/services/hyrax/qa_select_service_spec.rb +0 -109
  510. data/spec/services/hyrax/quick_classification_query_spec.rb +0 -38
  511. data/spec/services/hyrax/repository_fixity_check_service_spec.rb +0 -16
  512. data/spec/services/hyrax/resource_types_service_spec.rb +0 -38
  513. data/spec/services/hyrax/rights_statement_service_spec.rb +0 -9
  514. data/spec/services/hyrax/statistics/collections/over_time_spec.rb +0 -17
  515. data/spec/services/hyrax/statistics/depositors/summary_spec.rb +0 -66
  516. data/spec/services/hyrax/statistics/file_sets/by_format_spec.rb +0 -29
  517. data/spec/services/hyrax/statistics/query_service_spec.rb +0 -112
  518. data/spec/services/hyrax/statistics/system_stats_spec.rb +0 -45
  519. data/spec/services/hyrax/statistics/users/over_time_spec.rb +0 -22
  520. data/spec/services/hyrax/statistics/works/by_depositor_spec.rb +0 -24
  521. data/spec/services/hyrax/statistics/works/by_resource_type_spec.rb +0 -28
  522. data/spec/services/hyrax/statistics/works/count_spec.rb +0 -33
  523. data/spec/services/hyrax/statistics/works/over_time_spec.rb +0 -17
  524. data/spec/services/hyrax/thumbnail_path_service_spec.rb +0 -55
  525. data/spec/services/hyrax/tolerant_select_service_spec.rb +0 -80
  526. data/spec/services/hyrax/user_stat_importer_spec.rb +0 -315
  527. data/spec/services/hyrax/versioning_service_spec.rb +0 -26
  528. data/spec/services/hyrax/work_query_service_spec.rb +0 -56
  529. data/spec/services/hyrax/workflow/action_taken_service_spec.rb +0 -74
  530. data/spec/services/hyrax/workflow/activate_object_spec.rb +0 -26
  531. data/spec/services/hyrax/workflow/changes_required_notification_spec.rb +0 -35
  532. data/spec/services/hyrax/workflow/deactivate_object_spec.rb +0 -26
  533. data/spec/services/hyrax/workflow/deposited_notification_spec.rb +0 -35
  534. data/spec/services/hyrax/workflow/grant_edit_to_depositor_spec.rb +0 -53
  535. data/spec/services/hyrax/workflow/grant_read_to_depositor_spec.rb +0 -48
  536. data/spec/services/hyrax/workflow/method_generator_spec.rb +0 -42
  537. data/spec/services/hyrax/workflow/notification_configuration_parameter_spec.rb +0 -24
  538. data/spec/services/hyrax/workflow/notification_generator_spec.rb +0 -27
  539. data/spec/services/hyrax/workflow/notification_service_spec.rb +0 -87
  540. data/spec/services/hyrax/workflow/pending_review_notification_spec.rb +0 -34
  541. data/spec/services/hyrax/workflow/permission_generator_spec.rb +0 -50
  542. data/spec/services/hyrax/workflow/permission_query_spec.rb +0 -206
  543. data/spec/services/hyrax/workflow/revoke_edit_from_depositor_spec.rb +0 -48
  544. data/spec/services/hyrax/workflow/sipity_actions_generator_spec.rb +0 -40
  545. data/spec/services/hyrax/workflow/state_machine_generator_spec.rb +0 -45
  546. data/spec/services/hyrax/workflow/status_list_service_spec.rb +0 -67
  547. data/spec/services/hyrax/workflow/workflow_factory_spec.rb +0 -26
  548. data/spec/services/hyrax/workflow/workflow_importer_spec.rb +0 -241
  549. data/spec/services/hyrax/workflow/workflow_permissions_generator_spec.rb +0 -39
  550. data/spec/services/hyrax/workflow/workflow_schema_spec.rb +0 -86
  551. data/spec/services/hyrax/working_directory_spec.rb +0 -12
  552. data/spec/services/hyrax/works/managed_works_service_spec.rb +0 -17
  553. data/spec/spec_helper.rb +0 -300
  554. data/spec/strategies/hyrax/strategies/yaml_strategy_spec.rb +0 -30
  555. data/spec/support/controller_level_helpers.rb +0 -27
  556. data/spec/support/factory_helpers.rb +0 -24
  557. data/spec/support/fakes/fake_authority.rb +0 -13
  558. data/spec/support/features.rb +0 -10
  559. data/spec/support/features/batch_edit_actions.rb +0 -28
  560. data/spec/support/features/session_helpers.rb +0 -14
  561. data/spec/support/features/workflow.rb +0 -9
  562. data/spec/support/input_support.rb +0 -11
  563. data/spec/support/logging_formatter.rb +0 -66
  564. data/spec/support/matchers/api_responses.rb +0 -26
  565. data/spec/support/matchers/collection_type_property_matchers.rb +0 -29
  566. data/spec/support/matchers/response_matchers.rb +0 -7
  567. data/spec/support/optional_example.rb +0 -16
  568. data/spec/support/rake.rb +0 -41
  569. data/spec/support/selectors.rb +0 -100
  570. data/spec/support/spec_statistic.rb +0 -23
  571. data/spec/support/speedup.rb +0 -6
  572. data/spec/support/statistic_helper.rb +0 -9
  573. data/spec/tasks/rake_spec.rb +0 -27
  574. data/spec/test_app_templates/Gemfile.extra +0 -6
  575. data/spec/test_app_templates/disable_animations_in_test_environment.rb +0 -54
  576. data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -125
  577. data/spec/views/_flash_msg.html.erb_spec.rb +0 -32
  578. data/spec/views/_user_util_links.html.erb_spec.rb +0 -44
  579. data/spec/views/catalog/_index_list_default.html.erb_spec.rb +0 -43
  580. data/spec/views/catalog/_search_form.html.erb_spec.rb +0 -16
  581. data/spec/views/catalog/_thumbnail_list_collection.html.erb_spec.rb +0 -43
  582. data/spec/views/catalog/index.html.erb_spec.rb +0 -50
  583. data/spec/views/content_blocks/edit.html.erb_spec.rb +0 -21
  584. data/spec/views/hyrax/admin/admin_sets/_form.html.erb_spec.rb +0 -29
  585. data/spec/views/hyrax/admin/admin_sets/_form_participant_table.html.erb_spec.rb +0 -128
  586. data/spec/views/hyrax/admin/admin_sets/_form_participants.html.erb_spec.rb +0 -19
  587. data/spec/views/hyrax/admin/admin_sets/_form_visibility.html.erb_spec.rb +0 -24
  588. data/spec/views/hyrax/admin/admin_sets/_form_workflow.html.erb_spec.rb +0 -22
  589. data/spec/views/hyrax/admin/admin_sets/_show_actions.html.erb_spec.rb +0 -68
  590. data/spec/views/hyrax/admin/admin_sets/_show_document_list.html.erb_spec.rb +0 -13
  591. data/spec/views/hyrax/admin/admin_sets/_show_document_list_row.html.erb_spec.rb +0 -28
  592. data/spec/views/hyrax/admin/admin_sets/index.html.erb_spec.rb +0 -40
  593. data/spec/views/hyrax/admin/admin_sets/index.json.erb_spec.rb +0 -29
  594. data/spec/views/hyrax/admin/admin_sets/show.html.erb_spec.rb +0 -21
  595. data/spec/views/hyrax/admin/collection_types/_form.html.erb_spec.rb +0 -45
  596. data/spec/views/hyrax/admin/collection_types/_form_appearance.html.erb_spec.rb +0 -22
  597. data/spec/views/hyrax/admin/collection_types/_form_metadata.html.erb_spec.rb +0 -27
  598. data/spec/views/hyrax/admin/collection_types/_form_metadata_admin_set.html.erb_spec.rb +0 -27
  599. data/spec/views/hyrax/admin/collection_types/_form_participants.html.erb_spec.rb +0 -24
  600. data/spec/views/hyrax/admin/collection_types/_form_participants_table.html.erb_spec.rb +0 -73
  601. data/spec/views/hyrax/admin/collection_types/_form_settings.html.erb_spec.rb +0 -86
  602. data/spec/views/hyrax/admin/collection_types/index.html.erb_spec.rb +0 -62
  603. data/spec/views/hyrax/admin/features/index.html.erb_spec.rb +0 -15
  604. data/spec/views/hyrax/admin/stats/show.html.erb_spec.rb +0 -54
  605. data/spec/views/hyrax/admin/users/index.html.erb_spec.rb +0 -45
  606. data/spec/views/hyrax/admin/workflow_roles/index.html.erb_spec.rb +0 -40
  607. data/spec/views/hyrax/base/_attribute_rows.html.erb_spec.rb +0 -30
  608. data/spec/views/hyrax/base/_attributes.html.erb_spec.rb +0 -35
  609. data/spec/views/hyrax/base/_citations.html.erb_spec.rb +0 -43
  610. data/spec/views/hyrax/base/_form.html.erb_spec.rb +0 -80
  611. data/spec/views/hyrax/base/_form_child_work_relationships.html.erb_spec.rb +0 -68
  612. data/spec/views/hyrax/base/_form_files.html.erb_spec.rb +0 -38
  613. data/spec/views/hyrax/base/_form_metadata.html.erb_spec.rb +0 -40
  614. data/spec/views/hyrax/base/_form_progress.html.erb_spec.rb +0 -131
  615. data/spec/views/hyrax/base/_form_relationships.html.erb_spec.rb +0 -48
  616. data/spec/views/hyrax/base/_form_rendering.html.erb_spec.rb +0 -22
  617. data/spec/views/hyrax/base/_items.html.erb_spec.rb +0 -55
  618. data/spec/views/hyrax/base/_member.html.erb_spec.rb +0 -43
  619. data/spec/views/hyrax/base/_relationships.html.erb_spec.rb +0 -92
  620. data/spec/views/hyrax/base/_show_actions.html.erb_spec.rb +0 -149
  621. data/spec/views/hyrax/base/_social_media.html.erb_spec.rb +0 -16
  622. data/spec/views/hyrax/base/edit.html.erb_spec.rb +0 -26
  623. data/spec/views/hyrax/base/file_manager.html.erb_spec.rb +0 -88
  624. data/spec/views/hyrax/base/show.html.erb_spec.rb +0 -201
  625. data/spec/views/hyrax/base/show.json.jbuilder_spec.rb +0 -23
  626. data/spec/views/hyrax/base/unauthorized.html.erb_spec.rb +0 -30
  627. data/spec/views/hyrax/base/unavailable.html.erb_spec.rb +0 -36
  628. data/spec/views/hyrax/batch_edits/check_all_spec.rb +0 -13
  629. data/spec/views/hyrax/batch_edits/edit.html.erb_spec.rb +0 -35
  630. data/spec/views/hyrax/batch_uploads/_form.html.erb_spec.rb +0 -24
  631. data/spec/views/hyrax/citations/work.html.erb_spec.rb +0 -175
  632. data/spec/views/hyrax/collections/_show_descriptions.html.erb_spec.rb +0 -32
  633. data/spec/views/hyrax/collections/_show_document_list.html.erb_spec.rb +0 -24
  634. data/spec/views/hyrax/collections/_show_document_list_row.html.erb_spec.rb +0 -35
  635. data/spec/views/hyrax/collections/_show_parent_collections.html.erb_spec.rb +0 -74
  636. data/spec/views/hyrax/collections/_sort_and_per_page.html.erb_spec.rb +0 -60
  637. data/spec/views/hyrax/collections/_subcollection_list.html.erb_spec.rb +0 -39
  638. data/spec/views/hyrax/collections/show.html.erb_spec.rb +0 -48
  639. data/spec/views/hyrax/dashboard/_sidebar.html.erb_spec.rb +0 -132
  640. data/spec/views/hyrax/dashboard/collections/_default_group.html.erb_spec.rb +0 -43
  641. data/spec/views/hyrax/dashboard/collections/_form.html.erb_spec.rb +0 -60
  642. data/spec/views/hyrax/dashboard/collections/_form_branding.html.erb_spec.rb +0 -23
  643. data/spec/views/hyrax/dashboard/collections/_form_discovery.erb_spec.rb +0 -67
  644. data/spec/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb_spec.rb +0 -47
  645. data/spec/views/hyrax/dashboard/collections/_form_share.erb_spec.rb +0 -22
  646. data/spec/views/hyrax/dashboard/collections/_form_share_table.html.erb_spec.rb +0 -108
  647. data/spec/views/hyrax/dashboard/collections/_list_collections.html.erb_spec.rb +0 -51
  648. data/spec/views/hyrax/dashboard/collections/_show_actions.html.erb_spec.rb +0 -77
  649. data/spec/views/hyrax/dashboard/collections/_show_add_items_actions.html.erb_spec.rb +0 -46
  650. data/spec/views/hyrax/dashboard/collections/_show_descriptions.html.erb_spec.rb +0 -32
  651. data/spec/views/hyrax/dashboard/collections/_show_document_list.html.erb_spec.rb +0 -24
  652. data/spec/views/hyrax/dashboard/collections/_show_document_list_menu.html.erb_spec.rb +0 -31
  653. data/spec/views/hyrax/dashboard/collections/_show_document_list_row.html.erb_spec.rb +0 -35
  654. data/spec/views/hyrax/dashboard/collections/_show_parent_collection_row.html.erb_spec.rb +0 -61
  655. data/spec/views/hyrax/dashboard/collections/_show_parent_collections.html.erb_spec.rb +0 -82
  656. data/spec/views/hyrax/dashboard/collections/_show_subcollection_actions.html.erb_spec.rb +0 -62
  657. data/spec/views/hyrax/dashboard/collections/_sort_and_per_page.html.erb_spec.rb +0 -60
  658. data/spec/views/hyrax/dashboard/collections/_subcollection_list.html.erb_spec.rb +0 -75
  659. data/spec/views/hyrax/dashboard/collections/_work_action_menu.html.erb_spec.rb +0 -18
  660. data/spec/views/hyrax/dashboard/collections/edit.html.erb_spec.rb +0 -20
  661. data/spec/views/hyrax/dashboard/collections/show.html.erb_spec.rb +0 -116
  662. data/spec/views/hyrax/dashboard/profiles/_trophy_edit.html.erb_spec.rb +0 -36
  663. data/spec/views/hyrax/dashboard/profiles/edit.html.erb_spec.rb +0 -67
  664. data/spec/views/hyrax/dashboard/profiles/show.html.erb_spec.rb +0 -36
  665. data/spec/views/hyrax/dashboard/show_user_spec.rb +0 -61
  666. data/spec/views/hyrax/depositors/index.html.erb_spec.rb +0 -13
  667. data/spec/views/hyrax/embargoes/index.html.erb_spec.rb +0 -14
  668. data/spec/views/hyrax/file_sets/_actions.html.erb_spec.rb +0 -36
  669. data/spec/views/hyrax/file_sets/_permission.html.erb_spec.rb +0 -14
  670. data/spec/views/hyrax/file_sets/_permission_form.html.erb_spec.rb +0 -44
  671. data/spec/views/hyrax/file_sets/_show_actions.html.erb_spec.rb +0 -62
  672. data/spec/views/hyrax/file_sets/_show_characterization_details.html.erb_spec.rb +0 -29
  673. data/spec/views/hyrax/file_sets/_single_use_links.html.erb_spec.rb +0 -34
  674. data/spec/views/hyrax/file_sets/_versioning.html.erb_spec.rb +0 -16
  675. data/spec/views/hyrax/file_sets/media_display/_audio.html.erb_spec.rb +0 -29
  676. data/spec/views/hyrax/file_sets/media_display/_default.html.erb_spec.rb +0 -29
  677. data/spec/views/hyrax/file_sets/media_display/_video.html.erb_spec.rb +0 -29
  678. data/spec/views/hyrax/file_sets/show.html.erb_spec.rb +0 -47
  679. data/spec/views/hyrax/file_sets/show.json.jbuilder_spec.rb +0 -27
  680. data/spec/views/hyrax/homepage/_announcement.html.erb_spec.rb +0 -27
  681. data/spec/views/hyrax/homepage/_featured_works.html.erb_spec.rb +0 -40
  682. data/spec/views/hyrax/homepage/_sortable_featured.html.erb_spec.rb +0 -23
  683. data/spec/views/hyrax/homepage/index.html.erb_spec.rb +0 -129
  684. data/spec/views/hyrax/leases/index.html.erb_spec.rb +0 -14
  685. data/spec/views/hyrax/my/_collection_action_menu.html.erb_spec.rb +0 -65
  686. data/spec/views/hyrax/my/_search_header.html.erb_spec.rb +0 -34
  687. data/spec/views/hyrax/my/_work_action_menu.html.erb_spec.rb +0 -40
  688. data/spec/views/hyrax/my/collections/_list_collections.html.erb_spec.rb +0 -109
  689. data/spec/views/hyrax/my/collections/index.html.erb_spec.rb +0 -34
  690. data/spec/views/hyrax/my/facet.html.erb_spec.rb +0 -34
  691. data/spec/views/hyrax/my/works/_list_works.html.erb_spec.rb +0 -30
  692. data/spec/views/hyrax/my/works/index.html.erb_spec.rb +0 -69
  693. data/spec/views/hyrax/permissions/confirm.html.erb_spec.rb +0 -15
  694. data/spec/views/hyrax/single_use_links_viewer/show.html.erb_spec.rb +0 -17
  695. data/spec/views/hyrax/single_use_links_viewer/single_use_error.html.erb_spec.rb +0 -6
  696. data/spec/views/hyrax/stats/file.html.erb_spec.rb +0 -48
  697. data/spec/views/hyrax/uploads/create.json.jbuilder_spec.rb +0 -17
  698. data/spec/views/hyrax/users/_user_info.html.erb_spec.rb +0 -25
  699. data/spec/views/hyrax/users/index.html.erb_spec.rb +0 -25
  700. data/spec/views/hyrax/users/show.html.erb_spec.rb +0 -55
  701. data/spec/views/layouts/error.html.erb_spec.rb +0 -6
  702. data/spec/views/pages/edit.html.erb_spec.rb +0 -27
  703. data/spec/views/pages/show.html.erb_spec.rb +0 -17
  704. data/spec/views/records/edit_fields/_based_near.html.erb_spec.rb +0 -20
  705. data/spec/views/records/edit_fields/_description.html.erb_spec.rb +0 -67
  706. data/spec/views/records/edit_fields/_language.html.erb_spec.rb +0 -20
  707. data/spec/views/records/edit_fields/_subject.html.erb_spec.rb +0 -20
  708. data/spec/views/shared/select_work_type_modal.html.erb_spec.rb +0 -51
@@ -1,16 +0,0 @@
1
- RSpec.describe "Sending an email via the contact form", type: :feature do
2
- before { sign_in(:user) }
3
-
4
- it "sends mail" do
5
- visit '/'
6
- click_link "Contact"
7
- expect(page).to have_content "Contact Form"
8
- fill_in "Your Name", with: "Test McPherson"
9
- fill_in "Your Email", with: "archivist1@example.com"
10
- fill_in "Message", with: "I am contacting you regarding ScholarSphere."
11
- fill_in "Subject", with: "My Subject is Cool"
12
- select "Depositing content", from: "Issue Type"
13
- click_button "Send"
14
- expect(page).to have_content "Thank you for your message!"
15
- end
16
- end
@@ -1,82 +0,0 @@
1
- require 'redlock'
2
-
3
- RSpec.describe 'Creating a new child Work', :workflow do
4
- let(:user) { create(:user) }
5
- let!(:sipity_entity) do
6
- create(:sipity_entity, proxy_for_global_id: parent.to_global_id.to_s)
7
- end
8
- let(:redlock_client_stub) do # stub out redis connection
9
- client = double('redlock client')
10
- allow(client).to receive(:lock).and_yield(true)
11
- allow(Redlock::Client).to receive(:new).and_return(client)
12
- client
13
- end
14
- let!(:parent) { create(:generic_work, user: user, title: ["Parent First"]) }
15
-
16
- before do
17
- sign_in user
18
- # stub out characterization. Travis doesn't have fits installed, and it's not relevant to the test.
19
- allow(CharacterizeJob).to receive(:perform_later)
20
- redlock_client_stub
21
- end
22
-
23
- it 'creates the child work' do
24
- visit "/concern/parent/#{parent.id}/generic_works/new"
25
- work_title = 'My Test Work'
26
- within('form.new_generic_work') do
27
- fill_in('Title', with: work_title)
28
- click_on('Save')
29
- end
30
- visit "/concern/generic_works/#{parent.id}"
31
- expect(page).to have_content work_title
32
- end
33
-
34
- context "when it's being updated" do
35
- let(:curation_concern) { create(:generic_work, user: user) }
36
- let(:new_parent) { create(:generic_work, user: user) }
37
- let!(:cc_sipity_entity) do
38
- create(:sipity_entity, proxy_for_global_id: curation_concern.to_global_id.to_s)
39
- end
40
- let!(:new_sipity_entity) do
41
- create(:sipity_entity, proxy_for_global_id: new_parent.to_global_id.to_s)
42
- end
43
-
44
- before do
45
- parent.ordered_members << curation_concern
46
- parent.save!
47
- end
48
- it 'can be updated' do
49
- visit "/concern/parent/#{parent.id}/generic_works/#{curation_concern.id}/edit"
50
- click_on "Save"
51
-
52
- expect(parent.reload.ordered_members.to_a.length).to eq 1
53
- end
54
- it "doesn't lose other memberships" do
55
- new_parent.ordered_members << curation_concern
56
- new_parent.save!
57
-
58
- visit "/concern/parent/#{parent.id}/generic_works/#{curation_concern.id}/edit"
59
- click_on "Save"
60
-
61
- expect(parent.reload.ordered_members.to_a.length).to eq 1
62
- expect(new_parent.reload.ordered_members.to_a.length).to eq 1
63
-
64
- expect(curation_concern.reload.in_works_ids.length).to eq 2
65
- end
66
-
67
- context "with a parent that doesn't belong to this user" do
68
- let(:new_user) { create(:user) }
69
- let(:new_parent) { create(:generic_work, user: new_user) }
70
-
71
- it "fails to update" do
72
- visit "/concern/parent/#{parent.id}/generic_works/#{curation_concern.id}/edit"
73
- first("input#generic_work_in_works_ids", visible: false).set new_parent.id
74
- first("input#parent_id", visible: false).set new_parent.id
75
- click_on "Save"
76
-
77
- expect(new_parent.reload.ordered_members.to_a.length).to eq 0
78
- expect(page).to have_content "Works can only be related to each other if user has ability to edit both."
79
- end
80
- end
81
- end
82
- end
@@ -1,44 +0,0 @@
1
- RSpec.describe 'Creating a new Work as admin', :js, :workflow, perform_enqueued: [AttachFilesToWorkJob, IngestJob] do
2
- let(:user) { create(:admin) }
3
- let(:admin_set_1) do
4
- create(:admin_set, id: AdminSet::DEFAULT_ID,
5
- title: ["Default Admin Set"],
6
- description: ["A description"],
7
- edit_users: [user.user_key])
8
- end
9
- let(:admin_set_2) do
10
- create(:admin_set, title: ["Another Admin Set"],
11
- description: ["A description"],
12
- edit_users: [user.user_key])
13
- end
14
-
15
- context 'when there are multiple admin sets' do
16
- before do
17
- create(:permission_template_access,
18
- :deposit,
19
- permission_template: create(:permission_template, source_id: admin_set_1.id, with_admin_set: true, with_active_workflow: true),
20
- agent_type: 'user',
21
- agent_id: user.user_key)
22
- create(:permission_template_access,
23
- :deposit,
24
- permission_template: create(:permission_template, source_id: admin_set_2.id, with_admin_set: true, with_active_workflow: true),
25
- agent_type: 'user',
26
- agent_id: user.user_key)
27
- sign_in user
28
- end
29
-
30
- it "allows default admin set to be the first item in the select menu" do
31
- visit '/dashboard'
32
- click_link 'Works'
33
- click_link "Add new work"
34
- choose "payload_concern", option: "GenericWork"
35
- click_button 'Create work'
36
- click_link "Relationship" # switch tab
37
- expect(page).to have_content('Administrative Set')
38
- expect(page).to have_content('Another Admin Set')
39
- expect(page).to have_content('Default Admin Set')
40
- expect(page).to have_selector('select#generic_work_admin_set_id')
41
- expect(page).to have_select('generic_work_admin_set_id', selected: 'Default Admin Set')
42
- end
43
- end
44
- end
@@ -1,124 +0,0 @@
1
- RSpec.describe 'Creating a new Work', :js, :workflow do
2
- let(:user) { create(:user) }
3
- let!(:ability) { ::Ability.new(user) }
4
- let(:file1) { File.open(fixture_path + '/world.png') }
5
- let(:file2) { File.open(fixture_path + '/image.jp2') }
6
- let!(:uploaded_file1) { Hyrax::UploadedFile.create(file: file1, user: user) }
7
- let!(:uploaded_file2) { Hyrax::UploadedFile.create(file: file2, user: user) }
8
-
9
- before do
10
- # Grant the user access to deposit into an admin set.
11
- create(:permission_template_access,
12
- :deposit,
13
- permission_template: create(:permission_template, with_admin_set: true, with_active_workflow: true),
14
- agent_type: 'user',
15
- agent_id: user.user_key)
16
- # stub out characterization. Travis doesn't have fits installed, and it's not relevant to the test.
17
- allow(CharacterizeJob).to receive(:perform_later)
18
- end
19
-
20
- context "when the user is not a proxy" do
21
- before do
22
- sign_in user
23
- click_link 'Works'
24
- click_link "Add new work"
25
- choose "payload_concern", option: "GenericWork"
26
- click_button 'Create work'
27
- end
28
-
29
- it 'creates the work' do
30
- click_link "Files" # switch tab
31
- expect(page).to have_content "Add files"
32
- expect(page).to have_content "Add folder"
33
- within('span#addfiles') do
34
- attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/image.jp2", visible: false)
35
- attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/jp2_fits.xml", visible: false)
36
- end
37
- click_link "Descriptions" # switch tab
38
- fill_in('Title', with: 'My Test Work')
39
- fill_in('Creator', with: 'Doe, Jane')
40
- fill_in('Keyword', with: 'testing')
41
- select('In Copyright', from: 'Rights statement')
42
- # With selenium and the chrome driver, focus remains on the
43
- # select box. Click outside the box so the next line can't find
44
- # its element
45
- find('body').click
46
- choose('generic_work_visibility_open')
47
- expect(page).to have_content('Please note, making something visible to the world (i.e. marking this as Public) may be viewed as publishing which could impact your ability to')
48
- check('agreement')
49
- # These lines are for debugging, should this test fail
50
- # puts "Required metadata: #{page.evaluate_script(%{$('#form-progress').data('save_work_control').requiredFields.areComplete})}"
51
- # puts "Required files: #{page.evaluate_script(%{$('#form-progress').data('save_work_control').uploads.hasFiles})}"
52
- # puts "Agreement : #{page.evaluate_script(%{$('#form-progress').data('save_work_control').depositAgreement.isAccepted})}"
53
- click_on('Save')
54
- expect(page).to have_content('My Test Work')
55
- expect(page).to have_content "Your files are being processed by Hyrax in the background."
56
- end
57
- end
58
-
59
- context 'when the user is a proxy', perform_enqueued: [ContentDepositorChangeEventJob, AttachFilesToWorkJob, IngestJob] do
60
- let(:second_user) { create(:user) }
61
-
62
- before do
63
- ProxyDepositRights.create!(grantor: second_user, grantee: user)
64
- sign_in user
65
- click_link 'Works'
66
- click_link "Add new work"
67
- choose "payload_concern", option: "GenericWork"
68
- click_button 'Create work'
69
- end
70
-
71
- it "allows on-behalf-of deposit" do
72
- click_link "Files" # switch tab
73
- expect(page).to have_content "Add files"
74
- within('span#addfiles') do
75
- attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/image.jp2", visible: false)
76
- attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/jp2_fits.xml", visible: false)
77
- end
78
- click_link "Descriptions" # switch tab
79
- fill_in('Title', with: 'My Test Work')
80
- fill_in('Creator', with: 'Doe, Jane')
81
- fill_in('Keyword', with: 'testing')
82
- select('In Copyright', from: 'Rights statement')
83
- # With selenium and the chrome driver, focus remains on the
84
- # select box. Click outside the box so the next line can't find
85
- # its element
86
- find('body').click
87
- choose('generic_work_visibility_open')
88
- expect(page).to have_content('Please note, making something visible to the world (i.e. marking this as Public) may be viewed as publishing which could impact your ability to')
89
- select(second_user.user_key, from: 'On behalf of')
90
- check('agreement')
91
- # These lines are for debugging, should this test fail
92
- # puts "Required metadata: #{page.evaluate_script(%{$('#form-progress').data('save_work_control').requiredFields.areComplete})}"
93
- # puts "Required files: #{page.evaluate_script(%{$('#form-progress').data('save_work_control').uploads.hasFiles})}"
94
- # puts "Agreement : #{page.evaluate_script(%{$('#form-progress').data('save_work_control').depositAgreement.isAccepted})}"
95
- click_on('Save')
96
- expect(page).to have_content('My Test Work')
97
- expect(page).to have_content "Your files are being processed by Hyrax in the background."
98
-
99
- sign_in second_user
100
- click_link 'Works'
101
- expect(page).to have_content "My Test Work"
102
- end
103
- end
104
-
105
- context "when a file uploaded and then deleted" do
106
- before do
107
- sign_in user
108
- click_link 'Works'
109
- click_link "Add new work"
110
- choose "payload_concern", option: "GenericWork"
111
- click_button 'Create work'
112
- end
113
-
114
- it 'updates the required file check status' do
115
- click_link "Files" # switch to the Files tab
116
- within('span#addfiles') do
117
- attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/image.jp2", visible: false)
118
- end
119
- expect(page).to have_css('ul li#required-files.complete', text: 'Add files')
120
- click_button 'Delete' # delete the file
121
- expect(page).to have_css('ul li#required-files.incomplete', text: 'Add files')
122
- end
123
- end
124
- end
@@ -1,23 +0,0 @@
1
- RSpec.describe "As an admin user I should be able to see all works", :clean_repo do
2
- let!(:work1) { create(:work, title: ['Testing #1'], admin_set: adminset, member_of_collections: [collection]) }
3
- let!(:work2) { create(:work, title: ['Testing #2'], admin_set: adminset, member_of_collections: [collection]) }
4
- let(:collection) { build(:collection_lw, with_solr_document: true) }
5
- let(:adminset) { create(:admin_set) }
6
-
7
- before do
8
- sign_in create(:admin)
9
- end
10
- it do
11
- visit '/dashboard/works'
12
- expect(page).to have_content 'Works'
13
- expect(page).to have_content 'Testing #1'
14
- expect(page).to have_content 'Testing #2'
15
-
16
- # check for filters
17
- expect(page).to have_button('Collection')
18
- expect(page).to have_link(collection.title.first, class: 'facet_select')
19
- expect(page).to have_button('Admin Set')
20
- expect(page).to have_link(adminset.title.first, class: 'facet_select')
21
- expect(page).to have_content("2 works in the repository")
22
- end
23
- end
@@ -1,918 +0,0 @@
1
- RSpec.describe 'collection', type: :feature, clean_repo: true do
2
- include Selectors::Dashboard
3
-
4
- let(:user) { create(:user) }
5
- let(:admin_user) { create(:admin) }
6
- let(:collection_type) { create(:collection_type, creator_user: user) }
7
- let(:user_collection_type) { create(:user_collection_type) }
8
- let(:solr_gid_field) { Collection.collection_type_gid_document_field_name }
9
- let(:solr_model_field) { 'has_model_ssim' }
10
-
11
- # Setting Title on admin sets to avoid false positive matches with collections.
12
- let(:admin_set_a) { create(:admin_set, creator: [admin_user.user_key], title: ['Set A'], with_permission_template: true) }
13
- let(:admin_set_b) { create(:admin_set, creator: [user.user_key], title: ['Set B'], edit_users: [user.user_key], with_permission_template: true) }
14
- let(:collection1) { create(:public_collection_lw, user: user, collection_type_gid: collection_type.gid, with_permission_template: true) }
15
- let(:collection2) { create(:public_collection_lw, user: user, collection_type_gid: collection_type.gid, with_permission_template: true) }
16
- let(:collection3) { create(:public_collection_lw, user: admin_user, collection_type_gid: collection_type.gid, with_permission_template: true) }
17
- let(:collection4) { create(:public_collection_lw, user: admin_user, collection_type_gid: user_collection_type.gid, with_permission_template: true) }
18
-
19
- describe 'Your Collections tab' do
20
- context 'when non-admin user' do
21
- before do
22
- user
23
- admin_user
24
- admin_set_a
25
- admin_set_b
26
- create(:permission_template_access,
27
- :manage,
28
- permission_template: admin_set_b.permission_template,
29
- agent_type: 'user',
30
- agent_id: user.user_key)
31
- collection1
32
- collection2
33
- collection3
34
- collection4
35
- sign_in user
36
- visit '/dashboard/my/collections'
37
- end
38
-
39
- it "has page title, does not have tabs, lists only user's collections, and displays number of collections in the respository" do
40
- expect(page).to have_content 'Collections'
41
- expect(page).not_to have_link 'All Collections'
42
- within('section.tabs-row') do
43
- expect(page).not_to have_link 'Your Collections'
44
- end
45
- expect(page).to have_link(collection1.title.first)
46
- expect(page).to have_link(collection2.title.first)
47
- expect(page).to have_link(admin_set_b.title.first)
48
- expect(page).not_to have_link(collection3.title.first)
49
- expect(page).not_to have_link(admin_set_a.title.first)
50
- expect(page).to have_content("3 collections you own in the repository")
51
- end
52
-
53
- it "has collection type and visibility filters" do
54
- expect(page).to have_button 'Visibility'
55
- expect(page).to have_link 'Public',
56
- href: /visibility_ssi.+#{Regexp.escape(CGI.escape(collection3.visibility))}/
57
- expect(page).to have_button 'Collection Type'
58
- expect(page).to have_link collection_type.title,
59
- href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(collection_type.gid))}/
60
- expect(page).to have_link 'AdminSet',
61
- href: /#{solr_model_field}.+#{Regexp.escape('AdminSet')}/
62
- expect(page).not_to have_link user_collection_type.title,
63
- href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(user_collection_type.gid))}/
64
- expect(page).not_to have_link 'Collection',
65
- href: /#{solr_model_field}.+#{Regexp.escape('Collection')}/
66
- end
67
- end
68
-
69
- context 'when admin user' do
70
- before do
71
- user
72
- admin_user
73
- admin_set_a
74
- admin_set_b
75
- create(:permission_template_access,
76
- :manage,
77
- permission_template: admin_set_a.permission_template,
78
- agent_type: 'user',
79
- agent_id: admin_user.user_key)
80
- create(:permission_template_access,
81
- :manage,
82
- permission_template: admin_set_b.permission_template,
83
- agent_type: 'group',
84
- agent_id: 'admin')
85
- collection1
86
- collection2
87
- collection3
88
- collection4
89
- sign_in admin_user
90
- visit '/dashboard/my/collections'
91
- end
92
-
93
- it "has page title, has tabs for All Collections and Your Collections, and lists collections with edit access" do
94
- expect(page).to have_content 'Collections'
95
- expect(page).to have_link 'All Collections'
96
- expect(page).to have_link 'Your Collections'
97
- expect(page).to have_link(collection3.title.first)
98
- expect(page).to have_link(collection4.title.first)
99
- expect(page).to have_link(admin_set_a.title.first)
100
- expect(page).not_to have_link(collection1.title.first)
101
- expect(page).not_to have_link(collection2.title.first)
102
- expect(page).not_to have_link(admin_set_b.title.first)
103
- end
104
-
105
- it "has collection type and visibility filters" do
106
- expect(page).to have_button 'Visibility'
107
- expect(page).to have_link 'Public',
108
- href: /visibility_ssi.+#{Regexp.escape(CGI.escape(collection3.visibility))}/
109
- expect(page).to have_button 'Collection Type'
110
- expect(page).to have_link collection_type.title,
111
- href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(collection_type.gid))}/
112
- expect(page).to have_link user_collection_type.title,
113
- href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(user_collection_type.gid))}/
114
- expect(page).to have_link 'AdminSet',
115
- href: /#{solr_model_field}.+#{Regexp.escape('AdminSet')}/
116
- expect(page).not_to have_link 'Collection',
117
- href: /#{solr_model_field}.+#{Regexp.escape('Collection')}/
118
- end
119
- end
120
- end
121
-
122
- describe 'All Collections tab (for admin users only)' do
123
- before do
124
- user
125
- admin_user
126
- collection1
127
- collection2
128
- collection3
129
- collection4
130
- admin_set_a
131
- admin_set_b
132
- sign_in admin_user
133
- visit '/dashboard/my/collections'
134
- end
135
-
136
- it 'lists all collections for all users' do
137
- expect(page).to have_link 'All Collection'
138
- click_link 'All Collections'
139
- expect(page).to have_link(collection1.title.first)
140
- expect(page).to have_link(collection2.title.first)
141
- expect(page).to have_link(collection3.title.first)
142
- expect(page).to have_link(collection4.title.first)
143
- expect(page).to have_link(admin_set_a.title.first)
144
- expect(page).to have_link(admin_set_b.title.first)
145
- end
146
-
147
- it 'has a collection type filter' do
148
- expect(page).to have_link 'All Collection'
149
- click_link 'All Collections'
150
- expect(page).to have_button 'Visibility'
151
- expect(page).to have_link 'Public',
152
- href: /visibility_ssi.+#{Regexp.escape(CGI.escape(collection1.visibility))}/
153
- expect(page).to have_button 'Collection Type'
154
- expect(page).to have_link collection_type.title,
155
- href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(collection_type.gid))}/
156
- expect(page).to have_link user_collection_type.title,
157
- href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(user_collection_type.gid))}/
158
- expect(page).to have_link 'AdminSet',
159
- href: /#{solr_model_field}.+#{Regexp.escape('AdminSet')}/
160
- expect(page).not_to have_link 'Collection',
161
- href: /#{solr_model_field}.+#{Regexp.escape('Collection')}/
162
- end
163
- end
164
-
165
- describe 'Managed Collections tab (for non-admin users with shared access' do
166
- let(:user2) { create(:user) }
167
-
168
- before do
169
- user
170
- admin_user
171
- collection1
172
- collection2
173
- collection3
174
- collection4
175
- create(:permission_template_access,
176
- :manage,
177
- permission_template: collection1.permission_template,
178
- agent_type: 'user',
179
- agent_id: user2.user_key)
180
- collection1.reset_access_controls!
181
- create(:permission_template_access,
182
- :deposit,
183
- permission_template: collection2.permission_template,
184
- agent_type: 'user',
185
- agent_id: user2.user_key)
186
- collection2.reset_access_controls!
187
- create(:permission_template_access,
188
- :view,
189
- permission_template: collection4.permission_template,
190
- agent_type: 'user',
191
- agent_id: user2.user_key)
192
- collection4.reset_access_controls!
193
- sign_in user2
194
- visit '/dashboard/my/collections'
195
- end
196
-
197
- it 'lists managed collections only for user2' do
198
- expect(page).to have_link 'Managed Collections'
199
- click_link 'Managed Collections'
200
- expect(page).to have_link(collection1.title.first)
201
- expect(page).to have_link(collection2.title.first)
202
- expect(page).not_to have_link(collection3.title.first)
203
- expect(page).to have_link(collection4.title.first)
204
- expect(page).not_to have_link(admin_set_a.title.first)
205
- expect(page).not_to have_link(admin_set_b.title.first)
206
- end
207
-
208
- it 'has a collection type filter' do
209
- expect(page).to have_link 'Managed Collections'
210
- click_link 'Managed Collections'
211
- expect(page).to have_button 'Visibility'
212
- expect(page).to have_link 'Public',
213
- href: /visibility_ssi.+#{Regexp.escape(CGI.escape(collection1.visibility))}/
214
- expect(page).to have_button 'Collection Type'
215
- expect(page).to have_link collection_type.title,
216
- href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(collection_type.gid))}/
217
- expect(page).to have_link user_collection_type.title,
218
- href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(user_collection_type.gid))}/
219
- expect(page).not_to have_link 'AdminSet',
220
- href: /#{solr_model_field}.+#{Regexp.escape('AdminSet')}/
221
- expect(page).not_to have_link 'Collection',
222
- href: /#{solr_model_field}.+#{Regexp.escape('Collection')}/
223
- end
224
- end
225
-
226
- describe 'create collection' do
227
- let(:title) { "Test Collection" }
228
- let(:description) { "Description for collection we are testing." }
229
-
230
- context 'when user can create collections of multiple types' do
231
- before do
232
- collection_type
233
- user_collection_type
234
-
235
- sign_in user
236
- visit '/dashboard/my/collections'
237
- end
238
-
239
- it "makes a new collection", :js do
240
- click_button "New Collection"
241
- expect(page).to have_content 'Select type of collection'
242
-
243
- choose('User Collection')
244
- click_on('Create collection')
245
-
246
- expect(page).to have_selector('h1', text: 'New User Collection')
247
- expect(page).to have_selector "input.collection_title.multi_value"
248
-
249
- click_link('Additional fields')
250
- expect(page).to have_selector "input.collection_creator.multi_value"
251
-
252
- fill_in('Title', with: title)
253
- fill_in('Abstract or Summary', with: description)
254
- fill_in('Related URL', with: 'http://example.com/')
255
-
256
- click_button("Save")
257
- expect(page).to have_content title
258
- expect(page).to have_content description
259
- end
260
-
261
- it "has properly formed collection type buttons" do
262
- expect(page).not_to have_selector("input[data-path$='collections/new&collection_type_id=1']")
263
- expect(page).to have_selector("input[data-path$='collections/new?locale=en&collection_type_id=1']")
264
- end
265
- end
266
-
267
- context 'when user can create collections of one type' do
268
- before do
269
- user_collection_type
270
-
271
- sign_in user
272
- visit '/dashboard/my/collections'
273
- end
274
-
275
- it 'makes a new collection' do
276
- click_link "New Collection"
277
- expect(page).to have_selector('h1', text: 'New User Collection')
278
- expect(page).to have_selector "input.collection_title.multi_value"
279
-
280
- click_link('Additional fields')
281
- expect(page).to have_selector "input.collection_creator.multi_value"
282
-
283
- fill_in('Title', with: title)
284
- fill_in('Abstract or Summary', with: description)
285
- fill_in('Related URL', with: 'http://example.com/')
286
-
287
- click_button("Save")
288
- expect(page).to have_content title
289
- expect(page).to have_content description
290
- end
291
- end
292
-
293
- context 'when user can not create collections' do
294
- before do
295
- sign_in user
296
- visit '/dashboard/my/collections'
297
- end
298
-
299
- it 'does show New Collection button' do
300
- expect(page).not_to have_link "New Collection"
301
- expect(page).not_to have_button "New Collection"
302
- end
303
- end
304
- end
305
-
306
- # TODO: this section is still deactivated
307
- describe "adding works to a collection", skip: "we need to define a dashboard/works path" do
308
- let!(:collection) { create!(:collection, title: ["Barrel of monkeys"], user: user, with_permission_template: true) }
309
- let!(:work1) { create(:work, title: ["King Louie"], user: user) }
310
- let!(:work2) { create(:work, title: ["King Kong"], user: user) }
311
-
312
- before do
313
- sign_in user
314
- end
315
-
316
- it "attaches the works", :js do
317
- visit '/dashboard/my/works'
318
- first('input#check_all').click
319
- click_button "Add to collection" # opens the modal
320
- # since there is only one collection, it's not necessary to choose a radio button
321
- click_button "Update Collection"
322
- expect(page).to have_content "Works in this Collection"
323
- # There are two rows in the table per document (one for the general info, one for the details)
324
- # Make sure we have at least 2 documents
325
- expect(page).to have_selector "table.table-zebra-striped tr#document_#{work1.id}"
326
- expect(page).to have_selector "table.table-zebra-striped tr#document_#{work2.id}"
327
- end
328
- end
329
-
330
- describe 'delete collection' do
331
- let!(:empty_collection) { create(:public_collection_lw, title: ['Empty Collection'], user: user, with_permission_template: true) }
332
- let!(:collection) { create(:public_collection_lw, title: ['Collection with Work'], user: user, with_permission_template: true) }
333
- let!(:admin_user) { create(:admin) }
334
- let!(:empty_adminset) { create(:admin_set, title: ['Empty Admin Set'], creator: [admin_user.user_key], with_permission_template: true) }
335
- let!(:adminset) { create(:admin_set, title: ['Admin Set with Work'], creator: [admin_user.user_key], with_permission_template: true) }
336
- let!(:work) { create(:work, title: ["King Louie"], admin_set: adminset, member_of_collections: [collection], user: user) }
337
-
338
- # check table row has appropriate data attributes added
339
- def check_tr_data_attributes(id, type)
340
- url_fragment = get_url_fragment(type)
341
- expect(page).to have_selector("tr[data-id='#{id}'][data-colls-hash]")
342
- expect(page).to have_selector("tr[data-post-url='/dashboard/collections/#{id}/within?locale=en']")
343
- expect(page).to have_selector("tr[data-post-delete-url='/#{url_fragment}/#{id}?locale=en']")
344
- end
345
-
346
- # check data attributes have been transferred from table row to the modal
347
- def check_modal_data_attributes(id, type)
348
- url_fragment = get_url_fragment(type)
349
- expect(page).to have_selector("div[data-id='#{id}']")
350
- expect(page).to have_selector("div[data-post-delete-url='/#{url_fragment}/#{id}?locale=en']")
351
- end
352
-
353
- def get_url_fragment(type)
354
- (type == 'admin_set' ? 'admin/admin_sets' : 'dashboard/collections')
355
- end
356
-
357
- context 'when user created the collection' do
358
- before do
359
- user
360
- sign_in user
361
- visit '/dashboard/my/collections' # Your Collections tab
362
- end
363
-
364
- context 'and collection is empty' do
365
- it 'and user confirms delete, deletes the collection', :js do
366
- within("table#collections-list-table") do
367
- expect(page).to have_content(empty_collection.title.first)
368
- end
369
- check_tr_data_attributes(empty_collection.id, 'collection')
370
- # check that modal data attributes haven't been added yet
371
- expect(page).not_to have_selector("div[data-id='#{empty_collection.id}']")
372
- within('#document_' + empty_collection.id) do
373
- first('button.dropdown-toggle').click
374
- first('.itemtrash').click
375
- end
376
- expect(page).to have_selector("div#collection-empty-to-delete-modal", visible: true)
377
- check_modal_data_attributes(empty_collection.id, 'collection')
378
- within("div#collection-empty-to-delete-modal") do
379
- click_button('Delete')
380
- end
381
- within("table#collections-list-table") do
382
- expect(page).not_to have_content(empty_collection.title.first)
383
- end
384
- end
385
-
386
- it 'and user cancels, does NOT delete the collection', :js do
387
- within("table#collections-list-table") do
388
- expect(page).to have_content(collection.title.first)
389
- end
390
- check_tr_data_attributes(empty_collection.id, 'collection')
391
- # check that modal data attributes haven't been added yet
392
- expect(page).not_to have_selector("div[data-id='#{empty_collection.id}']")
393
- within("#document_#{empty_collection.id}") do
394
- first('button.dropdown-toggle').click
395
- first('.itemtrash').click
396
- end
397
- expect(page).to have_selector("div#collection-empty-to-delete-modal", visible: true)
398
- check_modal_data_attributes(empty_collection.id, 'collection')
399
-
400
- within("div#collection-empty-to-delete-modal") do
401
- click_button('Cancel')
402
- end
403
- within("table#collections-list-table") do
404
- expect(page).to have_content(collection.title.first)
405
- end
406
- end
407
- end
408
-
409
- context 'and collection is not empty' do
410
- it 'and user confirms delete, deletes the collection', :js do
411
- within("table#collections-list-table") do
412
- expect(page).to have_content(collection.title.first)
413
- end
414
- check_tr_data_attributes(collection.id, 'collection')
415
- within("#document_#{collection.id}") do
416
- first('button.dropdown-toggle').click
417
- first('.itemtrash').click
418
- end
419
- expect(page).to have_selector("div#collection-to-delete-modal", visible: true)
420
- check_modal_data_attributes(collection.id, 'collection')
421
- within("div#collection-to-delete-modal") do
422
- find('button.modal-delete-button').click
423
- end
424
- within("table#collections-list-table") do
425
- expect(page).not_to have_content(collection.title.first)
426
- end
427
- end
428
-
429
- it 'and user cancels, does NOT delete the collection', :js do
430
- within("table#collections-list-table") do
431
- expect(page).to have_content(collection.title.first)
432
- end
433
- within("#document_#{collection.id}") do
434
- first('button.dropdown-toggle').click
435
- first('.itemtrash').click
436
- end
437
- expect(page).to have_selector("div#collection-to-delete-modal", visible: true)
438
-
439
- within("div#collection-to-delete-modal") do
440
- click_button('Cancel')
441
- end
442
- within("table#collections-list-table") do
443
- expect(page).to have_content(collection.title.first)
444
- end
445
- end
446
- end
447
- end
448
-
449
- context 'when user does not have permission to delete a collection' do
450
- let(:user2) { create(:user) }
451
-
452
- before do
453
- create(:permission_template_access,
454
- :deposit,
455
- permission_template: collection.permission_template,
456
- agent_type: 'user',
457
- agent_id: user2.user_key)
458
- sign_in user2
459
- visit '/dashboard/collections' # Managed Collections tab
460
- end
461
-
462
- context 'and selects Delete from drop down within table' do
463
- it 'does not allow delete collection', js: true do
464
- expect(page).to have_content(collection.title.first)
465
- check_tr_data_attributes(collection.id, 'collection')
466
- within("#document_#{collection.id}") do
467
- first('button.dropdown-toggle').click
468
- first('.itemtrash').click
469
- end
470
-
471
- # Exepct the modal to be shown that explains why the user can't delete the collection.
472
- expect(page).to have_selector('div#collection-to-delete-deny-modal', visible: true)
473
- within('div#collection-to-delete-deny-modal') do
474
- click_button('Close')
475
- end
476
- expect(page).to have_content(collection.title.first)
477
- end
478
- end
479
- end
480
-
481
- context 'when user created the admin set' do
482
- before do
483
- sign_in admin_user
484
- visit '/dashboard/collections' # All Collections tab
485
- end
486
-
487
- context 'and admin set is empty' do
488
- it 'and user confirms delete, deletes the admin set', :js do
489
- expect(page).to have_content(empty_adminset.title.first)
490
- check_tr_data_attributes(empty_adminset.id, 'admin_set')
491
- within('#document_' + empty_adminset.id) do
492
- first('button.dropdown-toggle').click
493
- first('.itemtrash').click
494
- end
495
- expect(page).to have_selector("div#collection-empty-to-delete-modal", visible: true)
496
- check_modal_data_attributes(empty_adminset.id, 'admin_set')
497
- within("div#collection-empty-to-delete-modal") do
498
- find('button.modal-delete-button').click
499
- end
500
- expect(page).not_to have_content(empty_adminset.title.first)
501
- end
502
-
503
- it 'and user cancels, does NOT delete the admin set', :js do
504
- expect(page).to have_content(empty_adminset.title.first)
505
- check_tr_data_attributes(empty_adminset.id, 'admin_set')
506
- within("#document_#{empty_adminset.id}") do
507
- first('button.dropdown-toggle').click
508
- first('.itemtrash').click
509
- end
510
- expect(page).to have_selector("div#collection-empty-to-delete-modal", visible: true)
511
- check_modal_data_attributes(empty_adminset.id, 'admin_set')
512
- within("div#collection-empty-to-delete-modal") do
513
- click_button('Cancel')
514
- end
515
- expect(page).to have_content(empty_adminset.title.first)
516
- end
517
- end
518
-
519
- context 'and admin set is not empty' do
520
- it 'does not allow delete admin set' do
521
- expect(page).to have_content(adminset.title.first)
522
- check_tr_data_attributes(adminset.id, 'admin_set')
523
- within("#document_#{adminset.id}") do
524
- first('button.dropdown-toggle').click
525
- first('.itemtrash').click
526
- end
527
- expect(page).to have_selector("div#collection-admin-set-delete-deny-modal", visible: true)
528
- within("div#collection-admin-set-delete-deny-modal") do
529
- click_button('Close')
530
- end
531
- expect(page).to have_content(adminset.title.first)
532
- end
533
- end
534
- end
535
-
536
- context 'when user without permissions selects delete' do
537
- let(:user2) { create(:user) }
538
-
539
- before do
540
- create(:permission_template_access,
541
- :view,
542
- permission_template: adminset.permission_template,
543
- agent_type: 'user',
544
- agent_id: user2.user_key)
545
- sign_in user2
546
- visit '/dashboard/collections' # Managed Collections tab
547
- end
548
-
549
- xit 'does not allow delete admin set' do
550
- # TODO: Depositors & viewers cannot see admin sets in Managed Collections list. Should they?
551
- expect(page).to have_content(adminset.title.first)
552
- within("#document_#{adminset.id}") do
553
- first('button.dropdown-toggle').click
554
- first('.itemtrash').click
555
- end
556
- expect(page).to have_selector('div#collection-to-delete-deny-modal', visible: true)
557
- within('div#collection-to-delete-deny-modal') do
558
- click_button('Close')
559
- end
560
- expect(page).to have_content(adminset.title.first)
561
- end
562
- end
563
- end
564
-
565
- describe 'collection show page' do
566
- let(:collection) do
567
- build(:public_collection_lw, user: user, description: ['collection description'], with_permission_template: true)
568
- end
569
- let!(:work1) { create(:work, title: ["King Louie"], member_of_collections: [collection], user: user) }
570
- let!(:work2) { create(:work, title: ["King Kong"], member_of_collections: [collection], user: user) }
571
-
572
- before do
573
- sign_in user
574
- visit '/dashboard/my/collections'
575
- end
576
-
577
- it "has creation date for collections and shows a collection with a listing of Descriptive Metadata and catalog-style search results" do
578
- expect(page).to have_content(collection.create_date.to_date.to_formatted_s(:standard))
579
-
580
- expect(page).to have_content(collection.title.first)
581
- within('#document_' + collection.id) do
582
- click_link("Display all details of #{collection.title.first}")
583
- end
584
- expect(page).to have_content(collection.title.first)
585
- expect(page).to have_content(collection.description.first)
586
- # Should not show title and description a second time
587
- expect(page).not_to have_css('.metadata-collections', text: collection.title.first)
588
- expect(page).not_to have_css('.metadata-collections', text: collection.description.first)
589
- # Should not have Collection Descriptive metadata table
590
- expect(page).to have_content("Descriptions")
591
- # Should have search results / contents listing
592
- expect(page).to have_content(work1.title.first)
593
- expect(page).to have_content(work2.title.first)
594
- expect(page).not_to have_css(".pagination")
595
-
596
- click_link "Gallery"
597
- expect(page).to have_content(work1.title.first)
598
- expect(page).to have_content(work2.title.first)
599
- end
600
-
601
- it "hides collection descriptive metadata when searching a collection" do
602
- # URL: /dashboard/my/collections
603
- expect(page).to have_content(collection.title.first)
604
- within("#document_#{collection.id}") do
605
- click_link("Display all details of #{collection.title.first}")
606
- end
607
- # URL: /dashboard/collections/collection-id
608
- expect(page).to have_content(collection.title.first)
609
- expect(page).to have_content(collection.description.first)
610
- expect(page).to have_content(work1.title.first)
611
- expect(page).to have_content(work2.title.first)
612
- fill_in('collection_search', with: work1.title.first)
613
- click_button('collection_submit')
614
- # Should not have Collection metadata table (only title and description)
615
- expect(page).not_to have_content("Total works")
616
- expect(page).to have_content(collection.title.first)
617
- expect(page).to have_content(collection.description.first)
618
- # Should have search results / contents listing
619
- expect(page).to have_content("Search Results")
620
- expect(page).to have_content(work1.title.first)
621
- expect(page).not_to have_content(work2.title.first)
622
- end
623
-
624
- context 'adding existing works to a collection', js: true do
625
- before do
626
- collection1 # create collections by referencing them
627
- collection2
628
- sign_in user
629
- end
630
-
631
- it "preselects the collection we are adding works to and adds the selected works" do
632
- visit "/dashboard/collections/#{collection1.id}"
633
- click_link 'Add existing works'
634
- find('input#check_all').click
635
- click_button "Add to collection"
636
- expect(page).to have_selector "#member_of_collection_ids[value=\"#{collection1.id}\"]", visible: false
637
- expect(page).to have_selector "#member_of_collection_label[value=\"#{collection1.title.first}\"]"
638
-
639
- visit "/dashboard/collections/#{collection2.id}"
640
- click_link 'Add existing works'
641
- find('input#check_all').click
642
- click_button "Add to collection"
643
- expect(page).to have_selector "#member_of_collection_ids[value=\"#{collection2.id}\"]", visible: false
644
- expect(page).to have_selector "#member_of_collection_label[value=\"#{collection2.title.first}\"]"
645
-
646
- click_button "Save changes"
647
- expect(page).to have_content(work1.title.first)
648
- expect(page).to have_content(work2.title.first)
649
- end
650
- end
651
-
652
- context 'adding a new works to a collection', js: true do
653
- before do
654
- collection1 # create collections by referencing them
655
- collection2
656
- sign_in user
657
- # stub out characterization. Travis doesn't have fits installed, and it's not relevant to the test.
658
- allow(CharacterizeJob).to receive(:perform_later)
659
- end
660
-
661
- it "preselects the collection we are adding works to and adds the new work" do
662
- visit "/dashboard/collections/#{collection1.id}"
663
- click_link 'Deposit new work through this collection'
664
- choose "payload_concern", option: "GenericWork"
665
- click_button 'Create work'
666
-
667
- # verify the collection is pre-selected
668
- click_link "Relationships" # switch tab
669
- expect(page).to have_selector("table tr", text: collection1.title.first)
670
- expect(page).not_to have_selector("table tr", text: collection2.title.first)
671
-
672
- # add required file
673
- click_link "Files" # switch tab
674
- within('span#addfiles') do
675
- attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/image.jp2", visible: false)
676
- end
677
- # set required metadata
678
- click_link "Descriptions" # switch tab
679
- fill_in('Title', with: 'New Work for Collection')
680
- fill_in('Creator', with: 'Doe, Jane')
681
- fill_in('Keyword', with: 'testing')
682
- select('In Copyright', from: 'Rights statement')
683
- # check required acceptance
684
- check('agreement')
685
-
686
- click_on('Save')
687
-
688
- # verify new work was added to collection1
689
- visit "/dashboard/collections/#{collection1.id}"
690
- expect(page).to have_content("New Work for Collection")
691
- end
692
- end
693
- end
694
-
695
- # TODO: this is just like the block above. Merge them.
696
- describe 'show pages of a collection' do
697
- before do
698
- docs = (0..12).map do |n|
699
- { "has_model_ssim" => ["GenericWork"], :id => "zs25x871q#{n}",
700
- "depositor_ssim" => [user.user_key],
701
- "suppressed_bsi" => false,
702
- "member_of_collection_ids_ssim" => [collection.id],
703
- "nesting_collection__parent_ids_ssim" => [collection.id],
704
- "edit_access_person_ssim" => [user.user_key] }
705
- end
706
- ActiveFedora::SolrService.add(docs, commit: true)
707
-
708
- sign_in user
709
- end
710
- let(:collection) { create(:named_collection_lw, user: user, with_permission_template: true) }
711
-
712
- it "shows a collection with a listing of Descriptive Metadata and catalog-style search results" do
713
- visit '/dashboard/my/collections'
714
- expect(page).to have_content(collection.title.first)
715
- within('#document_' + collection.id) do
716
- # Now go to the collection show page
717
- click_link("Display all details of collection title")
718
- end
719
- expect(page).to have_css(".pagination")
720
- end
721
- end
722
-
723
- describe 'remove works from collection' do
724
- context 'user that can edit' do
725
- let!(:work2) { create(:work, title: ["King Louie"], member_of_collections: [collection1], user: user) }
726
- let!(:work1) { create(:work, title: ["King Kong"], member_of_collections: [collection1], user: user) }
727
-
728
- before do
729
- sign_in admin_user
730
- end
731
- # TODO: move this test to a view unit test (and solve the missing warden problem when using Ability in view tests)
732
- it 'shows remove action buttons' do
733
- visit "/dashboard/collections/#{collection1.id}"
734
- expect(page).to have_selector('input.collection-remove', count: 2)
735
- end
736
- it 'removes the first work from the list of items' do
737
- visit "/dashboard/collections/#{collection1.id}"
738
- expect(page).to have_selector('input.collection-remove', count: 2)
739
- page.all('input.collection-remove')[0].click
740
- expect(page).to have_selector('input.collection-remove', count: 1)
741
- # because works do not have order, you cannot guarentee that the first work added is the work getting deleted
742
- has_work1 = page.has_content? work1.title.first
743
- has_work2 = page.has_content? work2.title.first
744
- expect(has_work1 ^ has_work2).to be true
745
- end
746
- xit 'removes a sub-collection from the list of items (dependency on collection nesting)' do
747
- end
748
- end
749
- context 'user that cannot edit' do
750
- let!(:work1) { create(:work, title: ["King Louie"], member_of_collections: [collection3], user: user) }
751
- let!(:work2) { create(:work, title: ["King Kong"], member_of_collections: [collection3], user: user) }
752
-
753
- before do
754
- sign_in user
755
- end
756
- # TODO: move this test to a view unit test (and solve the missing warden problem when using Ability in view tests)
757
- it 'does not show remove action buttons' do
758
- visit "/dashboard/collections/#{collection3.id}"
759
- expect(page).not_to have_selector 'input.collection-remove'
760
- end
761
- end
762
- end
763
-
764
- describe 'edit collection' do
765
- let(:collection) { build(:named_collection_lw, user: user, with_permission_template: true) }
766
- let!(:work1) { create(:work, title: ["King Louie"], member_of_collections: [collection], user: user) }
767
- let!(:work2) { create(:work, title: ["King Kong"], member_of_collections: [collection], user: user) }
768
-
769
- context 'from dashboard -> collections action menu' do
770
- before do
771
- create(:permission_template_access,
772
- :deposit,
773
- permission_template: collection1.permission_template,
774
- agent_type: 'user',
775
- agent_id: user.user_key)
776
-
777
- collection1
778
- sign_in user
779
- visit '/dashboard/my/collections'
780
- end
781
-
782
- it "edit denied because user does not have permissions" do
783
- # URL: /dashboard/my/collections
784
- expect(page).to have_content(collection1.title.first)
785
- within("#document_#{collection1.id}") do
786
- find('button.dropdown-toggle').click
787
- click_link('Edit collection')
788
- end
789
- expect(page).to have_content(collection1.title.first)
790
- end
791
- end
792
-
793
- context 'from dashboard -> collections action menu' do
794
- context 'for a collection' do
795
- before do
796
- sign_in user
797
- visit '/dashboard/my/collections'
798
- end
799
-
800
- it "edits and update collection metadata" do
801
- # URL: /dashboard/my/collections
802
- expect(page).to have_content(collection.title.first)
803
- within("#document_#{collection.id}") do
804
- find('button.dropdown-toggle').click
805
- click_link('Edit collection')
806
- end
807
- # URL: /dashboard/collections/collection-id/edit
808
- expect(page).to have_selector('h1', text: "Edit User Collection: #{collection.title.first}")
809
-
810
- expect(page).to have_field('collection_title', with: collection.title.first)
811
- expect(page).to have_field('collection_description', with: collection.description.first)
812
-
813
- new_title = "Altered Title"
814
- new_description = "Completely new Description text."
815
- creators = ["Dorje Trollo", "Vajrayogini"]
816
-
817
- fill_in('Title', with: new_title)
818
- fill_in('Abstract or Summary', with: new_description)
819
- fill_in('Creator', with: creators.first)
820
- within('.panel-footer') do
821
- click_button('Save changes')
822
- end
823
- # URL: /dashboard/collections/collection-id/edit
824
- expect(page).not_to have_field('collection_title', with: collection.title.first)
825
- expect(page).not_to have_field('collection_description', with: collection.description.first)
826
- expect(page).to have_field('collection_title', with: new_title)
827
- expect(page).to have_field('collection_description', with: new_description)
828
- expect(page).to have_field('collection_creator', with: creators.first)
829
- end
830
- end
831
-
832
- context 'for an admin set' do
833
- before do
834
- admin_user
835
- admin_set_a
836
- sign_in admin_user
837
- visit '/dashboard/my/collections'
838
- end
839
-
840
- it 'edits admin set', :js do
841
- # URL: /dashboard/my/collections
842
- expect(page).to have_content(admin_set_a.title.first)
843
- within("#document_#{admin_set_a.id}") do
844
- find('button.dropdown-toggle').click
845
- click_link('Edit collection')
846
- end
847
- # URL: /dashboard/collections/collection-id/edit
848
- expect(page).to have_selector('h1', text: "Edit Administrative Set: #{admin_set_a.title.first}")
849
- end
850
- end
851
- end
852
-
853
- context "edit view tabs" do
854
- before do
855
- sign_in user
856
- end
857
-
858
- context 'with brandable set' do
859
- let(:brandable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:brandable], with_permission_template: true).id }
860
- let(:not_brandable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:not_brandable], with_permission_template: true).id }
861
-
862
- it 'to true, it shows Branding tab' do
863
- visit "/dashboard/collections/#{brandable_collection_id}/edit"
864
- expect(page).to have_link('Branding', href: '#branding')
865
- end
866
-
867
- it 'to false, it hides Branding tab' do
868
- visit "/dashboard/collections/#{not_brandable_collection_id}/edit"
869
- expect(page).not_to have_link('Branding', href: '#branding')
870
- end
871
- end
872
-
873
- context 'with discoverable set' do
874
- let(:discoverable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:discoverable], with_permission_template: true).id }
875
- let(:not_discoverable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:not_discoverable], with_permission_template: true).id }
876
-
877
- it 'to true, it shows Discovery tab' do
878
- visit "/dashboard/collections/#{discoverable_collection_id}/edit"
879
- expect(page).to have_link('Discovery', href: '#discovery')
880
- end
881
-
882
- it 'to false, it hides Discovery tab' do
883
- visit "/dashboard/collections/#{not_discoverable_collection_id}/edit"
884
- expect(page).not_to have_link('Discovery', href: '#discovery')
885
- end
886
- end
887
-
888
- context 'with sharable set' do
889
- let(:sharable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:sharable], with_permission_template: true).id }
890
- let(:not_sharable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:not_sharable], with_permission_template: true).id }
891
-
892
- it 'to true, it shows Sharable tab' do
893
- visit "/dashboard/collections/#{sharable_collection_id}/edit"
894
- expect(page).to have_link('Sharing', href: '#sharing')
895
- end
896
-
897
- context "to true, limits available users", js: true do
898
- let(:user2) { create(:user) }
899
- it "to system users filted by select2" do
900
- visit "/dashboard/collections/#{sharable_collection_id}/edit"
901
- expect(page).to have_link('Sharing', href: '#sharing')
902
- click_link('Sharing')
903
- expect(page).to have_selector(".form-inline.add-users .select2-container")
904
- select_user(user2, 'Depositor')
905
- click_button('Save')
906
- click_link('Sharing')
907
- expect(page).to have_selector('td', text: user2.user_key)
908
- end
909
- end
910
-
911
- it 'to false, it hides Sharable tab' do
912
- visit "/dashboard/collections/#{not_sharable_collection_id}/edit"
913
- expect(page).not_to have_link('Sharing', href: '#sharing')
914
- end
915
- end
916
- end
917
- end
918
- end