curation_concerns 1.5.0 → 1.6.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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/Gemfile +0 -4
  4. data/app/actors/curation_concerns/actors/file_actor.rb +19 -3
  5. data/app/assets/javascripts/curation_concerns/curation_concerns.js +1 -0
  6. data/app/assets/javascripts/curation_concerns/file_manager/sorting.es6 +44 -5
  7. data/app/assets/javascripts/curation_concerns/file_manager.es6 +9 -2
  8. data/app/controllers/concerns/curation_concerns/collections_controller_behavior.rb +57 -18
  9. data/app/controllers/concerns/curation_concerns/permissions_controller_behavior.rb +23 -0
  10. data/app/controllers/concerns/curation_concerns/selects_collections.rb +2 -0
  11. data/app/controllers/curation_concerns/permissions_controller.rb +1 -16
  12. data/app/forms/curation_concerns/forms/work_form.rb +0 -7
  13. data/app/helpers/batch_select_helper.rb +0 -15
  14. data/app/helpers/curation_concerns/collections_helper.rb +40 -6
  15. data/app/helpers/curation_concerns/main_app_helpers.rb +0 -2
  16. data/app/jobs/characterize_job.rb +5 -3
  17. data/app/jobs/create_derivatives_job.rb +3 -2
  18. data/app/jobs/ingest_file_job.rb +16 -16
  19. data/app/models/concerns/curation_concerns/admin_set_behavior.rb +5 -0
  20. data/app/models/concerns/curation_concerns/basic_metadata.rb +8 -0
  21. data/app/models/concerns/curation_concerns/collection_behavior.rb +2 -3
  22. data/app/models/concerns/curation_concerns/serializers.rb +2 -2
  23. data/app/models/concerns/curation_concerns/solr_document_behavior.rb +3 -2
  24. data/app/models/concerns/curation_concerns/work_behavior.rb +1 -1
  25. data/app/presenters/curation_concerns/work_show_presenter.rb +2 -1
  26. data/app/renderers/curation_concerns/renderers/external_link_attribute_renderer.rb +13 -0
  27. data/app/renderers/{renderers.rb → curation_concerns/renderers.rb} +0 -0
  28. data/app/search_builders/curation_concerns/admin_set_search_builder.rb +3 -3
  29. data/app/search_builders/curation_concerns/collection_search_builder.rb +6 -4
  30. data/app/search_builders/curation_concerns/file_set_search_builder.rb +3 -3
  31. data/app/search_builders/curation_concerns/filter_by_type.rb +17 -5
  32. data/app/search_builders/curation_concerns/member_search_builder.rb +7 -3
  33. data/app/search_builders/curation_concerns/single_result.rb +1 -1
  34. data/app/services/curation_concerns/admin_set_service.rb +6 -8
  35. data/app/services/curation_concerns/indexes_thumbnails.rb +0 -1
  36. data/app/services/curation_concerns/license_service.rb +8 -0
  37. data/app/services/curation_concerns/working_directory.rb +4 -2
  38. data/app/views/collections/_search_form.html.erb +2 -2
  39. data/app/views/curation_concerns/base/_file_manager_actions.html.erb +1 -0
  40. data/app/views/curation_concerns/base/_file_manager_member_resource_options.html.erb +4 -0
  41. data/app/views/curation_concerns/base/_file_manager_resource_form.html.erb +1 -0
  42. data/app/views/curation_concerns/base/_form_rights.html.erb +3 -2
  43. data/config/locales/curation_concerns.en.yml +4 -0
  44. data/curation_concerns.gemspec +3 -3
  45. data/lib/curation_concerns/version.rb +1 -1
  46. data/lib/generators/curation_concerns/models_generator.rb +8 -0
  47. data/lib/generators/curation_concerns/templates/spec/models/collection_spec.rb +7 -0
  48. data/lib/generators/curation_concerns/templates/spec/models/file_set_spec.rb +7 -0
  49. data/spec/actors/curation_concerns/file_actor_spec.rb +17 -3
  50. data/spec/actors/curation_concerns/file_set_actor_spec.rb +34 -8
  51. data/spec/controllers/curation_concerns/collections_controller_spec.rb +3 -4
  52. data/spec/controllers/selects_collections_controller_spec.rb +7 -2
  53. data/spec/factories/generic_works.rb +3 -1
  54. data/spec/features/collection_spec.rb +2 -0
  55. data/spec/helpers/curation_concerns/collections_helper_spec.rb +87 -3
  56. data/spec/indexers/file_set_indexer_spec.rb +3 -0
  57. data/spec/indexers/work_indexer_spec.rb +2 -1
  58. data/spec/javascripts/file_manager_member_spec.coffee +2 -1
  59. data/spec/javascripts/file_manager_sorting_spec.coffee +23 -0
  60. data/spec/javascripts/fixtures/sortable.html +182 -0
  61. data/spec/javascripts/save_manager_spec.coffee +2 -1
  62. data/spec/jobs/characterize_job_spec.rb +18 -1
  63. data/spec/jobs/ingest_file_job_spec.rb +18 -13
  64. data/spec/models/admin_set_spec.rb +5 -3
  65. data/spec/models/file_set_spec.rb +2 -4
  66. data/spec/models/solr_document_spec.rb +17 -3
  67. data/spec/presenters/curation_concerns/collection_presenter_spec.rb +5 -0
  68. data/spec/renderers/curation_concerns/renderers/external_link_attribute_renderer_spec.rb +22 -0
  69. data/spec/search_builders/curation_concerns/admin_set_search_builder_spec.rb +8 -5
  70. data/spec/search_builders/curation_concerns/file_set_search_builder_spec.rb +2 -2
  71. data/spec/services/curation_concerns/admin_set_service_spec.rb +53 -22
  72. data/spec/spec_helper.rb +1 -2
  73. data/spec/test_app_templates/Gemfile.extra +4 -0
  74. data/spec/views/curation_concerns/base/_attributes.html.erb_spec.rb +10 -4
  75. data/spec/views/curation_concerns/base/file_manager.html.erb_spec.rb +8 -0
  76. data/spec/views/curation_concerns/base/show.json.jbuilder_spec.rb +1 -1
  77. data/spec/views/curation_concerns/file_sets/show.json.jbuilder_spec.rb +1 -1
  78. metadata +19 -22
  79. data/app/helpers/collections_helper.rb +0 -4
  80. data/app/helpers/curation_concerns/collections_helper_behavior.rb +0 -41
  81. data/app/helpers/curation_concerns/permissions_helper.rb +0 -19
  82. data/app/helpers/curation_concerns/rights_helper.rb +0 -9
  83. data/app/models/collection.rb +0 -6
  84. data/spec/helpers/collections_helper_spec.rb +0 -88
@@ -95,4 +95,12 @@ RSpec.describe "curation_concerns/base/file_manager.html.erb" do
95
95
  it "renders a thumbnail field for each member" do
96
96
  expect(rendered).to have_selector("input[name='thumbnail_id']", count: members.length)
97
97
  end
98
+
99
+ it "renders a hidden field for the resource form representative id" do
100
+ expect(rendered).to have_selector("#resource-form input[type=hidden][name='generic_work[representative_id]']", visible: false)
101
+ end
102
+
103
+ it "renders a representative field for each member" do
104
+ expect(rendered).to have_selector("input[name='representative_id']", count: members.length)
105
+ end
98
106
  end
@@ -11,7 +11,7 @@ describe 'curation_concerns/base/show.json.jbuilder' do
11
11
  it "renders json of the curation_concern" do
12
12
  json = JSON.parse(rendered)
13
13
  expect(json['id']).to eq curation_concern.id
14
- expect(json['title']).to eq curation_concern.title
14
+ expect(json['title']).to match_array curation_concern.title
15
15
  expected_fields = curation_concern.class.fields.select { |f| ![:has_model, :create_date].include? f }
16
16
  expected_fields << :date_created
17
17
  expected_fields.each do |field_symbol|
@@ -13,7 +13,7 @@ describe 'curation_concerns/file_sets/show.json.jbuilder' do
13
13
  it "renders json of the curation_concern" do
14
14
  json = JSON.parse(rendered)
15
15
  expect(json['id']).to eq file_set.id
16
- expect(json['title']).to eq file_set.title
16
+ expect(json['title']).to match_array file_set.title
17
17
  expect(json).to have_key('label')
18
18
  expect(json).to have_key('description')
19
19
  expect(json).to have_key('creator')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: curation_concerns
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Zumwalt
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-08-26 00:00:00.000000000 Z
13
+ date: 2016-09-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hydra-head
@@ -204,14 +204,14 @@ dependencies:
204
204
  requirements:
205
205
  - - ">="
206
206
  - !ruby/object:Gem::Version
207
- version: 0.12.0
207
+ version: 0.14.0
208
208
  type: :runtime
209
209
  prerelease: false
210
210
  version_requirements: !ruby/object:Gem::Requirement
211
211
  requirements:
212
212
  - - ">="
213
213
  - !ruby/object:Gem::Version
214
- version: 0.12.0
214
+ version: 0.14.0
215
215
  - !ruby/object:Gem::Dependency
216
216
  name: active_fedora-noid
217
217
  requirement: !ruby/object:Gem::Requirement
@@ -344,20 +344,14 @@ dependencies:
344
344
  requirements:
345
345
  - - "~>"
346
346
  - !ruby/object:Gem::Version
347
- version: '0.13'
348
- - - ">="
349
- - !ruby/object:Gem::Version
350
- version: 0.13.1
347
+ version: '0.16'
351
348
  type: :development
352
349
  prerelease: false
353
350
  version_requirements: !ruby/object:Gem::Requirement
354
351
  requirements:
355
352
  - - "~>"
356
353
  - !ruby/object:Gem::Version
357
- version: '0.13'
358
- - - ">="
359
- - !ruby/object:Gem::Version
360
- version: 0.13.1
354
+ version: '0.16'
361
355
  - !ruby/object:Gem::Dependency
362
356
  name: fcrepo_wrapper
363
357
  requirement: !ruby/object:Gem::Requirement
@@ -426,14 +420,14 @@ dependencies:
426
420
  requirements:
427
421
  - - "~>"
428
422
  - !ruby/object:Gem::Version
429
- version: '0.9'
423
+ version: '1.0'
430
424
  type: :development
431
425
  prerelease: false
432
426
  version_requirements: !ruby/object:Gem::Requirement
433
427
  requirements:
434
428
  - - "~>"
435
429
  - !ruby/object:Gem::Version
436
- version: '0.9'
430
+ version: '1.0'
437
431
  - !ruby/object:Gem::Dependency
438
432
  name: sqlite3
439
433
  requirement: !ruby/object:Gem::Requirement
@@ -736,6 +730,7 @@ files:
736
730
  - app/controllers/concerns/curation_concerns/leases_controller_behavior.rb
737
731
  - app/controllers/concerns/curation_concerns/manages_embargoes.rb
738
732
  - app/controllers/concerns/curation_concerns/parent_container.rb
733
+ - app/controllers/concerns/curation_concerns/permissions_controller_behavior.rb
739
734
  - app/controllers/concerns/curation_concerns/selects_collections.rb
740
735
  - app/controllers/concerns/curation_concerns/single_use_links_controller_behavior.rb
741
736
  - app/controllers/concerns/curation_concerns/single_use_links_viewer_controller_behavior.rb
@@ -757,18 +752,14 @@ files:
757
752
  - app/forms/curation_concerns/forms/file_set_edit_form.rb
758
753
  - app/forms/curation_concerns/forms/work_form.rb
759
754
  - app/helpers/batch_select_helper.rb
760
- - app/helpers/collections_helper.rb
761
755
  - app/helpers/curation_concerns/ability_helper.rb
762
756
  - app/helpers/curation_concerns/catalog_helper.rb
763
757
  - app/helpers/curation_concerns/collections_helper.rb
764
- - app/helpers/curation_concerns/collections_helper_behavior.rb
765
758
  - app/helpers/curation_concerns/embargo_helper.rb
766
759
  - app/helpers/curation_concerns/file_set_helper.rb
767
760
  - app/helpers/curation_concerns/lease_helper.rb
768
761
  - app/helpers/curation_concerns/main_app_helpers.rb
769
- - app/helpers/curation_concerns/permissions_helper.rb
770
762
  - app/helpers/curation_concerns/render_constraints_helper.rb
771
- - app/helpers/curation_concerns/rights_helper.rb
772
763
  - app/helpers/curation_concerns/search_paths_helper.rb
773
764
  - app/helpers/curation_concerns/title_helper.rb
774
765
  - app/helpers/curation_concerns/url_helper.rb
@@ -788,7 +779,6 @@ files:
788
779
  - app/jobs/visibility_copy_job.rb
789
780
  - app/models/admin_set.rb
790
781
  - app/models/checksum_audit_log.rb
791
- - app/models/collection.rb
792
782
  - app/models/concerns/curation_concerns/ability.rb
793
783
  - app/models/concerns/curation_concerns/admin_set_behavior.rb
794
784
  - app/models/concerns/curation_concerns/basic_metadata.rb
@@ -837,13 +827,14 @@ files:
837
827
  - app/presenters/curation_concerns/version_list_presenter.rb
838
828
  - app/presenters/curation_concerns/version_presenter.rb
839
829
  - app/presenters/curation_concerns/work_show_presenter.rb
830
+ - app/renderers/curation_concerns/renderers.rb
840
831
  - app/renderers/curation_concerns/renderers/attribute_renderer.rb
841
832
  - app/renderers/curation_concerns/renderers/configured_microdata.rb
842
833
  - app/renderers/curation_concerns/renderers/date_attribute_renderer.rb
834
+ - app/renderers/curation_concerns/renderers/external_link_attribute_renderer.rb
843
835
  - app/renderers/curation_concerns/renderers/faceted_attribute_renderer.rb
844
836
  - app/renderers/curation_concerns/renderers/linked_attribute_renderer.rb
845
837
  - app/renderers/curation_concerns/renderers/rights_attribute_renderer.rb
846
- - app/renderers/renderers.rb
847
838
  - app/search_builders/curation_concerns/admin_set_search_builder.rb
848
839
  - app/search_builders/curation_concerns/collection_member_search_builder.rb
849
840
  - app/search_builders/curation_concerns/collection_search_builder.rb
@@ -1089,6 +1080,8 @@ files:
1089
1080
  - lib/generators/curation_concerns/templates/curation_concerns.js
1090
1081
  - lib/generators/curation_concerns/templates/curation_concerns.scss
1091
1082
  - lib/generators/curation_concerns/templates/curation_concerns_helper.rb
1083
+ - lib/generators/curation_concerns/templates/spec/models/collection_spec.rb
1084
+ - lib/generators/curation_concerns/templates/spec/models/file_set_spec.rb
1092
1085
  - lib/generators/curation_concerns/work/USAGE
1093
1086
  - lib/generators/curation_concerns/work/templates/README
1094
1087
  - lib/generators/curation_concerns/work/templates/actor.rb.erb
@@ -1171,7 +1164,6 @@ files:
1171
1164
  - spec/forms/file_set_edit_form_spec.rb
1172
1165
  - spec/forms/work_form_spec.rb
1173
1166
  - spec/helpers/catalog_helper_spec.rb
1174
- - spec/helpers/collections_helper_spec.rb
1175
1167
  - spec/helpers/configuration_helper_spec.rb
1176
1168
  - spec/helpers/curation_concerns/ability_helper_spec.rb
1177
1169
  - spec/helpers/curation_concerns/collections_helper_spec.rb
@@ -1184,9 +1176,11 @@ files:
1184
1176
  - spec/inputs/multi_value_with_help_input_spec.rb
1185
1177
  - spec/inputs/multifile_input_spec.rb
1186
1178
  - spec/javascripts/file_manager_member_spec.coffee
1179
+ - spec/javascripts/file_manager_sorting_spec.coffee
1187
1180
  - spec/javascripts/fixtures/.gitkeep
1188
1181
  - spec/javascripts/fixtures/file_manager_member.html
1189
1182
  - spec/javascripts/fixtures/save_button.html
1183
+ - spec/javascripts/fixtures/sortable.html
1190
1184
  - spec/javascripts/fixtures/sul_table.html
1191
1185
  - spec/javascripts/helpers/jasmine-jquery.js
1192
1186
  - spec/javascripts/helpers/mock-ajax.js
@@ -1239,6 +1233,7 @@ files:
1239
1233
  - spec/presenters/lease_presenter_spec.rb
1240
1234
  - spec/renderers/curation_concerns/renderers/attribute_renderer_spec.rb
1241
1235
  - spec/renderers/curation_concerns/renderers/date_attribute_renderer_spec.rb
1236
+ - spec/renderers/curation_concerns/renderers/external_link_attribute_renderer_spec.rb
1242
1237
  - spec/renderers/curation_concerns/renderers/faceted_attribute_renderer_spec.rb
1243
1238
  - spec/renderers/curation_concerns/renderers/linked_attribute_renderer_spec.rb
1244
1239
  - spec/renderers/curation_concerns/renderers/rights_attribute_renderer_spec.rb
@@ -1391,7 +1386,6 @@ test_files:
1391
1386
  - spec/forms/file_set_edit_form_spec.rb
1392
1387
  - spec/forms/work_form_spec.rb
1393
1388
  - spec/helpers/catalog_helper_spec.rb
1394
- - spec/helpers/collections_helper_spec.rb
1395
1389
  - spec/helpers/configuration_helper_spec.rb
1396
1390
  - spec/helpers/curation_concerns/ability_helper_spec.rb
1397
1391
  - spec/helpers/curation_concerns/collections_helper_spec.rb
@@ -1404,9 +1398,11 @@ test_files:
1404
1398
  - spec/inputs/multi_value_with_help_input_spec.rb
1405
1399
  - spec/inputs/multifile_input_spec.rb
1406
1400
  - spec/javascripts/file_manager_member_spec.coffee
1401
+ - spec/javascripts/file_manager_sorting_spec.coffee
1407
1402
  - spec/javascripts/fixtures/.gitkeep
1408
1403
  - spec/javascripts/fixtures/file_manager_member.html
1409
1404
  - spec/javascripts/fixtures/save_button.html
1405
+ - spec/javascripts/fixtures/sortable.html
1410
1406
  - spec/javascripts/fixtures/sul_table.html
1411
1407
  - spec/javascripts/helpers/jasmine-jquery.js
1412
1408
  - spec/javascripts/helpers/mock-ajax.js
@@ -1459,6 +1455,7 @@ test_files:
1459
1455
  - spec/presenters/lease_presenter_spec.rb
1460
1456
  - spec/renderers/curation_concerns/renderers/attribute_renderer_spec.rb
1461
1457
  - spec/renderers/curation_concerns/renderers/date_attribute_renderer_spec.rb
1458
+ - spec/renderers/curation_concerns/renderers/external_link_attribute_renderer_spec.rb
1462
1459
  - spec/renderers/curation_concerns/renderers/faceted_attribute_renderer_spec.rb
1463
1460
  - spec/renderers/curation_concerns/renderers/linked_attribute_renderer_spec.rb
1464
1461
  - spec/renderers/curation_concerns/renderers/rights_attribute_renderer_spec.rb
@@ -1,4 +0,0 @@
1
- # View Helpers for Hydra Collections functionality
2
- module CollectionsHelper
3
- include CurationConcerns::CollectionsHelperBehavior
4
- end
@@ -1,41 +0,0 @@
1
- # View Helpers for Hydra Collections functionality
2
- module CurationConcerns
3
- module CollectionsHelperBehavior
4
- def has_collection_search_parameters?
5
- !params[:cq].blank?
6
- end
7
-
8
- def button_for_remove_from_collection(collection, document, label = 'Remove From Collection')
9
- render '/collections/button_remove_from_collection', collection: collection, label: label, document: document
10
- end
11
-
12
- def button_for_remove_selected_from_collection(collection, label = 'Remove From Collection')
13
- render '/collections/button_for_remove_selected_from_collection', collection: collection, label: label
14
- end
15
-
16
- # add hidden fields to a form for removing a single document from a collection
17
- def single_item_action_remove_form_fields(form, document)
18
- single_item_action_form_fields(form, document, 'remove')
19
- end
20
-
21
- # add hidden fields to a form for adding a single document to a collection
22
- def single_item_action_add_form_fields(form, document)
23
- single_item_action_form_fields(form, document, 'add')
24
- end
25
-
26
- # add hidden fields to a form for performing an action on a single document on a collection
27
- def single_item_action_form_fields(form, document, action)
28
- render '/collections/single_item_action_fields', form: form, document: document, action: action
29
- end
30
-
31
- def hidden_collection_members
32
- erbout = ''
33
- if params[:batch_document_ids].present?
34
- params[:batch_document_ids].each do |batch_item|
35
- erbout.concat hidden_field_tag('batch_document_ids[]', batch_item)
36
- end
37
- end
38
- erbout.html_safe
39
- end
40
- end
41
- end
@@ -1,19 +0,0 @@
1
- module CurationConcerns
2
- module PermissionsHelper
3
- def help_text(file)
4
- capture_content(file)
5
- end
6
-
7
- private
8
-
9
- def capture_content(file)
10
- capture do
11
- render file
12
- end
13
- end
14
-
15
- def help_icon
16
- content_tag 'i', '', 'aria-hidden' => true, class: 'help-icon'
17
- end
18
- end
19
- end
@@ -1,9 +0,0 @@
1
- module CurationConcerns::RightsHelper
2
- def include_current_value(value, _index, render_options, html_options)
3
- unless value.blank? || RightsService.active?(value)
4
- html_options[:class] << ' force-select'
5
- render_options += [[RightsService.label(value), value]]
6
- end
7
- [render_options, html_options]
8
- end
9
- end
@@ -1,6 +0,0 @@
1
- # Generated by curation_concerns:models:install
2
- class Collection < ActiveFedora::Base
3
- include ::CurationConcerns::CollectionBehavior
4
- # You can replace these metadata if they're not suitable
5
- include CurationConcerns::BasicMetadata
6
- end
@@ -1,88 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe CollectionsHelper, type: :helper do
4
- describe "has_collection_search_parameters?" do
5
- subject { helper }
6
-
7
- context "when cq is set" do
8
- before { allow(helper).to receive(:params).and_return(cq: 'foo') }
9
- it { is_expected.to have_collection_search_parameters }
10
- end
11
-
12
- context "when cq is not set" do
13
- before { allow(helper).to receive(:params).and_return(cq: '') }
14
- it { is_expected.not_to have_collection_search_parameters }
15
- end
16
- end
17
-
18
- describe "button_for_remove_from_collection" do
19
- let(:item) { double(id: 'changeme:123') }
20
- let(:collection) { FactoryGirl.create(:collection) }
21
-
22
- it "generates a form that can remove the item" do
23
- str = button_for_remove_from_collection collection, item
24
- doc = Nokogiri::HTML(str)
25
- form = doc.xpath('//form').first
26
- expect(form.attr('action')).to eq collection_path(collection)
27
- expect(form.css('input#collection_members[type="hidden"][value="remove"]')).not_to be_empty
28
- expect(form.css('input[type="hidden"][name="batch_document_ids[]"][value="changeme:123"]')).not_to be_empty
29
- end
30
-
31
- describe "for a collection of another name" do
32
- before(:all) do
33
- class OtherCollection < ActiveFedora::Base
34
- include CurationConcerns::Collection
35
- include Hydra::Works::WorkBehavior
36
- end
37
- end
38
-
39
- let!(:collection) { OtherCollection.create! }
40
-
41
- after(:all) do
42
- Object.send(:remove_const, :OtherCollection)
43
- end
44
-
45
- it "generates a form that can remove the item" do
46
- str = button_for_remove_from_collection collection, item
47
- doc = Nokogiri::HTML(str)
48
- form = doc.xpath('//form').first
49
- expect(form.attr('action')).to eq collection_path(collection)
50
- expect(form.css('input#collection_members[type="hidden"][value="remove"]')).not_to be_empty
51
- expect(form.css('input[type="hidden"][name="batch_document_ids[]"][value="changeme:123"]')).not_to be_empty
52
- end
53
- end
54
- end
55
-
56
- describe "button_for_remove_selected_from_collection" do
57
- let(:collection) { FactoryGirl.create(:collection) }
58
-
59
- it "creates a button to the collections delete path" do
60
- str = button_for_remove_selected_from_collection collection
61
- doc = Nokogiri::HTML(str)
62
- form = doc.xpath('//form').first
63
- expect(form.attr('action')).to eq collection_path(collection)
64
- i = form.xpath('.//input')[2]
65
- expect(i.attr('value')).to eq("remove")
66
- expect(i.attr('name')).to eq("collection[members]")
67
- end
68
-
69
- it "creates a button with my text" do
70
- str = button_for_remove_selected_from_collection collection, "Remove My Button"
71
- doc = Nokogiri::HTML(str)
72
- form = doc.css('form').first
73
- expect(form.attr('action')).to eq collection_path(collection)
74
- expect(form.css('input[type="submit"]').attr('value').value).to eq "Remove My Button"
75
- end
76
- end
77
-
78
- describe "hidden_collection_members" do
79
- before { helper.params[:batch_document_ids] = ['foo:12', 'foo:23'] }
80
- it "makes hidden fields" do
81
- doc = Nokogiri::HTML(hidden_collection_members)
82
- inputs = doc.xpath('//input[@type="hidden"][@name="batch_document_ids[]"]')
83
- expect(inputs.length).to eq(2)
84
- expect(inputs[0].attr('value')).to eq('foo:12')
85
- expect(inputs[1].attr('value')).to eq('foo:23')
86
- end
87
- end
88
- end