curation_concerns 1.4.0 → 1.5.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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +2 -0
  4. data/Gemfile +4 -0
  5. data/Rakefile +2 -2
  6. data/app/actors/curation_concerns/actors/file_actor.rb +2 -3
  7. data/app/assets/javascripts/curation_concerns/file_manager.es6 +32 -1
  8. data/app/assets/javascripts/curation_concerns/file_manager/member.es6 +6 -0
  9. data/app/assets/stylesheets/curation_concerns/_positioning.scss +3 -2
  10. data/app/assets/stylesheets/curation_concerns/modules/file_manager.scss +14 -0
  11. data/app/controllers/concerns/curation_concerns/curation_concern_controller.rb +3 -3
  12. data/app/controllers/concerns/curation_concerns/single_use_links_controller_behavior.rb +2 -2
  13. data/app/indexers/curation_concerns/admin_set_indexer.rb +13 -0
  14. data/app/indexers/curation_concerns/file_set_indexer.rb +5 -0
  15. data/app/indexers/curation_concerns/work_indexer.rb +3 -0
  16. data/app/models/admin_set.rb +3 -0
  17. data/app/models/concerns/curation_concerns/admin_set_behavior.rb +29 -0
  18. data/app/models/concerns/curation_concerns/file_set/characterization.rb +2 -1
  19. data/app/models/concerns/curation_concerns/in_admin_set.rb +9 -0
  20. data/app/models/concerns/curation_concerns/publishable.rb +19 -0
  21. data/app/models/concerns/curation_concerns/solr_behavior/characterization.rb +106 -0
  22. data/app/models/concerns/curation_concerns/solr_document_behavior.rb +5 -0
  23. data/app/models/concerns/curation_concerns/work_behavior.rb +2 -0
  24. data/app/models/curation_concerns/state_workflow.rb +13 -0
  25. data/app/models/vocab/fedora_resource_status.rb +6 -0
  26. data/app/presenters/curation_concerns/characterization_behavior.rb +84 -0
  27. data/app/presenters/curation_concerns/file_set_presenter.rb +1 -0
  28. data/app/presenters/curation_concerns/work_show_presenter.rb +1 -1
  29. data/app/search_builders/curation_concerns/admin_set_search_builder.rb +22 -0
  30. data/app/services/curation_concerns/admin_set_service.rb +26 -0
  31. data/app/services/curation_concerns/indexes_thumbnails.rb +1 -0
  32. data/app/services/curation_concerns/license_service.rb +8 -0
  33. data/app/services/curation_concerns/qa_select_service.rb +33 -0
  34. data/app/services/curation_concerns/rights_statements.rb +8 -0
  35. data/app/services/rights_service.rb +9 -2
  36. data/app/views/collections/_button_create_collection.html.erb +1 -1
  37. data/app/views/collections/_button_for_update_collection.html.erb +1 -1
  38. data/app/views/curation_concerns/base/_file_manager_actions.html.erb +1 -0
  39. data/app/views/curation_concerns/base/_file_manager_member.html.erb +24 -23
  40. data/app/views/curation_concerns/base/_file_manager_member_resource_options.html.erb +6 -0
  41. data/app/views/curation_concerns/base/_file_manager_resource_form.html.erb +5 -0
  42. data/app/views/curation_concerns/base/_form_rights.html.erb +1 -1
  43. data/app/views/curation_concerns/file_sets/media_display/_default.html.erb +18 -9
  44. data/app/views/curation_concerns/file_sets/media_display/_image.html.erb +18 -13
  45. data/app/views/curation_concerns/file_sets/media_display/_office_document.html.erb +18 -13
  46. data/app/views/curation_concerns/file_sets/media_display/_pdf.html.erb +18 -13
  47. data/config/locales/curation_concerns.en.yml +6 -0
  48. data/curation_concerns.gemspec +2 -2
  49. data/lib/curation_concerns/version.rb +1 -1
  50. data/lib/generators/curation_concerns/install_generator.rb +6 -9
  51. data/lib/generators/curation_concerns/templates/config/authorities/{rights.yml → licenses.yml} +0 -0
  52. data/lib/generators/curation_concerns/templates/config/authorities/rights_statements.yml +37 -0
  53. data/spec/abilities/admin_set_abilities_spec.rb +15 -0
  54. data/spec/actors/curation_concerns/file_actor_spec.rb +1 -2
  55. data/spec/controllers/catalog_controller_spec.rb +9 -11
  56. data/spec/controllers/curation_concerns/classify_concerns_controller_spec.rb +2 -2
  57. data/spec/controllers/curation_concerns/collections_controller_spec.rb +39 -33
  58. data/spec/controllers/curation_concerns/file_sets_controller_json_spec.rb +10 -10
  59. data/spec/controllers/curation_concerns/file_sets_controller_spec.rb +54 -35
  60. data/spec/controllers/curation_concerns/generic_works_controller_json_spec.rb +6 -6
  61. data/spec/controllers/curation_concerns/generic_works_controller_spec.rb +30 -35
  62. data/spec/controllers/curation_concerns/operations_controller_spec.rb +2 -2
  63. data/spec/controllers/curation_concerns/permissions_controller_spec.rb +2 -2
  64. data/spec/controllers/curation_concerns/single_use_links_controller_spec.rb +10 -10
  65. data/spec/controllers/curation_concerns/single_use_links_viewer_controller_spec.rb +7 -12
  66. data/spec/controllers/downloads_controller_spec.rb +15 -19
  67. data/spec/controllers/embargoes_controller_spec.rb +6 -6
  68. data/spec/controllers/leases_controller_spec.rb +6 -6
  69. data/spec/factories/admin_sets.rb +9 -0
  70. data/spec/indexers/file_set_indexer_spec.rb +11 -2
  71. data/spec/indexers/work_indexer_spec.rb +41 -20
  72. data/spec/models/admin_set_spec.rb +78 -0
  73. data/spec/models/curation_concerns/file_set/characterization_spec.rb +1 -1
  74. data/spec/models/file_set_spec.rb +4 -1
  75. data/spec/models/generic_work_spec.rb +24 -1
  76. data/spec/models/solr_document_spec.rb +30 -0
  77. data/spec/presenters/curation_concerns/file_set_presenter_spec.rb +131 -6
  78. data/spec/renderers/curation_concerns/renderers/attribute_renderer_spec.rb +1 -4
  79. data/spec/search_builders/curation_concerns/admin_set_search_builder_spec.rb +17 -0
  80. data/spec/services/curation_concerns/admin_set_service_spec.rb +37 -0
  81. data/spec/services/curation_concerns/license_service_spec.rb +36 -0
  82. data/spec/services/curation_concerns/rights_statements_spec.rb +11 -0
  83. data/spec/services/rights_service_spec.rb +2 -0
  84. data/spec/spec_helper.rb +44 -0
  85. data/spec/support/backport_test.rb +14 -0
  86. data/spec/support/curation_concerns/factory_helpers.rb +3 -1
  87. data/spec/test_app_templates/Gemfile.extra +0 -2
  88. data/spec/views/curation_concerns/base/file_manager.html.erb_spec.rb +13 -1
  89. data/spec/views/curation_concerns/file_sets/show.html.erb_spec.rb +8 -8
  90. metadata +40 -7
@@ -1,16 +1,21 @@
1
1
  <% if CurationConcerns.config.display_media_download_link %>
2
- <%= link_to main_app.download_path(file_set), target: "_new", title: "Download the document" do %>
3
- <figure>
4
- <%= image_tag thumbnail_url(file_set),
5
- class: "img-responsive",
6
- alt: "Download the document #{file_set.to_s}" %>
7
- <figcaption>Download the document</figcaption>
8
- </figure>
9
- <% end %>
2
+ <div>
3
+ <h2 class="sr-only"><%= t('curation_concerns.show.downloadable_content.heading') %></h2>
4
+ <%= image_tag thumbnail_url(file_set),
5
+ class: "representative-media",
6
+ alt: "",
7
+ role: "presentation" %>
8
+ <%= link_to main_app.download_path(file_set),
9
+ target: "_new",
10
+ class: "btn btn-default" do %>
11
+ <%= t('curation_concerns.show.downloadable_content.office_link') %>
12
+ <% end %>
13
+ </div>
10
14
  <% else %>
11
- <figure>
12
- <%= image_tag thumbnail_url(file_set),
13
- class: "img-responsive",
14
- alt: "Thumbnail of #{file_set.to_s}" %>
15
- </figure>
15
+ <div>
16
+ <%= image_tag thumbnail_url(file_set),
17
+ class: "representative-media",
18
+ alt: "",
19
+ role: "presentation" %>
20
+ </div>
16
21
  <% end %>
@@ -1,16 +1,21 @@
1
1
  <% if CurationConcerns.config.display_media_download_link %>
2
- <%= link_to main_app.download_path(file_set), target: "_new", title: "Download the full-sized PDF" do %>
3
- <figure>
4
- <%= image_tag thumbnail_url(file_set),
5
- class: "img-responsive",
6
- alt: "Download the full-sized PDF of #{file_set.to_s}" %>
7
- <figcaption>Download the full-sized PDF</figcaption>
8
- </figure>
9
- <% end %>
2
+ <div>
3
+ <h2 class="sr-only"><%= t('curation_concerns.show.downloadable_content.heading') %></h2>
4
+ <%= image_tag thumbnail_url(file_set),
5
+ class: "representative-media",
6
+ alt: "",
7
+ role: "presentation" %>
8
+ <%= link_to main_app.download_path(file_set),
9
+ target: "_new",
10
+ class: "btn btn-default" do %>
11
+ <%= t('curation_concerns.show.downloadable_content.pdf_link') %>
12
+ <% end %>
13
+ </div>
10
14
  <% else %>
11
- <figure>
12
- <%= image_tag thumbnail_url(file_set),
13
- class: "img-responsive",
14
- alt: "Thumbnail of #{file_set.to_s}" %>
15
- </figure>
15
+ <div>
16
+ <%= image_tag thumbnail_url(file_set),
17
+ class: "representative-media",
18
+ alt: "",
19
+ role: "presentation" %>
20
+ </div>
16
21
  <% end %>
@@ -16,6 +16,12 @@ en:
16
16
  show:
17
17
  related_files:
18
18
  heading: 'Members'
19
+ downloadable_content:
20
+ heading: 'Downloadable Content'
21
+ default_link: 'Download file'
22
+ image_link: 'Download image'
23
+ office_link: 'Download file'
24
+ pdf_link: 'Download PDF'
19
25
  search:
20
26
  form:
21
27
  q:
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency 'hydra-head', '>= 10.0.0', '< 11'
22
- spec.add_dependency 'active-fedora', '>= 11.0.0.rc6'
22
+ spec.add_dependency 'active-fedora', '>= 10.3.0.rc1'
23
23
  spec.add_dependency 'blacklight', '~> 6.3'
24
- spec.add_dependency 'breadcrumbs_on_rails', '>= 2.3', '< 4'
24
+ spec.add_dependency 'breadcrumbs_on_rails', '>= 3.0.1', '< 4'
25
25
  spec.add_dependency 'jquery-ui-rails'
26
26
  spec.add_dependency 'simple_form', '~> 3.1'
27
27
  spec.add_dependency 'hydra-editor', '>= 2', '< 4'
@@ -1,3 +1,3 @@
1
1
  module CurationConcerns
2
- VERSION = '1.4.0'.freeze
2
+ VERSION = '1.5.0'.freeze
3
3
  end
@@ -15,9 +15,8 @@ module CurationConcerns
15
15
  5. Adds CurationConcerns abilities into the Ability class
16
16
  6. Copies the catalog controller into the local app
17
17
  7. Adds CurationConcerns::SolrDocumentBehavior to app/models/solr_document.rb
18
- 8. Adds config/authorities/rights.yml to the application
19
- 9. Adds config/authorities/resource_types.yml to the application
20
- 10. Copies modified simple_form initializers
18
+ 8. Adds local authority files to the application
19
+ 9. Copies modified simple_form initializers
21
20
  '
22
21
 
23
22
  def run_required_generators
@@ -93,12 +92,10 @@ module CurationConcerns
93
92
  copy_file 'curation_concerns_helper.rb', 'app/helpers/curation_concerns_helper.rb'
94
93
  end
95
94
 
96
- def rights_config
97
- copy_file "config/authorities/rights.yml", "config/authorities/rights.yml"
98
- end
99
-
100
- def resource_types_config
101
- copy_file "config/authorities/resource_types.yml", "config/authorities/resource_types.yml"
95
+ def local_authorities
96
+ copy_file "config/authorities/licenses.yml"
97
+ copy_file "config/authorities/rights_statements.yml"
98
+ copy_file "config/authorities/resource_types.yml"
102
99
  end
103
100
 
104
101
  def simple_form_initializers
@@ -0,0 +1,37 @@
1
+ terms:
2
+ - id: http://rightsstatements.org/vocab/InC/1.0/
3
+ term: "In Copyright"
4
+ active: true
5
+ - id: http://rightsstatements.org/vocab/InC-OW-EU/1.0/
6
+ term: "In Copyright - EU Orphan Work"
7
+ active: true
8
+ - id: http://rightsstatements.org/vocab/InC-EDU/1.0/
9
+ term: "In Copyright - Educational Use Permitted"
10
+ active: true
11
+ - id: http://rightsstatements.org/vocab/InC-NC/1.0/
12
+ term: "In Copyright - Non-Commercial Use Permitted"
13
+ active: true
14
+ - id: http://rightsstatements.org/vocab/InC-RUU/1.0/
15
+ term: "In Copyright - Rights-holder(s) Unlocatable or Unidentifiable"
16
+ active: true
17
+ - id: http://rightsstatements.org/vocab/NoC-CR/1.0/
18
+ term: "No Copyright - Contractual Restrictions"
19
+ active: true
20
+ - id: http://rightsstatements.org/vocab/NoC-NC/1.0/
21
+ term: "No Copyright - Non-Commercial Use Only "
22
+ active: true
23
+ - id: http://rightsstatements.org/vocab/NoC-OKLR/1.0/
24
+ term: "No Copyright - Other Known Legal Restrictions"
25
+ active: true
26
+ - id: http://rightsstatements.org/vocab/NoC-US/1.0/
27
+ term: "No Copyright - United States"
28
+ active: true
29
+ - id: http://rightsstatements.org/vocab/CNE/1.0/
30
+ term: "Copyright Not Evaluated"
31
+ active: true
32
+ - id: http://rightsstatements.org/vocab/UND/1.0/
33
+ term: "Copyright Undetermined"
34
+ active: true
35
+ - id: http://rightsstatements.org/vocab/NKC/1.0/
36
+ term: "No Known Copyright"
37
+ active: true
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+ require 'cancan/matchers'
3
+
4
+ describe 'User Abilities' do
5
+ subject { ability }
6
+ let(:ability) { Ability.new(current_user) }
7
+ let(:user) { create(:user) }
8
+ let(:current_user) { user }
9
+ let(:admin_set) { create(:admin_set, edit_users: [user]) }
10
+
11
+ it "allows the edit_users to edit and read" do
12
+ is_expected.to be_able_to(:read, admin_set)
13
+ is_expected.to be_able_to(:edit, admin_set)
14
+ end
15
+ end
@@ -30,8 +30,7 @@ describe CurationConcerns::Actors::FileActor do
30
30
 
31
31
  it 'reverts to a previous version of a file' do
32
32
  expect(CurationConcerns::VersioningService).to receive(:create).with(previous_version, user)
33
- expect(CurationConcerns::WorkingDirectory).to receive(:copy_repository_resource_to_working_directory).with(previous_version, file_set.id).and_return(file_path)
34
- expect(CharacterizeJob).to receive(:perform_later).with(file_set, file_path)
33
+ expect(CharacterizeJob).to receive(:perform_later).with(file_set, previous_version.id)
35
34
  actor.revert_to(revision_id)
36
35
  end
37
36
  end
@@ -35,18 +35,16 @@ describe CatalogController do
35
35
 
36
36
  context 'Searching all works' do
37
37
  it 'returns all the works' do
38
- get 'index', 'f' => { 'generic_type_sim' => 'Work' }
38
+ get 'index', params: { 'f' => { 'generic_type_sim' => 'Work' } }
39
39
  expect(response).to be_successful
40
40
  expect(assigns(:document_list).count).to eq 2
41
- [work1.id, work2.id].each do |work_id|
42
- expect(assigns(:document_list).map(&:id)).to include(work_id)
43
- end
41
+ expect(assigns(:document_list).map(&:id)).to include(work1.id, work2.id)
44
42
  end
45
43
  end
46
44
 
47
45
  context 'Searching all collections' do
48
46
  it 'returns all the works' do
49
- get 'index', 'f' => { 'generic_type_sim' => 'Collection' }
47
+ get 'index', params: { 'f' => { 'generic_type_sim' => 'Collection' } }
50
48
  expect(response).to be_successful
51
49
  expect(assigns(:document_list).map(&:id)).to eq [collection.id]
52
50
  end
@@ -54,7 +52,7 @@ describe CatalogController do
54
52
 
55
53
  context 'searching just my works' do
56
54
  it 'returns just my works' do
57
- get 'index', works: 'mine', 'f' => { 'generic_type_sim' => 'Work' }
55
+ get 'index', params: { works: 'mine', 'f' => { 'generic_type_sim' => 'Work' } }
58
56
  expect(response).to be_successful
59
57
  expect(assigns(:document_list).map(&:id)).to eq [work1.id]
60
58
  end
@@ -62,7 +60,7 @@ describe CatalogController do
62
60
 
63
61
  context 'searching for one kind of work' do
64
62
  it 'returns just the specified type' do
65
- get 'index', 'f' => { 'human_readable_type_sim' => 'Generic Work' }
63
+ get 'index', params: { 'f' => { 'human_readable_type_sim' => 'Generic Work' } }
66
64
  expect(response).to be_successful
67
65
  expect(assigns(:document_list).map(&:id)).to include(work1.id, work2.id)
68
66
  end
@@ -72,7 +70,7 @@ describe CatalogController do
72
70
  let!(:work) { FactoryGirl.create(:generic_work, user: user, title: ["All my #{srand}"]) }
73
71
  render_views
74
72
  it 'returns json' do
75
- xhr :get, :index, format: :json, q: work.title.first
73
+ get :index, xhr: true, params: { format: :json, q: work.title.first }
76
74
  json = JSON.parse(response.body)
77
75
  # Grab the doc corresponding to work and inspect the json
78
76
  work_json = json['docs'].first
@@ -95,17 +93,17 @@ describe CatalogController do
95
93
 
96
94
  context 'searching all works' do
97
95
  it "returns other users' private works" do
98
- get 'index', 'f' => { 'generic_type_sim' => 'Work' }
96
+ get 'index', params: { 'f' => { 'generic_type_sim' => 'Work' } }
99
97
  expect(response).to be_successful
100
98
  expect(assigns(:document_list).map(&:id)).to include(work1.id)
101
99
  end
102
100
  it "returns other users' embargoed works" do
103
- get 'index', 'f' => { 'generic_type_sim' => 'Work' }
101
+ get 'index', params: { 'f' => { 'generic_type_sim' => 'Work' } }
104
102
  expect(response).to be_successful
105
103
  expect(assigns(:document_list).map(&:id)).to include(work2.id)
106
104
  end
107
105
  it "returns other users' private collections" do
108
- get 'index', 'f' => { 'generic_type_sim' => 'Collection' }
106
+ get 'index', params: { 'f' => { 'generic_type_sim' => 'Collection' } }
109
107
  expect(response).to be_successful
110
108
  expect(assigns(:document_list).map(&:id)).to include(collection.id)
111
109
  end
@@ -19,7 +19,7 @@ describe CurationConcerns::ClassifyConcernsController do
19
19
  describe '#create' do
20
20
  context 'without logging in' do
21
21
  it 'redirect to login page if user is not logged in' do
22
- post :create, classify: { curation_concern_type: 'GenericWork' }
22
+ post :create, params: { classify: { curation_concern_type: 'GenericWork' } }
23
23
  expect(response).to redirect_to(main_app.user_session_path)
24
24
  end
25
25
  end
@@ -34,7 +34,7 @@ describe CurationConcerns::ClassifyConcernsController do
34
34
  let(:new_curation_concern_generic_work_path) { '/stub/path' }
35
35
 
36
36
  it 'requires authentication' do
37
- post :create, classify_concern: { curation_concern_type: 'GenericWork' }
37
+ post :create, params: { classify_concern: { curation_concern_type: 'GenericWork' } }
38
38
  expect(response).to redirect_to(main_app.new_curation_concerns_generic_work_path)
39
39
  end
40
40
  end
@@ -25,9 +25,7 @@ describe CollectionsController do
25
25
  let(:collection) { create(:collection, title: ['Collection Title'], user: user) }
26
26
 
27
27
  describe '#new' do
28
- before do
29
- sign_in user
30
- end
28
+ before { sign_in user }
31
29
 
32
30
  it 'assigns @collection' do
33
31
  get :new
@@ -36,20 +34,18 @@ describe CollectionsController do
36
34
  end
37
35
 
38
36
  describe '#create' do
39
- before do
40
- sign_in user
41
- end
37
+ before { sign_in user }
42
38
 
43
39
  it 'creates a Collection' do
44
40
  expect do
45
- post :create, collection: collection_attrs.merge(visibility: 'open')
41
+ post :create, params: { collection: collection_attrs.merge(visibility: 'open') }
46
42
  end.to change { Collection.count }.by(1)
47
43
  expect(assigns[:collection].visibility).to eq 'open'
48
44
  end
49
45
 
50
46
  it 'removes blank strings from params before creating Collection' do
51
47
  expect do
52
- post :create, collection: collection_attrs.merge(creator: [''])
48
+ post :create, params: { collection: collection_attrs.merge(creator: ['']) }
53
49
  end.to change { Collection.count }.by(1)
54
50
  expect(assigns[:collection].title).to eq ['My First Collection']
55
51
  expect(assigns[:collection].creator).to eq([])
@@ -58,8 +54,9 @@ describe CollectionsController do
58
54
  it 'creates a Collection with files I can access' do
59
55
  [asset1, asset2].map(&:save) # bogus_depositor_asset is already saved
60
56
  expect do
61
- post :create, collection: collection_attrs,
62
- batch_document_ids: [asset1.id, asset2.id, bogus_depositor_asset.id]
57
+ post :create, params: { collection: collection_attrs,
58
+ batch_document_ids: [asset1.id, asset2.id, bogus_depositor_asset.id]
59
+ }
63
60
  end.to change { Collection.count }.by(1)
64
61
  collection = assigns(:collection)
65
62
  expect(collection.members).to match_array [asset1, asset2]
@@ -67,7 +64,7 @@ describe CollectionsController do
67
64
 
68
65
  it 'adds docs to the collection if a batch id is provided and add the collection id to the documents in the collection' do
69
66
  asset1.save
70
- post :create, batch_document_ids: [asset1.id], collection: collection_attrs
67
+ post :create, params: { batch_document_ids: [asset1.id], collection: collection_attrs }
71
68
  expect(assigns[:collection].members).to eq [asset1]
72
69
 
73
70
  asset_results = ActiveFedora::SolrService.instance.conn.get 'select', params: { fq: ["id:\"#{asset1.id}\""], fl: ['id'] }
@@ -106,9 +103,10 @@ describe CollectionsController do
106
103
  xit 'appends members to the collection in order, allowing duplicates' do
107
104
  # TODO: Using size until count is fixed https://github.com/projecthydra-labs/activefedora-aggregation/issues/78
108
105
  expect {
109
- put :update, id: collection,
110
- collection: { members: 'add' },
111
- batch_document_ids: [asset2.id, asset1.id]
106
+ put :update, params: { id: collection,
107
+ collection: { members: 'add' },
108
+ batch_document_ids: [asset2.id, asset1.id]
109
+ }
112
110
  }.to change { collection.reload.members.size }.by(2)
113
111
  expect(response).to redirect_to routes.url_helpers.collection_path(collection)
114
112
  expect(assigns[:collection].members).to eq [asset1, asset2, asset2, asset1]
@@ -122,9 +120,10 @@ describe CollectionsController do
122
120
 
123
121
  it "adds members to the collection" do
124
122
  expect {
125
- put :update, id: collection,
126
- collection: { members: 'add' },
127
- batch_document_ids: [asset4.id]
123
+ put :update, params: { id: collection,
124
+ collection: { members: 'add' },
125
+ batch_document_ids: [asset4.id]
126
+ }
128
127
  }.to change { collection.reload.members.size }.by(1)
129
128
  expect(response).to redirect_to routes.url_helpers.collection_path(collection)
130
129
  expect(assigns[:collection].members).to match_array [asset1, asset2, asset4]
@@ -139,9 +138,10 @@ describe CollectionsController do
139
138
  it "removes members from the collection" do
140
139
  # TODO: Using size until count is fixed https://github.com/projecthydra-labs/activefedora-aggregation/issues/78
141
140
  expect {
142
- put :update, id: collection,
143
- collection: { members: 'remove' },
144
- batch_document_ids: [asset2]
141
+ put :update, params: { id: collection,
142
+ collection: { members: 'remove' },
143
+ batch_document_ids: [asset2]
144
+ }
145
145
  }.to change { collection.reload.members.size }.by(-1)
146
146
  asset_results = ActiveFedora::SolrService.instance.conn.get 'select', params: { fq: ["id:\"#{asset2.id}\""], fl: ['id'] }
147
147
  expect(asset_results['response']['numFound']).to eq 1
@@ -155,19 +155,24 @@ describe CollectionsController do
155
155
  let(:asset1) { create(:generic_work, user: user) }
156
156
  let(:asset2) { create(:generic_work, user: user) }
157
157
  let(:asset3) { create(:generic_work, user: user) }
158
- before do
159
- collection.members = [asset1, asset2, asset3]
160
- collection.save!
161
- end
162
158
  let(:collection2) do
163
159
  Collection.create(title: ['Some Collection']) do |col|
164
160
  col.apply_depositor_metadata(user.user_key)
165
161
  end
166
162
  end
163
+ before do
164
+ collection.members = [asset1, asset2, asset3]
165
+ collection.save!
166
+ end
167
167
 
168
168
  it 'moves the members' do
169
- put :update, id: collection, collection: { members: 'move' },
170
- destination_collection_id: collection2, batch_document_ids: [asset2, asset3]
169
+ put :update,
170
+ params: {
171
+ id: collection,
172
+ collection: { members: 'move' },
173
+ destination_collection_id: collection2,
174
+ batch_document_ids: [asset2, asset3]
175
+ }
171
176
  expect(collection.reload.members).to eq [asset1]
172
177
  expect(collection2.reload.members).to match_array [asset2, asset3]
173
178
  end
@@ -175,14 +180,14 @@ describe CollectionsController do
175
180
 
176
181
  context 'updating a collections metadata' do
177
182
  it 'saves the metadata' do
178
- put :update, id: collection, collection: { creator: ['Emily'], visibility: 'open' }
183
+ put :update, params: { id: collection, collection: { creator: ['Emily'], visibility: 'open' } }
179
184
  collection.reload
180
185
  expect(collection.creator).to eq ['Emily']
181
186
  expect(collection.visibility).to eq 'open'
182
187
  end
183
188
 
184
189
  it 'removes blank strings from params before updating Collection metadata' do
185
- put :update, id: collection, collection: collection_attrs.merge(creator: [''])
190
+ put :update, params: { id: collection, collection: collection_attrs.merge(creator: ['']) }
186
191
  expect(assigns[:collection].title).to eq ['My First Collection']
187
192
  expect(assigns[:collection].creator).to eq([])
188
193
  end
@@ -202,7 +207,7 @@ describe CollectionsController do
202
207
  end
203
208
 
204
209
  it 'returns the collection and its members' do
205
- get :show, id: collection
210
+ get :show, params: { id: collection }
206
211
  expect(response).to be_successful
207
212
  expect(assigns[:presenter]).to be_kind_of CurationConcerns::CollectionPresenter
208
213
  expect(assigns[:presenter].to_s).to eq 'Collection Title'
@@ -211,15 +216,16 @@ describe CollectionsController do
211
216
 
212
217
  context 'when the q parameter is passed' do
213
218
  it 'loads the collection (paying no attention to the q param)' do
214
- get :show, id: collection, q: 'no matches'
219
+ get :show, params: { id: collection, q: 'no matches' }
215
220
  expect(response).to be_successful
216
221
  expect(assigns[:presenter]).to be_kind_of CurationConcerns::CollectionPresenter
217
222
  expect(assigns[:presenter].to_s).to eq 'Collection Title'
218
223
  end
219
224
  end
225
+
220
226
  context 'when the page parameter is passed' do
221
227
  it 'loads the collection (paying no attention to the page param)' do
222
- get :show, id: collection, page: '2'
228
+ get :show, params: { id: collection, page: '2' }
223
229
  expect(response).to be_successful
224
230
  expect(assigns[:presenter]).to be_kind_of CurationConcerns::CollectionPresenter
225
231
  expect(assigns[:presenter].to_s).to eq 'Collection Title'
@@ -233,7 +239,7 @@ describe CollectionsController do
233
239
  collection.save
234
240
  end
235
241
  it 'forces me to log in' do
236
- get :show, id: collection
242
+ get :show, params: { id: collection }
237
243
  expect(response).to redirect_to(main_app.new_user_session_path)
238
244
  end
239
245
  end
@@ -243,7 +249,7 @@ describe CollectionsController do
243
249
  before { sign_in user }
244
250
 
245
251
  it 'does not show flash' do
246
- get :edit, id: collection
252
+ get :edit, params: { id: collection }
247
253
  expect(flash[:notice]).to be_nil
248
254
  end
249
255
  end