sufia 6.2.0 → 6.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +146 -0
- data/.travis.yml +4 -7
- data/Gemfile +2 -0
- data/History.md +29 -1
- data/README.md +25 -9
- data/SUFIA_VERSION +1 -1
- data/app/assets/stylesheets/sufia/_collections.scss +15 -0
- data/app/assets/stylesheets/sufia/_file-listing.scss +7 -0
- data/app/assets/stylesheets/sufia/_home-page.scss +10 -0
- data/app/builders/sufia/bootstrap_breadcrumbs_builder.rb +3 -5
- data/app/controllers/admin/stats_controller.rb +1 -76
- data/app/controllers/api/items_controller.rb +4 -6
- data/app/controllers/api/zotero_controller.rb +5 -5
- data/app/controllers/authorities_controller.rb +5 -1
- data/app/controllers/batch_edits_controller.rb +3 -3
- data/app/controllers/concerns/sufia/admin/depositor_stats.rb +41 -0
- data/app/controllers/concerns/sufia/admin/stats_behavior.rb +94 -0
- data/app/controllers/concerns/sufia/batch_controller_behavior.rb +16 -18
- data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +54 -56
- data/app/controllers/concerns/sufia/breadcrumbs.rb +3 -6
- data/app/controllers/concerns/sufia/collections_controller_behavior.rb +39 -39
- data/app/controllers/concerns/sufia/controller.rb +10 -10
- data/app/controllers/concerns/sufia/dashboard_controller_behavior.rb +17 -18
- data/app/controllers/concerns/sufia/depositors_controller_behavior.rb +9 -12
- data/app/controllers/concerns/sufia/files_controller/browse_everything.rb +6 -7
- data/app/controllers/concerns/sufia/files_controller/local_ingest_behavior.rb +39 -40
- data/app/controllers/concerns/sufia/files_controller/upload_complete_behavior.rb +1 -1
- data/app/controllers/concerns/sufia/files_controller_behavior.rb +109 -110
- data/app/controllers/concerns/sufia/homepage_controller.rb +8 -8
- data/app/controllers/concerns/sufia/my_controller_behavior.rb +13 -10
- data/app/controllers/concerns/sufia/single_use_links_controller_behavior.rb +11 -14
- data/app/controllers/concerns/sufia/single_use_links_viewer_controller_behavior.rb +27 -21
- data/app/controllers/concerns/sufia/transfers_controller_behavior.rb +17 -17
- data/app/controllers/concerns/sufia/users_controller_behavior.rb +54 -54
- data/app/controllers/contact_form_controller.rb +1 -1
- data/app/controllers/content_blocks_controller.rb +11 -12
- data/app/controllers/directory_controller.rb +2 -3
- data/app/controllers/featured_work_lists_controller.rb +1 -1
- data/app/controllers/featured_works_controller.rb +2 -4
- data/app/controllers/homepage_controller.rb +1 -2
- data/app/controllers/mailbox_controller.rb +12 -32
- data/app/controllers/my/collections_controller.rb +3 -4
- data/app/controllers/my/files_controller.rb +4 -6
- data/app/controllers/my/highlights_controller.rb +4 -6
- data/app/controllers/my/shares_controller.rb +3 -5
- data/app/controllers/pages_controller.rb +1 -3
- data/app/controllers/single_use_links_controller.rb +0 -1
- data/app/controllers/single_use_links_viewer_controller.rb +0 -1
- data/app/controllers/static_controller.rb +1 -0
- data/app/forms/sufia/forms/collection_edit_form.rb +2 -2
- data/app/helpers/batch_edits_helper.rb +1 -3
- data/app/helpers/content_block_helper.rb +7 -8
- data/app/helpers/generic_file_helper.rb +23 -24
- data/app/helpers/sufia/blacklight_override.rb +6 -7
- data/app/helpers/sufia/dashboard_helper_behavior.rb +4 -7
- data/app/helpers/sufia/permissions_helper.rb +3 -4
- data/app/helpers/sufia/sufia_helper_behavior.rb +30 -29
- data/app/helpers/trophy_helper.rb +15 -15
- data/app/inputs/select_with_modal_help_input.rb +3 -3
- data/app/inputs/with_help_icon.rb +4 -4
- data/app/jobs/content_delete_event_job.rb +0 -1
- data/app/jobs/content_depositor_change_event_job.rb +1 -2
- data/app/jobs/event_job.rb +0 -1
- data/app/jobs/user_unfollow_event_job.rb +1 -0
- data/app/models/concerns/sufia/solr_document_behavior.rb +1 -2
- data/app/models/contact_form.rb +6 -6
- data/app/models/content_block.rb +1 -2
- data/app/models/featured_work_list.rb +3 -5
- data/app/models/user_mailbox.rb +44 -0
- data/app/presenters/sufia/collection_presenter.rb +6 -8
- data/app/presenters/sufia/generic_file_presenter.rb +2 -2
- data/app/presenters/sufia/presenter_renderer.rb +2 -2
- data/app/presenters/sufia/version_list_presenter.rb +1 -1
- data/app/presenters/sufia/version_presenter.rb +3 -6
- data/app/search_builders/deposit_search_builder.rb +19 -0
- data/app/search_builders/sufia/my_search_builder_behavior.rb +1 -2
- data/app/search_builders/sufia/search_builder.rb +1 -3
- data/app/uploaders/tinymce_asset_uploader.rb +0 -2
- data/app/views/_controls.html.erb +5 -5
- data/app/views/admin/stats/_deposits.html.erb +19 -0
- data/app/views/admin/stats/index.html.erb +2 -0
- data/app/views/batch_edits/edit.html.erb +2 -2
- data/app/views/collections/_edit_actions.html.erb +3 -3
- data/app/views/collections/_form_for_select_collection.html.erb +2 -2
- data/app/views/collections/_sort_and_per_page.html.erb +12 -9
- data/app/views/collections/_view_type_group.html.erb +1 -1
- data/app/views/collections/edit.html.erb +5 -5
- data/app/views/collections/show.html.erb +7 -6
- data/app/views/homepage/_announcement.html.erb +5 -0
- data/app/views/homepage/_home.html.erb +1 -0
- data/app/views/my/_sort_and_per_page.html.erb +14 -10
- data/app/views/my/index.html.erb +1 -1
- data/app/views/pages/show.html.erb +0 -2
- data/app/views/single_use_links/new_download.html.erb +1 -1
- data/app/views/single_use_links_viewer/show.html.erb +1 -1
- data/app/views/users/_notify_link.html.erb +1 -1
- data/app/views/users/_notify_number.html.erb +2 -2
- data/config/initializers/simple_form.rb +1 -1
- data/config/initializers/simple_form_bootstrap.rb +1 -1
- data/config/locales/sufia.en.yml +4 -0
- data/config/routes.rb +2 -3
- data/lib/generators/sufia/admin_stat_generator.rb +0 -3
- data/lib/generators/sufia/install_generator.rb +8 -9
- data/lib/generators/sufia/templates/catalog_controller.rb +2 -3
- data/lib/generators/sufia/templates/config/action_dispatch_http_upload_monkey_patch.rb +1 -0
- data/lib/generators/sufia/upgrade400_generator.rb +9 -9
- data/lib/generators/sufia/upgrade600_generator.rb +1 -4
- data/lib/sufia.rb +2 -2
- data/lib/sufia/arkivo/actor.rb +1 -1
- data/lib/sufia/arkivo/create_subscription_job.rb +30 -30
- data/lib/sufia/arkivo/metadata_munger.rb +7 -7
- data/lib/sufia/arkivo/schema_validator.rb +1 -1
- data/lib/sufia/single_use_error.rb +0 -1
- data/lib/sufia/version.rb +1 -1
- data/lib/sufia/zotero/config.rb +13 -13
- data/spec/actors/generic_file/actor_spec.rb +17 -18
- data/spec/controllers/admin_stats_controller_spec.rb +56 -5
- data/spec/controllers/api/zotero_controller_spec.rb +10 -9
- data/spec/controllers/authorities_controller_spec.rb +8 -8
- data/spec/controllers/batch_controller_spec.rb +19 -20
- data/spec/controllers/batch_edits_controller_spec.rb +8 -9
- data/spec/controllers/catalog_controller_spec.rb +7 -9
- data/spec/controllers/collections_controller_spec.rb +30 -32
- data/spec/controllers/content_blocks_controller_spec.rb +4 -4
- data/spec/controllers/dashboard_controller_spec.rb +12 -12
- data/spec/controllers/depositors_controller_spec.rb +8 -8
- data/spec/controllers/downloads_controller_spec.rb +10 -11
- data/spec/controllers/featured_work_lists_controller_spec.rb +4 -4
- data/spec/controllers/featured_works_controller_spec.rb +11 -12
- data/spec/controllers/generic_files_controller_spec.rb +154 -125
- data/spec/controllers/homepage_controller_spec.rb +22 -15
- data/spec/controllers/mailbox_controller_spec.rb +20 -36
- data/spec/controllers/my/collections_controller_spec.rb +4 -5
- data/spec/controllers/my/files_controller_spec.rb +10 -11
- data/spec/controllers/my/highlights_controller_spec.rb +4 -5
- data/spec/controllers/my/shares_controller_spec.rb +12 -14
- data/spec/controllers/my_controller_spec.rb +1 -3
- data/spec/controllers/pages_controller_spec.rb +4 -4
- data/spec/controllers/single_use_links_controller_spec.rb +1 -3
- data/spec/controllers/single_use_links_viewer_controller_spec.rb +1 -2
- data/spec/controllers/static_controller_spec.rb +1 -1
- data/spec/controllers/tinymce_assets_controller_spec.rb +8 -9
- data/spec/controllers/transfers_controller_spec.rb +19 -19
- data/spec/controllers/users_controller_spec.rb +33 -35
- data/spec/factories/api_items.rb +2 -2
- data/spec/factories/content_blocks.rb +1 -1
- data/spec/factories/featured_works.rb +1 -1
- data/spec/factories/generic_files.rb +3 -3
- data/spec/factories/users.rb +7 -8
- data/spec/features/browse_dashboard_files_spec.rb +14 -18
- data/spec/features/browse_files_spec.rb +3 -4
- data/spec/features/catalog_search_spec.rb +3 -5
- data/spec/features/cloud_upload_spec.rb +2 -2
- data/spec/features/collection_spec.rb +21 -21
- data/spec/features/contact_form_spec.rb +10 -11
- data/spec/features/display_dashboard_spec.rb +5 -9
- data/spec/features/edit_file_spec.rb +8 -9
- data/spec/features/featured_item_spec.rb +1 -1
- data/spec/features/ingest_upload_files_spec.rb +5 -5
- data/spec/features/notifications_spec.rb +2 -6
- data/spec/features/ownership_transfer_spec.rb +2 -2
- data/spec/features/proxy_spec.rb +2 -2
- data/spec/features/search_spec.rb +3 -4
- data/spec/features/single_use_links_spec.rb +1 -1
- data/spec/features/users_spec.rb +4 -5
- data/spec/forms/collection_edit_form_spec.rb +2 -2
- data/spec/forms/generic_file_edit_form_spec.rb +6 -7
- data/spec/helpers/batch_edits_helper_spec.rb +9 -13
- data/spec/helpers/content_block_helper_spec.rb +3 -3
- data/spec/helpers/dashboard_helper_spec.rb +19 -24
- data/spec/helpers/generic_file_helper_spec.rb +5 -7
- data/spec/helpers/sufia_helper_spec.rb +43 -54
- data/spec/helpers/trophy_helper_spec.rb +5 -5
- data/spec/inputs/multi_value_with_help_input_spec.rb +1 -2
- data/spec/inputs/select_with_help_input_spec.rb +19 -15
- data/spec/javascripts/jasmine_spec.rb +4 -5
- data/spec/javascripts/support/jasmine_helper.rb +9 -9
- data/spec/jobs/active_fedora_id_based_job_spec.rb +7 -5
- data/spec/jobs/audit_job_spec.rb +7 -7
- data/spec/jobs/batch_update_job_spec.rb +5 -6
- data/spec/jobs/characterize_job_spec.rb +1 -1
- data/spec/jobs/content_depositor_change_event_job_spec.rb +1 -1
- data/spec/jobs/create_derivatives_job_spec.rb +5 -5
- data/spec/jobs/event_jobs_spec.rb +16 -16
- data/spec/jobs/import_url_job_spec.rb +36 -5
- data/spec/jobs/ingest_local_file_job_spec.rb +31 -20
- data/spec/jobs/sufia_resque_queue_spec.rb +1 -1
- data/spec/lib/sufia/analytics_spec.rb +0 -1
- data/spec/lib/sufia/arkivo/actor_spec.rb +6 -6
- data/spec/lib/sufia/arkivo/schema_validator_spec.rb +18 -18
- data/spec/lib/sufia/breadcrumbs_spec.rb +5 -6
- data/spec/lib/sufia/messages_spec.rb +11 -12
- data/spec/lib/sufia/readable_permissions_spec.rb +8 -10
- data/spec/lib/sufia/upload_complete_behavior_spec.rb +6 -7
- data/spec/lib/sufia/user_stat_importer_spec.rb +30 -33
- data/spec/lib/sufia/writable_permissions_spec.rb +1 -3
- data/spec/lib/sufia/zotero/config_spec.rb +4 -6
- data/spec/models/ability_spec.rb +11 -9
- data/spec/models/batch_spec.rb +13 -13
- data/spec/models/characterization_spec.rb +2 -3
- data/spec/models/checksum_audit_log_spec.rb +18 -19
- data/spec/models/collection_spec.rb +11 -12
- data/spec/models/content_block_spec.rb +33 -22
- data/spec/models/download_spec.rb +3 -5
- data/spec/models/featured_work_list_spec.rb +3 -3
- data/spec/models/featured_work_spec.rb +12 -14
- data/spec/models/file_content_datastream_spec.rb +9 -7
- data/spec/models/file_download_stat_spec.rb +34 -40
- data/spec/models/file_usage_spec.rb +46 -52
- data/spec/models/file_view_stat_spec.rb +35 -41
- data/spec/models/fits_datastream_spec.rb +23 -25
- data/spec/models/generic_file/visibility_spec.rb +10 -5
- data/spec/models/generic_file_spec.rb +86 -88
- data/spec/models/geo_names_resource_spec.rb +3 -5
- data/spec/models/local_authority_spec.rb +30 -33
- data/spec/models/pageview_spec.rb +3 -3
- data/spec/models/proxy_deposit_request_spec.rb +3 -3
- data/spec/models/single_use_link_spec.rb +36 -36
- data/spec/models/solr_document_spec.rb +3 -6
- data/spec/models/trophy_spec.rb +8 -9
- data/spec/models/user_mailbox_spec.rb +62 -0
- data/spec/models/user_spec.rb +28 -29
- data/spec/presenters/presenter_renderer_spec.rb +1 -1
- data/spec/presenters/sufia/generic_file_presenter_spec.rb +5 -5
- data/spec/presenters/sufia/version_list_presenter_spec.rb +2 -2
- data/spec/presenters/sufia/version_presenter_spec.rb +1 -1
- data/spec/routing/featured_works_route_spec.rb +4 -4
- data/spec/routing/ownership_transfers_route_spec.rb +1 -1
- data/spec/routing/route_spec.rb +89 -89
- data/spec/services/generic_file_audit_service_spec.rb +8 -8
- data/spec/services/repository_audit_service_spec.rb +7 -3
- data/spec/spec_helper.rb +5 -4
- data/spec/support/features/session_helpers.rb +1 -1
- data/spec/support/input_support.rb +1 -2
- data/spec/support/rake.rb +1 -1
- data/spec/support/selectors.rb +1 -6
- data/spec/support/statistic_helper.rb +1 -1
- data/spec/support/uploaded_file_monkeypatch.rb +1 -1
- data/spec/tasks/rake_spec.rb +3 -5
- data/spec/views/admin/stats/index.html.erb_spec.rb +16 -16
- data/spec/views/batch/edit.html.erb_spec.rb +1 -3
- data/spec/views/batch_edits/check_all_spec.rb +5 -5
- data/spec/views/batch_edits/edit.html.erb_spec.rb +1 -3
- data/spec/views/catalog/index.html.erb_spec.rb +1 -3
- data/spec/views/catalog/sort_and_per_page.html.erb_spec.rb +4 -5
- data/spec/views/collections/_form.html.erb_spec.rb +5 -3
- data/spec/views/collections/_show_descriptions.html.erb_spec.rb +7 -8
- data/spec/views/collections/_show_document_list.erb_spec.rb +4 -6
- data/spec/views/dashboard/index_spec.rb +14 -21
- data/spec/views/generic_file/_browse_everything.html.erb_spec.rb +2 -2
- data/spec/views/generic_file/_permission_form.html.erb_spec.rb +8 -9
- data/spec/views/generic_file/edit.html.erb_spec.rb +7 -7
- data/spec/views/generic_file/show.html.erb_spec.rb +24 -25
- data/spec/views/generic_file/stats.html.erb_spec.rb +19 -19
- data/spec/views/homepage/_announcement.html.erb_spec.rb +51 -0
- data/spec/views/homepage/_featured_works.html.erb_spec.rb +5 -9
- data/spec/views/homepage/_home_header.html.erb_spec.rb +2 -2
- data/spec/views/my/facet.html.erb_spec.rb +4 -4
- data/spec/views/single_use_links/new_download.html.erb_spec.rb +28 -0
- data/spec/views/single_use_links_viewer/show.html.erb_spec.rb +29 -0
- data/spec/views/users/_follower_modal.html.erb_spec.rb +7 -8
- data/spec/views/users/_following_modal.html.erb_spec.rb +4 -5
- data/spec/views/users/_notify_number.html.erb_spec.rb +2 -5
- data/spec/views/users/_user_util_links.html.erb_spec.rb +5 -8
- data/spec/views/users/index.html.erb_spec.rb +4 -6
- data/spec/views/users/show.html.erb_spec.rb +4 -7
- data/tasks/sufia-dev.rake +19 -3
- metadata +20 -5
@@ -4,7 +4,7 @@ describe 'searching' do
|
|
4
4
|
let!(:file) { FactoryGirl.create(:public_file, title: ["Toothbrush"]) }
|
5
5
|
|
6
6
|
context "as a public user" do
|
7
|
-
it "
|
7
|
+
it "finds the file and have a gallery" do
|
8
8
|
visit '/'
|
9
9
|
fill_in "search-field-header", with: "Toothbrush"
|
10
10
|
click_button "search-submit-header"
|
@@ -12,7 +12,7 @@ describe 'searching' do
|
|
12
12
|
within "#search-results" do
|
13
13
|
expect(page).to have_content "Toothbrush"
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
click_link "Gallery"
|
17
17
|
expect(page).to have_content "You searched for: Toothbrush"
|
18
18
|
within "#documents" do
|
@@ -20,7 +20,7 @@ describe 'searching' do
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
it "
|
23
|
+
it "does not display search options for dashboard files" do
|
24
24
|
visit "/"
|
25
25
|
within(".input-group-btn") do
|
26
26
|
expect(page).to_not have_content("My Files")
|
@@ -28,6 +28,5 @@ describe 'searching' do
|
|
28
28
|
expect(page).to_not have_content("My Shares")
|
29
29
|
end
|
30
30
|
end
|
31
|
-
|
32
31
|
end
|
33
32
|
end
|
data/spec/features/users_spec.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe "User Profile", :
|
4
|
-
|
3
|
+
describe "User Profile", type: :feature do
|
5
4
|
before do
|
6
5
|
sign_in FactoryGirl.create(:curator)
|
7
6
|
end
|
8
7
|
|
9
8
|
context 'when visiting user profile' do
|
10
|
-
it '
|
9
|
+
it 'renders page properly' do
|
11
10
|
visit '/users/curator1@example-dot-com'
|
12
11
|
expect(page).to have_content('curator1@example.com')
|
13
12
|
expect(page).to have_content('Edit Your Profile')
|
@@ -15,7 +14,7 @@ describe "User Profile", :type => :feature do
|
|
15
14
|
end
|
16
15
|
|
17
16
|
context 'when clicking all users' do
|
18
|
-
it '
|
17
|
+
it 'displays all users' do
|
19
18
|
visit '/users/curator1@example-dot-com'
|
20
19
|
click_link 'View Users'
|
21
20
|
expect(page).to have_xpath("//td/a[@href='/users/curator1@example-dot-com']")
|
@@ -35,7 +34,7 @@ describe "User Profile", :type => :feature do
|
|
35
34
|
end
|
36
35
|
|
37
36
|
context 'user profile' do
|
38
|
-
it '
|
37
|
+
it 'is searchable' do
|
39
38
|
@archivist = FactoryGirl.find_or_create(:archivist)
|
40
39
|
visit '/users/curator1@example-dot-com'
|
41
40
|
click_link 'View Users'
|
@@ -5,7 +5,7 @@ describe Sufia::Forms::CollectionEditForm do
|
|
5
5
|
let(:form) { described_class.new(collection) }
|
6
6
|
|
7
7
|
describe "#terms" do
|
8
|
-
subject { form.terms}
|
8
|
+
subject { form.terms }
|
9
9
|
it { is_expected.to eq [:resource_type, :title, :creator, :contributor, :description,
|
10
10
|
:tag, :rights, :publisher, :date_created, :subject, :language,
|
11
11
|
:identifier, :based_near, :related_url] }
|
@@ -13,7 +13,7 @@ describe Sufia::Forms::CollectionEditForm do
|
|
13
13
|
|
14
14
|
describe "unique?" do
|
15
15
|
context "with :title" do
|
16
|
-
subject {
|
16
|
+
subject { described_class.unique?(:title) }
|
17
17
|
it { is_expected.to be true }
|
18
18
|
end
|
19
19
|
end
|
@@ -4,9 +4,9 @@ describe Sufia::Forms::GenericFileEditForm do
|
|
4
4
|
subject { described_class.new(GenericFile.new) }
|
5
5
|
|
6
6
|
describe "#terms" do
|
7
|
-
it "
|
7
|
+
it "returns a list" do
|
8
8
|
expect(subject.terms).to eq([:resource_type, :title, :creator, :contributor, :description, :tag,
|
9
|
-
|
9
|
+
:rights, :publisher, :date_created, :subject, :language, :identifier, :based_near, :related_url])
|
10
10
|
end
|
11
11
|
|
12
12
|
it "doesn't contain fields that users shouldn't be allowed to edit" do
|
@@ -15,19 +15,18 @@ describe Sufia::Forms::GenericFileEditForm do
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
it "
|
18
|
+
it "initializes multivalued fields" do
|
19
19
|
expect(subject.title).to eq ['']
|
20
20
|
end
|
21
21
|
|
22
22
|
describe ".model_attributes" do
|
23
|
-
let(:params) { ActionController::Parameters.new(title: ['foo'], description: [''], "permissions_attributes"=>{"2"=>{"access"=>"edit", "_destroy"=>"true", "id"=>"a987551e-b87f-427a-8721-3e5942273125"}})}
|
23
|
+
let(:params) { ActionController::Parameters.new(title: ['foo'], description: [''], "permissions_attributes" => { "2" => { "access" => "edit", "_destroy" => "true", "id" => "a987551e-b87f-427a-8721-3e5942273125" } }) }
|
24
24
|
subject { described_class.model_attributes(params) }
|
25
25
|
|
26
|
-
it "
|
26
|
+
it "onlies change title" do
|
27
27
|
expect(subject['title']).to eq ["foo"]
|
28
28
|
expect(subject['description']).to be_empty
|
29
|
-
expect(subject['permissions_attributes']).to eq("2" => {"access"=>"edit", "id"=>"a987551e-b87f-427a-8721-3e5942273125", "_destroy"=>"true"})
|
29
|
+
expect(subject['permissions_attributes']).to eq("2" => { "access" => "edit", "id" => "a987551e-b87f-427a-8721-3e5942273125", "_destroy" => "true" })
|
30
30
|
end
|
31
31
|
end
|
32
|
-
|
33
32
|
end
|
@@ -1,9 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe BatchEditsHelper, :
|
4
|
-
|
3
|
+
describe BatchEditsHelper, type: :helper do
|
5
4
|
describe "#render_check_all" do
|
6
|
-
|
7
5
|
before do
|
8
6
|
@document_list = ["doc1", "doc2"]
|
9
7
|
@batch_size_on_other_page = 1
|
@@ -11,34 +9,32 @@ describe BatchEditsHelper, :type => :helper do
|
|
11
9
|
end
|
12
10
|
|
13
11
|
context "with my files" do
|
14
|
-
it "
|
15
|
-
allow(helper).to receive(:params).and_return(
|
12
|
+
it "shows the check all dropdown" do
|
13
|
+
allow(helper).to receive(:params).and_return(controller: "my/files")
|
16
14
|
allow(helper).to receive(:controller_name).and_return("batch_edits")
|
17
15
|
expect(helper.render_check_all).to have_css("span.glyphicon-cog")
|
18
16
|
end
|
19
17
|
|
20
|
-
it "
|
21
|
-
allow(helper).to receive(:params).and_return(
|
18
|
+
it "shows my action menu for my controller" do
|
19
|
+
allow(helper).to receive(:params).and_return(controller: "my")
|
22
20
|
allow(helper).to receive(:controller_name).and_return("my")
|
23
21
|
expect(helper.render_check_all).not_to have_content("ABC")
|
24
22
|
end
|
25
23
|
end
|
26
24
|
|
27
25
|
context "with my collections" do
|
28
|
-
it "
|
29
|
-
allow(helper).to receive(:params).and_return(
|
26
|
+
it "does not show the check all dropdown" do
|
27
|
+
allow(helper).to receive(:params).and_return(controller: "my/collections")
|
30
28
|
expect(helper.render_check_all).to be_nil
|
31
29
|
end
|
32
30
|
end
|
33
31
|
|
34
32
|
context "with select all disabled" do
|
35
|
-
it "
|
36
|
-
allow(helper).to receive(:params).and_return(
|
33
|
+
it "does not show the check all dropdown" do
|
34
|
+
allow(helper).to receive(:params).and_return(controller: "foo")
|
37
35
|
assign(:disable_select_all, true)
|
38
36
|
expect(helper.render_check_all).to have_css("input[disabled=disabled]")
|
39
37
|
end
|
40
38
|
end
|
41
|
-
|
42
39
|
end
|
43
|
-
|
44
40
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe ContentBlockHelper, :
|
3
|
+
describe ContentBlockHelper, type: :helper do
|
4
4
|
let(:content_block) { FactoryGirl.create(:content_block, value: "<p>foo bar</p>") }
|
5
5
|
|
6
6
|
subject { helper.editable_content_block(content_block) }
|
@@ -12,7 +12,7 @@ describe ContentBlockHelper, :type => :helper do
|
|
12
12
|
end
|
13
13
|
let(:node) { Capybara::Node::Simple.new(subject) }
|
14
14
|
|
15
|
-
it "
|
15
|
+
it "shows the preview and the form" do
|
16
16
|
expect(node).to have_selector "button[data-target='#edit_content_block_1'][data-behavior='reveal-editor']"
|
17
17
|
expect(node).to have_selector "form#edit_content_block_1[action='#{sufia.content_block_path(content_block)}']"
|
18
18
|
expect(subject).to be_html_safe
|
@@ -33,7 +33,7 @@ describe ContentBlockHelper, :type => :helper do
|
|
33
33
|
before do
|
34
34
|
expect(helper).to receive(:can?).with(:update, content_block).and_return(false)
|
35
35
|
end
|
36
|
-
it "
|
36
|
+
it "shows the content" do
|
37
37
|
expect(subject).to eq '<p>foo bar</p>'
|
38
38
|
expect(subject).to be_html_safe
|
39
39
|
end
|
@@ -1,10 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe DashboardHelper, :
|
4
|
-
|
3
|
+
describe DashboardHelper, type: :helper do
|
5
4
|
describe "#render_recent_activity" do
|
6
5
|
context "when there is no activity" do
|
7
|
-
it "
|
6
|
+
it "returns a messages stating the user has no recent activity" do
|
8
7
|
assign(:activity, [])
|
9
8
|
expect(helper.render_recent_activity).to include("no recent activity")
|
10
9
|
end
|
@@ -13,7 +12,7 @@ describe DashboardHelper, :type => :helper do
|
|
13
12
|
|
14
13
|
describe "#render_recent_notifications" do
|
15
14
|
context "when there are no notifications" do
|
16
|
-
it "
|
15
|
+
it "returns a messages stating the user has no recent notifications" do
|
17
16
|
assign(:notifications, [])
|
18
17
|
expect(helper.render_recent_notifications).to include("no notifications")
|
19
18
|
end
|
@@ -21,35 +20,34 @@ describe DashboardHelper, :type => :helper do
|
|
21
20
|
end
|
22
21
|
|
23
22
|
describe "#on_the_dashboard?" do
|
24
|
-
it "
|
25
|
-
allow(helper).to receive(:params).and_return(
|
23
|
+
it "returns false for controllers that aren't a part of the dashboard" do
|
24
|
+
allow(helper).to receive(:params).and_return(controller: "foo")
|
26
25
|
expect(helper).to_not be_on_the_dashboard
|
27
26
|
end
|
28
27
|
|
29
|
-
it "
|
30
|
-
allow(helper).to receive(:params).and_return(
|
28
|
+
it "returns true for controllers that are part of the dashboard" do
|
29
|
+
allow(helper).to receive(:params).and_return(controller: "my/files")
|
31
30
|
expect(helper).to be_on_the_dashboard
|
32
|
-
allow(helper).to receive(:params).and_return(
|
31
|
+
allow(helper).to receive(:params).and_return(controller: "my/collections")
|
33
32
|
expect(helper).to be_on_the_dashboard
|
34
|
-
allow(helper).to receive(:params).and_return(
|
33
|
+
allow(helper).to receive(:params).and_return(controller: "my/highlights")
|
35
34
|
expect(helper).to be_on_the_dashboard
|
36
|
-
allow(helper).to receive(:params).and_return(
|
35
|
+
allow(helper).to receive(:params).and_return(controller: "my/shares")
|
37
36
|
expect(helper).to be_on_the_dashboard
|
38
37
|
end
|
39
38
|
end
|
40
39
|
|
41
40
|
describe "#on_my_files" do
|
42
|
-
it "
|
43
|
-
allow(helper).to receive(:params).and_return(
|
41
|
+
it "returns false when the controller isn't my files" do
|
42
|
+
allow(helper).to receive(:params).and_return(controller: "my/collections")
|
44
43
|
expect(helper).to_not be_on_my_files
|
45
44
|
end
|
46
|
-
it "
|
47
|
-
allow(helper).to receive(:params).and_return(
|
45
|
+
it "returns true when the controller is my files" do
|
46
|
+
allow(helper).to receive(:params).and_return(controller: "my/files")
|
48
47
|
expect(helper).to be_on_my_files
|
49
48
|
end
|
50
49
|
end
|
51
50
|
|
52
|
-
|
53
51
|
describe "#number_of_files" do
|
54
52
|
let(:conn) { ActiveFedora::SolrService.instance.conn }
|
55
53
|
let(:user1) { User.new(email: "abc@test") }
|
@@ -61,7 +59,6 @@ describe DashboardHelper, :type => :helper do
|
|
61
59
|
it "finds only 3 files" do
|
62
60
|
expect(helper.number_of_files(user1)).to eq(3)
|
63
61
|
end
|
64
|
-
|
65
62
|
end
|
66
63
|
|
67
64
|
describe "#number_of_collections" do
|
@@ -75,20 +72,18 @@ describe DashboardHelper, :type => :helper do
|
|
75
72
|
it "finds only 3 files" do
|
76
73
|
expect(helper.number_of_collections(user1)).to eq(3)
|
77
74
|
end
|
78
|
-
|
79
75
|
end
|
80
76
|
|
81
|
-
def create_models
|
77
|
+
def create_models(model, user1, user2)
|
82
78
|
# deposited by the first user
|
83
79
|
3.times do |t|
|
84
|
-
conn.add
|
85
|
-
|
80
|
+
conn.add id: "199#{t}", Solrizer.solr_name('depositor', :stored_searchable) => user1.user_key, "has_model_ssim" => [model],
|
81
|
+
Solrizer.solr_name('depositor', :symbol) => user1.user_key
|
86
82
|
end
|
87
83
|
|
88
84
|
# deposited by the second user, but editable by the first
|
89
|
-
conn.add
|
90
|
-
|
85
|
+
conn.add id: "1994", Solrizer.solr_name('depositor', :stored_searchable) => user2.user_key, "has_model_ssim" => [model],
|
86
|
+
Solrizer.solr_name('depositor', :symbol) => user2.user_key, "edit_access_person_ssim" => user1.user_key
|
91
87
|
conn.commit
|
92
88
|
end
|
93
|
-
|
94
89
|
end
|
@@ -1,33 +1,31 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe GenericFileHelper do
|
4
|
-
|
5
4
|
describe "#render_collection_list" do
|
6
5
|
context "using a file that is part of a collection" do
|
7
|
-
|
8
6
|
let(:collection) do
|
9
7
|
mock_model(Collection, title: "Foo Collection")
|
10
8
|
end
|
11
9
|
|
12
10
|
let(:gf) do
|
13
|
-
mock_model(GenericFile,
|
11
|
+
mock_model(GenericFile, collections: [collection, collection])
|
14
12
|
end
|
15
13
|
|
16
14
|
let(:link) do
|
17
15
|
"<a href=\"/collections/#{collection.id}\">#{collection.title}</a>"
|
18
16
|
end
|
19
17
|
|
20
|
-
it "
|
21
|
-
expect(helper.render_collection_list(gf)).to eq("Is part of: " + [link,link].join(", "))
|
18
|
+
it "displays a comma-delimited list of collections" do
|
19
|
+
expect(helper.render_collection_list(gf)).to eq("Is part of: " + [link, link].join(", "))
|
22
20
|
end
|
23
21
|
end
|
24
22
|
|
25
23
|
context "using a file that is not part of a collection" do
|
26
24
|
let(:gf) do
|
27
|
-
mock_model(GenericFile,
|
25
|
+
mock_model(GenericFile, collections: [])
|
28
26
|
end
|
29
27
|
|
30
|
-
it "
|
28
|
+
it "renders nothing" do
|
31
29
|
expect(helper.render_collection_list(gf)).to be_nil
|
32
30
|
end
|
33
31
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe SufiaHelper, :
|
4
|
-
|
3
|
+
describe SufiaHelper, type: :helper do
|
5
4
|
describe "#link_to_facet_list" do
|
6
5
|
before do
|
7
6
|
allow(helper).to receive(:blacklight_config).and_return(CatalogController.blacklight_config)
|
@@ -10,9 +9,9 @@ describe SufiaHelper, :type => :helper do
|
|
10
9
|
context "with values" do
|
11
10
|
subject { helper.link_to_facet_list(['car', 'truck'], 'vehicle_type') }
|
12
11
|
|
13
|
-
it "
|
14
|
-
car_link = catalog_index_path(f: {'vehicle_type_sim' => ['car']})
|
15
|
-
truck_link = catalog_index_path(f: {'vehicle_type_sim' => ['truck']})
|
12
|
+
it "joins the values" do
|
13
|
+
car_link = catalog_index_path(f: { 'vehicle_type_sim' => ['car'] })
|
14
|
+
truck_link = catalog_index_path(f: { 'vehicle_type_sim' => ['truck'] })
|
16
15
|
expect(subject).to eq "<a href=\"#{car_link}\">car</a>, <a href=\"#{truck_link}\">truck</a>"
|
17
16
|
expect(subject).to be_html_safe
|
18
17
|
end
|
@@ -21,7 +20,7 @@ describe SufiaHelper, :type => :helper do
|
|
21
20
|
context "without values" do
|
22
21
|
subject { helper.link_to_facet_list([], 'vehicle_type') }
|
23
22
|
|
24
|
-
it "
|
23
|
+
it "shows the default text" do
|
25
24
|
expect(subject).to eq "No value entered"
|
26
25
|
end
|
27
26
|
end
|
@@ -30,36 +29,36 @@ describe SufiaHelper, :type => :helper do
|
|
30
29
|
describe "has_collection_search_parameters?" do
|
31
30
|
subject { helper }
|
32
31
|
context "when cq is set" do
|
33
|
-
before { allow(helper).to receive(:params).and_return(
|
32
|
+
before { allow(helper).to receive(:params).and_return(cq: 'foo') }
|
34
33
|
it { is_expected.to have_collection_search_parameters }
|
35
34
|
end
|
36
35
|
|
37
36
|
context "when cq is not set" do
|
38
|
-
before { allow(helper).to receive(:params).and_return(
|
37
|
+
before { allow(helper).to receive(:params).and_return(cq: '') }
|
39
38
|
it { is_expected.not_to have_collection_search_parameters }
|
40
39
|
end
|
41
40
|
end
|
42
41
|
|
43
42
|
describe "sufia_thumbnail_tag" do
|
44
43
|
context "for an image object" do
|
45
|
-
let(:document) { SolrDocument.new(
|
46
|
-
it "
|
47
|
-
rendered = helper.sufia_thumbnail_tag(document,
|
44
|
+
let(:document) { SolrDocument.new(mime_type_tesim: 'image/jpeg', id: '1234') }
|
45
|
+
it "shows the audio thumbnail" do
|
46
|
+
rendered = helper.sufia_thumbnail_tag(document, width: 90)
|
48
47
|
expect(rendered).to match(/src="\/downloads\/1234\?file=thumbnail"/)
|
49
48
|
expect(rendered).to match(/width="90"/)
|
50
49
|
end
|
51
50
|
end
|
52
51
|
context "for an audio object" do
|
53
|
-
let(:document) { SolrDocument.new(
|
54
|
-
it "
|
52
|
+
let(:document) { SolrDocument.new(mime_type_tesim: 'audio/x-wave', id: '1234') }
|
53
|
+
it "shows the audio thumbnail" do
|
55
54
|
rendered = helper.sufia_thumbnail_tag(document, {})
|
56
55
|
expect(rendered).to match(/src="\/assets\/audio.png"/)
|
57
56
|
end
|
58
57
|
end
|
59
58
|
context "for an document object" do
|
60
|
-
let(:document) { SolrDocument.new(
|
61
|
-
it "
|
62
|
-
rendered = helper.sufia_thumbnail_tag(document,
|
59
|
+
let(:document) { SolrDocument.new(mime_type_tesim: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', id: '1234') }
|
60
|
+
it "shows the default thumbnail" do
|
61
|
+
rendered = helper.sufia_thumbnail_tag(document, width: 90)
|
63
62
|
expect(rendered).to match(/src="\/downloads\/1234\?file=thumbnail"/)
|
64
63
|
expect(rendered).to match(/width="90"/)
|
65
64
|
end
|
@@ -67,101 +66,93 @@ describe SufiaHelper, :type => :helper do
|
|
67
66
|
end
|
68
67
|
|
69
68
|
describe "#link_to_telephone" do
|
70
|
-
|
71
69
|
before do
|
72
70
|
@user = mock_model(User)
|
73
71
|
allow(@user).to receive(:telephone).and_return('867-5309')
|
74
72
|
end
|
75
73
|
|
76
74
|
context "when @user is set" do
|
77
|
-
it "
|
75
|
+
it "returns a link to the user's telephone" do
|
78
76
|
expect(helper.link_to_telephone).to eq("<a href=\"wtai://wp/mc;867-5309\">867-5309</a>")
|
79
77
|
end
|
80
78
|
end
|
81
79
|
|
82
80
|
context "when @user is not set" do
|
83
|
-
it "
|
81
|
+
it "returns a link to the user's telephone" do
|
84
82
|
expect(helper.link_to_telephone(@user)).to eq("<a href=\"wtai://wp/mc;867-5309\">867-5309</a>")
|
85
83
|
end
|
86
84
|
end
|
87
|
-
|
88
85
|
end
|
89
86
|
|
90
87
|
describe "#current_search_parameters" do
|
91
|
-
|
92
88
|
context "when the user is not in the dashboard" do
|
93
|
-
it "
|
94
|
-
allow(helper).to receive(:params).and_return(
|
89
|
+
it "is whatever q is" do
|
90
|
+
allow(helper).to receive(:params).and_return(controller: "catalog", q: "foo")
|
95
91
|
expect(helper.current_search_parameters).to eq("foo")
|
96
92
|
end
|
97
93
|
end
|
98
94
|
|
99
95
|
context "when the user is on any dashboard page" do
|
100
|
-
|
101
|
-
|
102
|
-
allow(helper).to receive(:params).and_return({ controller: "dashboard", q: "foo" })
|
96
|
+
it "is ignored on dashboard" do
|
97
|
+
allow(helper).to receive(:params).and_return(controller: "dashboard", q: "foo")
|
103
98
|
expect(helper.current_search_parameters).to be_nil
|
104
99
|
end
|
105
100
|
|
106
|
-
it "
|
107
|
-
allow(helper).to receive(:params).and_return(
|
101
|
+
it "is ignored on dashboard files, collections, highlights and shares" do
|
102
|
+
allow(helper).to receive(:params).and_return(controller: "my/files", q: "foo")
|
108
103
|
expect(helper.current_search_parameters).to be_nil
|
109
|
-
allow(helper).to receive(:params).and_return(
|
104
|
+
allow(helper).to receive(:params).and_return(controller: "my/collections", q: "foo")
|
110
105
|
expect(helper.current_search_parameters).to be_nil
|
111
|
-
allow(helper).to receive(:params).and_return(
|
106
|
+
allow(helper).to receive(:params).and_return(controller: "my/highlights", q: "foo")
|
112
107
|
expect(helper.current_search_parameters).to be_nil
|
113
|
-
allow(helper).to receive(:params).and_return(
|
108
|
+
allow(helper).to receive(:params).and_return(controller: "my/shares", q: "foo")
|
114
109
|
expect(helper.current_search_parameters).to be_nil
|
115
110
|
end
|
116
|
-
|
117
111
|
end
|
118
|
-
|
119
112
|
end
|
120
113
|
|
121
114
|
describe "#search_form_action" do
|
122
|
-
|
123
115
|
context "when the user is not in the dashboard" do
|
124
|
-
it "
|
125
|
-
allow(helper).to receive(:params).and_return(
|
116
|
+
it "returns the catalog index path" do
|
117
|
+
allow(helper).to receive(:params).and_return(controller: "foo")
|
126
118
|
expect(helper.search_form_action).to eq(catalog_index_path)
|
127
119
|
end
|
128
120
|
end
|
129
121
|
|
130
122
|
context "when the user is on the dashboard page" do
|
131
|
-
it "
|
132
|
-
allow(helper).to receive(:params).and_return(
|
123
|
+
it "defaults to My Files" do
|
124
|
+
allow(helper).to receive(:params).and_return(controller: "dashboard")
|
133
125
|
expect(helper.search_form_action).to eq(sufia.dashboard_files_path)
|
134
126
|
end
|
135
127
|
end
|
136
128
|
|
137
129
|
context "when the user is on the my files page" do
|
138
|
-
it "
|
139
|
-
allow(helper).to receive(:params).and_return(
|
130
|
+
it "returns the my dashboard files path" do
|
131
|
+
allow(helper).to receive(:params).and_return(controller: "my/files")
|
140
132
|
expect(helper.search_form_action).to eq(sufia.dashboard_files_path)
|
141
133
|
end
|
142
134
|
end
|
143
135
|
|
144
136
|
context "when the user is on the my collections page" do
|
145
|
-
it "
|
146
|
-
allow(helper).to receive(:params).and_return(
|
137
|
+
it "returns the my dashboard collections path" do
|
138
|
+
allow(helper).to receive(:params).and_return(controller: "my/collections")
|
147
139
|
expect(helper.search_form_action).to eq(sufia.dashboard_collections_path)
|
148
140
|
end
|
149
141
|
end
|
150
142
|
|
151
143
|
context "when the user is on the my highlights page" do
|
152
|
-
it "
|
153
|
-
allow(helper).to receive(:params).and_return(
|
144
|
+
it "returns the my dashboard highlights path" do
|
145
|
+
allow(helper).to receive(:params).and_return(controller: "my/highlights")
|
154
146
|
expect(helper.search_form_action).to eq(sufia.dashboard_highlights_path)
|
155
147
|
end
|
156
148
|
end
|
157
149
|
|
158
150
|
context "when the user is on the my shares page" do
|
159
|
-
it "
|
160
|
-
allow(helper).to receive(:params).and_return(
|
151
|
+
it "returns the my dashboard shares path" do
|
152
|
+
allow(helper).to receive(:params).and_return(controller: "my/shares")
|
161
153
|
expect(helper.search_form_action).to eq(sufia.dashboard_shares_path)
|
162
154
|
end
|
163
155
|
end
|
164
|
-
|
165
156
|
end
|
166
157
|
|
167
158
|
describe '#zotero_label' do
|
@@ -182,19 +173,17 @@ describe SufiaHelper, :type => :helper do
|
|
182
173
|
expect(helper.number_of_deposits(user1)).to eq(3)
|
183
174
|
end
|
184
175
|
|
185
|
-
def create_models
|
176
|
+
def create_models(model, user1, user2)
|
186
177
|
# deposited by the first user
|
187
178
|
3.times do |t|
|
188
|
-
conn.add
|
189
|
-
|
179
|
+
conn.add id: "199#{t}", Solrizer.solr_name('depositor', :stored_searchable) => user1.user_key, "has_model_ssim" => [model],
|
180
|
+
Solrizer.solr_name('depositor', :symbol) => user1.user_key
|
190
181
|
end
|
191
182
|
|
192
183
|
# deposited by the second user, but editable by the first
|
193
|
-
conn.add
|
194
|
-
|
184
|
+
conn.add id: "1994", Solrizer.solr_name('depositor', :stored_searchable) => user2.user_key, "has_model_ssim" => [model],
|
185
|
+
Solrizer.solr_name('depositor', :symbol) => user2.user_key, "edit_access_person_ssim" => user1.user_key
|
195
186
|
conn.commit
|
196
187
|
end
|
197
|
-
|
198
188
|
end
|
199
|
-
|
200
189
|
end
|