blacklight 6.24.0 → 7.0.0.rc1
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.npmignore +23 -0
- data/.rubocop.yml +15 -3
- data/.rubocop_todo.yml +242 -379
- data/.solr_wrapper.yml +1 -1
- data/.travis.yml +20 -24
- data/Gemfile +1 -4
- data/README.md +21 -4
- data/Rakefile +1 -2
- data/VERSION +1 -1
- data/app/assets/images/blacklight/list.svg +1 -0
- data/app/assets/images/blacklight/search.svg +1 -0
- data/app/assets/javascripts/blacklight/blacklight.js +496 -56
- data/app/assets/stylesheets/blacklight/_balanced_list.scss +7 -12
- data/app/assets/stylesheets/blacklight/_blacklight_base.scss +3 -1
- data/app/assets/stylesheets/blacklight/_bookmark.scss +1 -13
- data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +27 -0
- data/app/assets/stylesheets/blacklight/_constraints.scss +17 -25
- data/app/assets/stylesheets/blacklight/_controls.scss +8 -16
- data/app/assets/stylesheets/blacklight/_facets.scss +74 -92
- data/app/assets/stylesheets/blacklight/_header.scss +35 -48
- data/app/assets/stylesheets/blacklight/_icons.scss +29 -0
- data/app/assets/stylesheets/blacklight/_layout.scss +0 -10
- data/app/assets/stylesheets/blacklight/_mixins.scss +15 -0
- data/app/assets/stylesheets/blacklight/_modal.scss +9 -17
- data/app/assets/stylesheets/blacklight/_pagination.scss +2 -17
- data/app/assets/stylesheets/blacklight/_search_history.scss +5 -13
- data/app/assets/stylesheets/blacklight/_search_results.scss +9 -8
- data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +1 -2
- data/app/builders/blacklight/action_builder.rb +56 -0
- data/app/controllers/bookmarks_controller.rb +2 -2
- data/app/controllers/catalog_controller.rb +2 -2
- data/app/controllers/concerns/blacklight/base.rb +0 -33
- data/app/controllers/concerns/blacklight/bookmarks.rb +20 -37
- data/app/controllers/concerns/blacklight/catalog.rb +254 -213
- data/app/controllers/concerns/blacklight/controller.rb +117 -133
- data/app/controllers/concerns/blacklight/default_component_configuration.rb +12 -43
- data/app/controllers/concerns/blacklight/search_context.rb +10 -14
- data/app/controllers/concerns/blacklight/search_fields.rb +4 -14
- data/app/controllers/concerns/blacklight/token_based_user.rb +6 -10
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +32 -118
- data/app/helpers/blacklight/catalog_helper_behavior.rb +94 -88
- data/app/helpers/blacklight/component_helper_behavior.rb +19 -19
- data/app/helpers/blacklight/configuration_helper_behavior.rb +25 -54
- data/app/helpers/blacklight/facets_helper_behavior.rb +40 -39
- data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +9 -11
- data/app/helpers/blacklight/icon_helper_behavior.rb +16 -0
- data/app/helpers/blacklight/layout_helper_behavior.rb +3 -10
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +6 -6
- data/app/helpers/blacklight/render_partials_helper_behavior.rb +195 -0
- data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +18 -11
- data/app/helpers/blacklight/suggest_helper_behavior.rb +1 -0
- data/app/helpers/blacklight/url_helper_behavior.rb +21 -27
- data/app/{assets/javascripts → javascript}/blacklight/autocomplete.js +3 -2
- data/app/javascript/blacklight/autofocus.js +20 -0
- data/app/javascript/blacklight/bookmark_toggle.js +25 -0
- data/app/javascript/blacklight/checkbox_submit.js +133 -0
- data/app/{assets/javascripts → javascript}/blacklight/collapsable.js +1 -1
- data/app/javascript/blacklight/core.js +39 -0
- data/app/{assets/javascripts → javascript}/blacklight/facet_load.js +6 -6
- data/app/{assets/javascripts/blacklight/ajax_modal.js → javascript/blacklight/modal.js} +63 -63
- data/app/{assets/javascripts → javascript}/blacklight/search_context.js +10 -2
- data/app/models/blacklight/facet_paginator.rb +3 -3
- data/app/models/blacklight/icon.rb +53 -0
- data/app/models/blacklight/solr/facet_paginator.rb +3 -3
- data/app/models/blacklight/suggest_search.rb +15 -4
- data/app/models/bookmark.rb +4 -9
- data/app/models/concerns/blacklight/configurable.rb +13 -13
- data/app/models/concerns/blacklight/document.rb +8 -42
- data/app/models/concerns/blacklight/document/active_model_shim.rb +8 -11
- data/app/models/concerns/blacklight/document/cache_key.rb +1 -1
- data/app/models/concerns/blacklight/document/dublin_core.rb +2 -2
- data/app/models/concerns/blacklight/document/email.rb +1 -1
- data/app/models/concerns/blacklight/document/extensions.rb +5 -5
- data/app/models/concerns/blacklight/document/semantic_fields.rb +9 -9
- data/app/models/concerns/blacklight/document/sms.rb +1 -1
- data/app/models/concerns/blacklight/solr/document.rb +7 -8
- data/app/models/concerns/blacklight/suggest/response.rb +3 -5
- data/app/models/concerns/blacklight/user.rb +6 -6
- data/app/models/record_mailer.rb +5 -6
- data/app/models/search.rb +4 -7
- data/app/presenters/blacklight/field_presenter.rb +5 -5
- data/app/presenters/blacklight/index_presenter.rb +34 -71
- data/app/presenters/blacklight/json_presenter.rb +7 -4
- data/app/presenters/blacklight/link_alternate_presenter.rb +1 -1
- data/app/presenters/blacklight/rendering/abstract_step.rb +5 -5
- data/app/presenters/blacklight/rendering/helper_method.rb +8 -8
- data/app/presenters/blacklight/rendering/join.rb +3 -3
- data/app/presenters/blacklight/rendering/link_to_facet.rb +19 -19
- data/app/presenters/blacklight/rendering/microdata.rb +3 -3
- data/app/presenters/blacklight/rendering/pipeline.rb +5 -5
- data/app/presenters/blacklight/search_bar_presenter.rb +37 -0
- data/app/presenters/blacklight/show_presenter.rb +20 -69
- data/app/presenters/blacklight/thumbnail_presenter.rb +72 -0
- data/app/services/blacklight/document_factory.rb +11 -0
- data/app/services/blacklight/field_retriever.rb +24 -24
- data/app/services/blacklight/search_service.rb +154 -0
- data/app/views/blacklight/nav/_bookmark.html.erb +2 -2
- data/app/views/blacklight/nav/_search_history.html.erb +1 -1
- data/app/views/bookmarks/_tools.html.erb +2 -2
- data/app/views/bookmarks/index.html.erb +2 -2
- data/app/views/catalog/_bookmark_control.html.erb +26 -10
- data/app/views/catalog/_citation.html.erb +18 -23
- data/app/views/catalog/_constraints.html.erb +5 -8
- data/app/views/catalog/_constraints_element.html.erb +6 -6
- data/app/views/catalog/{_document_default.atom.builder → _document.atom.builder} +2 -2
- data/app/views/catalog/_document.html.erb +5 -3
- data/app/views/catalog/{_document_default.rss.builder → _document.rss.builder} +0 -0
- data/app/views/catalog/_document_action.html.erb +2 -1
- data/app/views/catalog/_email_form.html.erb +8 -4
- data/app/views/catalog/_facet_index_navigation.html.erb +3 -3
- data/app/views/catalog/_facet_layout.html.erb +5 -7
- data/app/views/catalog/_facet_limit.html.erb +3 -2
- data/app/views/catalog/_facet_pagination.html.erb +10 -10
- data/app/views/catalog/_facet_pivot.html.erb +2 -2
- data/app/views/catalog/_facets.html.erb +8 -12
- data/app/views/catalog/{_group_default.html.erb → _group.html.erb} +0 -0
- data/app/views/catalog/_home_text.html.erb +32 -36
- data/app/views/catalog/_index.html.erb +12 -0
- data/app/views/catalog/{_index_header_default.html.erb → _index_header.html.erb} +2 -2
- data/app/views/catalog/_per_page_widget.html.erb +6 -7
- data/app/views/catalog/_previous_next_doc.html.erb +6 -14
- data/app/views/catalog/_search_form.html.erb +12 -8
- data/app/views/catalog/_search_header.html.erb +0 -3
- data/app/views/catalog/_search_results.html.erb +4 -0
- data/app/views/catalog/_show.html.erb +10 -0
- data/app/views/catalog/{_show_header_default.html.erb → _show_header.html.erb} +0 -0
- data/app/views/catalog/_show_main_content.html.erb +4 -4
- data/app/views/catalog/_show_sidebar.html.erb +3 -3
- data/app/views/catalog/_show_tools.html.erb +9 -11
- data/app/views/catalog/_sms_form.html.erb +8 -4
- data/app/views/catalog/_sort_and_per_page.html.erb +3 -3
- data/app/views/catalog/_sort_widget.html.erb +7 -7
- data/app/views/catalog/_thumbnail.html.erb +5 -0
- data/app/views/catalog/_view_type_group.html.erb +2 -2
- data/app/views/catalog/citation.html.erb +1 -1
- data/app/views/catalog/citation.js.erb +9 -1
- data/app/views/catalog/email.html.erb +5 -5
- data/app/views/catalog/email_success.html.erb +11 -9
- data/app/views/catalog/facet.html.erb +5 -6
- data/app/views/catalog/index.atom.builder +10 -15
- data/app/views/catalog/index.html.erb +9 -11
- data/app/views/catalog/index.json.jbuilder +65 -3
- data/app/views/catalog/index.rss.builder +5 -5
- data/app/views/catalog/opensearch.xml.builder +10 -10
- data/app/views/catalog/show.html.erb +11 -6
- data/app/views/catalog/sms.html.erb +2 -3
- data/app/views/catalog/sms_success.html.erb +11 -10
- data/app/views/kaminari/blacklight/_first_page.html.erb +2 -2
- data/app/views/kaminari/blacklight/_gap.html.erb +2 -2
- data/app/views/kaminari/blacklight/_last_page.html.erb +2 -2
- data/app/views/kaminari/blacklight/_next_page.html.erb +4 -4
- data/app/views/kaminari/blacklight/_page.html.erb +3 -3
- data/app/views/kaminari/blacklight/_prev_page.html.erb +4 -4
- data/app/views/kaminari/blacklight_compact/_paginator.html.erb +4 -4
- data/app/views/layouts/blacklight.html.erb +14 -41
- data/app/views/layouts/blacklight/base.html.erb +43 -0
- data/app/views/layouts/catalog_result.html.erb +11 -0
- data/app/views/search_history/index.html.erb +16 -21
- data/app/views/{_flash_msg.html.erb → shared/_flash_msg.html.erb} +0 -0
- data/app/views/shared/_header_navbar.html.erb +8 -13
- data/app/views/shared/_modal.html.erb +6 -0
- data/app/views/shared/_user_util_links.html.erb +22 -0
- data/blacklight.gemspec +10 -11
- data/config/locales/blacklight.de.yml +0 -30
- data/config/locales/blacklight.en.yml +1 -27
- data/config/locales/blacklight.es.yml +0 -30
- data/config/locales/blacklight.fr.yml +0 -30
- data/config/locales/blacklight.hu.yml +210 -0
- data/config/locales/blacklight.it.yml +0 -30
- data/config/locales/blacklight.nl.yml +210 -0
- data/config/locales/blacklight.pt-BR.yml +6 -32
- data/config/locales/blacklight.sq.yml +1 -28
- data/config/locales/blacklight.zh.yml +0 -25
- data/config/routes.rb +3 -10
- data/db/migrate/20140202020202_create_bookmarks.rb +0 -1
- data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -1
- data/lib/blacklight.rb +4 -5
- data/lib/blacklight/abstract_repository.rb +9 -21
- data/lib/blacklight/configuration.rb +82 -89
- data/lib/blacklight/configuration/context.rb +1 -1
- data/lib/blacklight/configuration/facet_field.rb +16 -9
- data/lib/blacklight/configuration/field.rb +32 -3
- data/lib/blacklight/configuration/fields.rb +41 -48
- data/lib/blacklight/configuration/search_field.rb +2 -2
- data/lib/blacklight/configuration/sort_field.rb +2 -2
- data/lib/blacklight/configuration/view_config.rb +4 -0
- data/lib/blacklight/engine.rb +6 -10
- data/lib/blacklight/exceptions.rb +4 -7
- data/lib/blacklight/nested_open_struct_with_hash_access.rb +107 -0
- data/lib/blacklight/open_struct_with_hash_access.rb +49 -0
- data/lib/blacklight/parameters.rb +1 -1
- data/lib/blacklight/routes/searchable.rb +1 -0
- data/lib/blacklight/search_builder.rb +26 -35
- data/lib/blacklight/search_state.rb +8 -8
- data/lib/blacklight/solr/repository.rb +3 -36
- data/lib/blacklight/solr/request.rb +1 -1
- data/lib/blacklight/solr/response.rb +29 -30
- data/lib/blacklight/solr/response/facets.rb +29 -31
- data/lib/blacklight/solr/response/group.rb +3 -3
- data/lib/blacklight/solr/response/group_response.rb +1 -1
- data/lib/blacklight/solr/response/more_like_this.rb +2 -2
- data/lib/blacklight/solr/response/response.rb +2 -2
- data/lib/blacklight/solr/response/spelling.rb +3 -3
- data/lib/blacklight/solr/search_builder_behavior.rb +25 -29
- data/lib/blacklight/version.rb +1 -1
- data/lib/generators/blacklight/assets_generator.rb +8 -8
- data/lib/generators/blacklight/controller_generator.rb +4 -5
- data/lib/generators/blacklight/document_generator.rb +1 -1
- data/lib/generators/blacklight/install_generator.rb +18 -21
- data/lib/generators/blacklight/search_builder_generator.rb +1 -1
- data/lib/generators/blacklight/{solr5_generator.rb → solr_generator.rb} +4 -6
- data/lib/generators/blacklight/templates/.solr_wrapper.yml +5 -0
- data/lib/generators/blacklight/templates/blacklight.scss +0 -2
- data/lib/generators/blacklight/templates/catalog_controller.rb +52 -51
- data/{solr → lib/generators/blacklight/templates/solr}/conf/_rest_managed.json +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/admin-extra.html +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/elevate.xml +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/mapping-ISOLatin1Accent.txt +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/protwords.txt +0 -0
- data/lib/generators/blacklight/templates/solr/conf/schema.xml +390 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/scripts.conf +0 -0
- data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +195 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/spellings.txt +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords.txt +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords_en.txt +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/synonyms.txt +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example.xsl +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_atom.xsl +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_rss.xsl +0 -0
- data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/luke.xsl +0 -0
- data/lib/generators/blacklight/test_support_generator.rb +10 -10
- data/lib/generators/blacklight/user_generator.rb +3 -6
- data/lib/railties/blacklight.rake +19 -14
- data/package-lock.json +2057 -0
- data/package.json +28 -0
- data/spec/controllers/alternate_controller_spec.rb +1 -1
- data/spec/controllers/application_controller_spec.rb +1 -1
- data/spec/controllers/blacklight/base_spec.rb +1 -1
- data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +11 -7
- data/spec/controllers/blacklight/facet_spec.rb +1 -1
- data/spec/controllers/blacklight/search_fields_spec.rb +1 -13
- data/spec/controllers/bookmarks_controller_spec.rb +1 -36
- data/spec/controllers/catalog_controller_spec.rb +153 -53
- data/spec/controllers/search_history_controller_spec.rb +2 -2
- data/spec/features/alternate_controller_spec.rb +1 -1
- data/spec/features/autocomplete_spec.rb +2 -2
- data/spec/features/bookmarks_spec.rb +10 -10
- data/spec/features/did_you_mean_spec.rb +3 -9
- data/spec/features/facets_spec.rb +11 -11
- data/spec/features/record_view_spec.rb +1 -6
- data/spec/features/search_context_spec.rb +2 -2
- data/spec/features/search_filters_spec.rb +41 -41
- data/spec/features/search_formats_spec.rb +1 -1
- data/spec/features/search_history_spec.rb +1 -26
- data/spec/features/search_pagination_spec.rb +1 -1
- data/spec/features/search_results_spec.rb +3 -4
- data/spec/features/search_sort_spec.rb +2 -2
- data/spec/features/search_spec.rb +5 -10
- data/{solr → spec/fixtures}/sample_solr_documents.yml +688 -688
- data/spec/helpers/{configuration_helper_spec.rb → blacklight/configuration_helper_behavior_spec.rb} +70 -65
- data/spec/helpers/{facets_helper_spec.rb → blacklight/facets_helper_behavior_spec.rb} +7 -8
- data/spec/helpers/{hash_as_hidden_fields_spec.rb → blacklight/hash_as_hidden_fields_behavior_spec.rb} +1 -1
- data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +8 -0
- data/spec/helpers/{layout_helper_spec.rb → blacklight/layout_helper_behavior_spec.rb} +5 -15
- data/spec/helpers/{render_constraints_helper_spec.rb → blacklight/render_constraints_helper_behavior_spec.rb} +2 -3
- data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +80 -0
- data/spec/helpers/{search_history_constraints_helper_spec.rb → blacklight/search_history_constraints_helper_behavior_spec.rb} +9 -9
- data/spec/helpers/{suggest_helper_spec.rb → blacklight/suggest_helper_behavior_spec.rb} +4 -2
- data/spec/helpers/{url_helper_spec.rb → blacklight/url_helper_behavior_spec.rb} +11 -15
- data/spec/helpers/blacklight_helper_spec.rb +36 -141
- data/spec/helpers/catalog_helper_spec.rb +37 -56
- data/spec/integration/generators/blacklight/{solr5_generator_spec.rb → solr_generator_spec.rb} +3 -3
- data/spec/lib/blacklight/configuration/facet_field_spec.rb +11 -0
- data/spec/lib/blacklight/configuration/field_spec.rb +12 -0
- data/spec/lib/blacklight/nested_open_struct_with_hash_access_spec.rb +17 -0
- data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +153 -0
- data/spec/lib/blacklight/parameters_spec.rb +1 -1
- data/spec/lib/blacklight/search_state_spec.rb +2 -2
- data/spec/lib/blacklight_spec.rb +1 -1
- data/spec/lib/tasks/blacklight_task_spec.rb +1 -1
- data/spec/models/blacklight/configurable_spec.rb +15 -16
- data/spec/models/blacklight/configuration/context_spec.rb +1 -1
- data/spec/models/blacklight/configuration_spec.rb +146 -135
- data/spec/models/blacklight/document/active_model_shim_spec.rb +11 -1
- data/spec/models/blacklight/document/cache_key_spec.rb +1 -1
- data/spec/models/blacklight/document/dublin_core_spec.rb +5 -5
- data/spec/models/blacklight/document/email_spec.rb +3 -3
- data/spec/models/blacklight/document/sms_spec.rb +3 -3
- data/spec/models/blacklight/document_spec.rb +3 -16
- data/spec/models/blacklight/facet_paginator_spec.rb +1 -1
- data/spec/models/blacklight/icon_spec.rb +34 -0
- data/spec/models/blacklight/search_builder_spec.rb +33 -27
- data/spec/models/blacklight/solr/document_spec.rb +18 -7
- data/spec/models/blacklight/solr/facet_paginator_spec.rb +1 -1
- data/spec/models/blacklight/solr/repository_spec.rb +32 -27
- data/spec/models/blacklight/solr/request_spec.rb +1 -1
- data/spec/models/blacklight/solr/response/facets_spec.rb +1 -1
- data/spec/models/blacklight/solr/response/group_response_spec.rb +1 -1
- data/spec/models/blacklight/solr/response/group_spec.rb +1 -1
- data/spec/models/blacklight/solr/response_spec.rb +9 -6
- data/spec/models/blacklight/solr/search_builder_spec.rb +35 -48
- data/spec/models/blacklight/suggest/response_spec.rb +4 -5
- data/spec/models/blacklight/suggest_search_spec.rb +14 -7
- data/spec/models/blacklight/user_spec.rb +1 -1
- data/spec/models/bookmark_spec.rb +1 -1
- data/spec/models/record_mailer_spec.rb +2 -2
- data/spec/models/search_spec.rb +1 -1
- data/spec/models/solr_document_spec.rb +3 -3
- data/spec/presenters/blacklight/search_bar_presenter_spec.rb +72 -0
- data/spec/presenters/index_presenter_spec.rb +70 -143
- data/spec/presenters/pipeline_spec.rb +4 -4
- data/spec/presenters/show_presenter_spec.rb +83 -145
- data/spec/presenters/thumbnail_presenter_spec.rb +171 -0
- data/spec/routing/catalog_routing_spec.rb +1 -17
- data/spec/services/blacklight/search_service_spec.rb +446 -0
- data/spec/spec_helper.rb +22 -9
- data/spec/test_app_templates/Gemfile.extra +2 -5
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +1 -1
- data/spec/views/catalog/_constraints.html.erb_spec.rb +1 -3
- data/spec/views/catalog/_constraints_element.html.erb_spec.rb +8 -8
- data/spec/views/catalog/_document.html.erb_spec.rb +7 -7
- data/spec/views/catalog/_document_list.html.erb_spec.rb +1 -1
- data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +1 -1
- data/spec/views/catalog/_facet_layout.html.erb_spec.rb +6 -6
- data/spec/views/catalog/_facets.html.erb_spec.rb +2 -2
- data/spec/views/catalog/{_index_default.erb_spec.rb → _index.html.erb_spec.rb} +1 -1
- data/spec/views/catalog/{_index_header_default.html.erb_spec.rb → _index_header.html.erb_spec.rb} +4 -4
- data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +4 -27
- data/spec/views/catalog/_search_header.erb_spec.rb +1 -3
- data/spec/views/catalog/{_show_default.erb_spec.rb → _show.html.erb_spec.rb} +1 -1
- data/spec/views/catalog/_show_sidebar.erb_spec.rb +3 -3
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +3 -3
- data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +1 -1
- data/spec/views/catalog/{_thumbnail_default.erb_spec.rb → _thumbnail.html.erb_spec.rb} +3 -3
- data/spec/views/catalog/_view_type_group.html.erb_spec.rb +5 -1
- data/spec/views/catalog/email_success.html.erb_spec.rb +9 -0
- data/spec/views/catalog/facet.html.erb_spec.rb +1 -1
- data/spec/views/catalog/facet.json.jbuilder_spec.rb +1 -1
- data/spec/views/catalog/index.atom.builder_spec.rb +2 -2
- data/spec/views/catalog/index.html.erb_spec.rb +4 -7
- data/spec/views/catalog/index.json.jbuilder_spec.rb +66 -21
- data/spec/views/catalog/opensearch.xml.builder_spec.rb +1 -1
- data/spec/views/catalog/show.html.erb_spec.rb +2 -2
- data/spec/views/catalog/sms_success.html.erb_spec.rb +9 -0
- data/spec/views/{_user_util_links.html.erb_spec.rb → shared/_user_util_links.html.erb_spec.rb} +4 -4
- data/tasks/blacklight.rake +10 -8
- data/template.demo.rb +1 -11
- metadata +171 -189
- data/app/assets/javascripts/blacklight/autofocus.js +0 -16
- data/app/assets/javascripts/blacklight/bookmark_toggle.js +0 -23
- data/app/assets/javascripts/blacklight/checkbox_submit.js +0 -139
- data/app/assets/javascripts/blacklight/core.js +0 -30
- data/app/controllers/concerns/blacklight/request_builders.rb +0 -77
- data/app/controllers/concerns/blacklight/saved_searches.rb +0 -70
- data/app/controllers/concerns/blacklight/search_helper.rb +0 -161
- data/app/controllers/concerns/blacklight/suggest.rb +0 -25
- data/app/controllers/saved_searches_controller.rb +0 -4
- data/app/controllers/suggest_controller.rb +0 -4
- data/app/helpers/blacklight/deprecated_url_helper_behavior.rb +0 -57
- data/app/helpers/blacklight/render_partials_helper.rb +0 -205
- data/app/helpers/blacklight_configuration_helper.rb +0 -4
- data/app/helpers/blacklight_url_helper.rb +0 -4
- data/app/helpers/component_helper.rb +0 -4
- data/app/helpers/facets_helper.rb +0 -4
- data/app/helpers/hash_as_hidden_fields_helper.rb +0 -4
- data/app/helpers/layout_helper.rb +0 -4
- data/app/helpers/render_constraints_helper.rb +0 -4
- data/app/helpers/search_history_constraints_helper.rb +0 -4
- data/app/helpers/suggest_helper.rb +0 -4
- data/app/models/concerns/blacklight/solr/document/more_like_this.rb +0 -6
- data/app/presenters/blacklight/document_presenter.rb +0 -153
- data/app/views/_user_util_links.html.erb +0 -26
- data/app/views/blacklight/nav/_saved_searches.html.erb +0 -1
- data/app/views/catalog/_index_default.html.erb +0 -12
- data/app/views/catalog/_show_default.html.erb +0 -10
- data/app/views/catalog/_thumbnail_default.html.erb +0 -5
- data/app/views/saved_searches/index.html.erb +0 -32
- data/app/views/shared/_ajax_modal.html.erb +0 -6
- data/lib/blacklight/utils.rb +0 -183
- data/lib/generators/blacklight/solr4_generator.rb +0 -31
- data/solr/conf/schema.xml +0 -627
- data/solr/conf/solrconfig.xml +0 -411
- data/spec/controllers/blacklight/search_helper_spec.rb +0 -489
- data/spec/controllers/saved_searches_controller_spec.rb +0 -32
- data/spec/controllers/suggest_controller_spec.rb +0 -17
- data/spec/features/saved_searches_spec.rb +0 -47
- data/spec/helpers/deprecated_url_helper_behavior_spec.rb +0 -101
- data/spec/lib/blacklight/utils_spec.rb +0 -167
- data/spec/models/blacklight/solr/document/more_like_this_spec.rb +0 -18
- data/spec/presenters/document_presenter_spec.rb +0 -438
- data/spec/support/backport_test.rb +0 -14
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
RSpec.describe Blacklight::SearchHistoryConstraintsHelperBehavior do
|
|
4
4
|
|
|
5
5
|
before(:all) do
|
|
6
6
|
@config = Blacklight::Configuration.new do |config|
|
|
@@ -24,21 +24,21 @@ describe SearchHistoryConstraintsHelper do
|
|
|
24
24
|
it "renders basic element" do
|
|
25
25
|
response = helper.render_search_to_s_element("key", "value")
|
|
26
26
|
expect(response).to have_selector("span.constraint") do |span|
|
|
27
|
-
expect(span).to have_selector("span.
|
|
28
|
-
expect(span).to have_selector("span.
|
|
27
|
+
expect(span).to have_selector("span.filter-name", content: "key:")
|
|
28
|
+
expect(span).to have_selector("span.filter-value", content: "value")
|
|
29
29
|
end
|
|
30
30
|
expect(response).to be_html_safe
|
|
31
31
|
end
|
|
32
32
|
it "escapes them that need escaping" do
|
|
33
33
|
response = helper.render_search_to_s_element("key>", "value>")
|
|
34
34
|
expect(response).to have_selector("span.constraint") do |span|
|
|
35
|
-
expect(span).to have_selector("span.
|
|
35
|
+
expect(span).to have_selector("span.filter-name") do |s2|
|
|
36
36
|
# Note: nokogiri's gettext will unescape the inner html
|
|
37
37
|
# which seems to be what rspecs "contains" method calls on
|
|
38
38
|
# text nodes - thus the to_s inserted below.
|
|
39
39
|
expect(s2).to match(/key>:/)
|
|
40
40
|
end
|
|
41
|
-
expect(span).to have_selector("span.
|
|
41
|
+
expect(span).to have_selector("span.filter-value") do |s3|
|
|
42
42
|
expect(s3).to match(/value>/)
|
|
43
43
|
end
|
|
44
44
|
end
|
|
@@ -47,8 +47,8 @@ describe SearchHistoryConstraintsHelper do
|
|
|
47
47
|
it "does not escape with options set thus" do
|
|
48
48
|
response = helper.render_search_to_s_element("key>", "value>", :escape_key => false, :escape_value => false)
|
|
49
49
|
expect(response).to have_selector("span.constraint") do |span|
|
|
50
|
-
expect(span).to have_selector("span.
|
|
51
|
-
expect(span).to have_selector("span.
|
|
50
|
+
expect(span).to have_selector("span.filter-name", content: "key>:")
|
|
51
|
+
expect(span).to have_selector("span.filter-value", content: "value>")
|
|
52
52
|
end
|
|
53
53
|
expect(response).to be_html_safe
|
|
54
54
|
end
|
|
@@ -74,12 +74,12 @@ describe SearchHistoryConstraintsHelper do
|
|
|
74
74
|
describe "render_search_to_s_filters" do
|
|
75
75
|
it "renders a constraint for a selected facet in the config" do
|
|
76
76
|
response = helper.render_search_to_s_filters(:f => {"some_facet" => ["value1", "value2"]})
|
|
77
|
-
expect(response).to eq("<span class=\"constraint\"><span class=\"
|
|
77
|
+
expect(response).to eq("<span class=\"constraint\"><span class=\"filter-name\">Some:</span><span class=\"filter-values\"><span class=\"filter-value\">value1</span><span class=\"filter-separator\"> and </span><span class=\"filter-value\">value2</span></span></span>")
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
it "renders a constraint for a selected facet not in the config" do
|
|
81
81
|
response = helper.render_search_to_s_filters(:f => {"undefined_facet" => ["value1", "value2"]})
|
|
82
|
-
expect(response).to eq("<span class=\"constraint\"><span class=\"
|
|
82
|
+
expect(response).to eq("<span class=\"constraint\"><span class=\"filter-name\">#{'undefined_facet'.titleize}:</span><span class=\"filter-values\"><span class=\"filter-value\">value1</span><span class=\"filter-separator\"> and </span><span class=\"filter-value\">value2</span></span></span>")
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
context 'with I18n translations for selected facet' do
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
RSpec.describe Blacklight::SuggestHelperBehavior do
|
|
4
4
|
before do
|
|
5
5
|
allow(helper).to receive(:blacklight_config).and_return(blacklight_config)
|
|
6
|
+
expect(Deprecation).to receive(:warn)
|
|
6
7
|
end
|
|
8
|
+
|
|
7
9
|
describe '#autocomplete_enabled?' do
|
|
8
10
|
describe 'with autocomplete config' do
|
|
9
11
|
let(:blacklight_config) do
|
|
@@ -38,4 +40,4 @@ describe SuggestHelper do
|
|
|
38
40
|
end
|
|
39
41
|
end
|
|
40
42
|
end
|
|
41
|
-
end
|
|
43
|
+
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
RSpec.describe Blacklight::UrlHelperBehavior do
|
|
4
4
|
|
|
5
5
|
let(:blacklight_config) do
|
|
6
6
|
Blacklight::Configuration.new.configure do |config|
|
|
7
|
-
config.index.title_field = '
|
|
7
|
+
config.index.title_field = 'title_tsim'
|
|
8
8
|
config.index.display_type_field = 'format'
|
|
9
9
|
end
|
|
10
10
|
end
|
|
@@ -110,11 +110,7 @@ describe BlacklightUrlHelper do
|
|
|
110
110
|
|
|
111
111
|
context "without current search context" do
|
|
112
112
|
before do
|
|
113
|
-
|
|
114
|
-
controller.request.assign_parameters(Rails.application.routes, 'catalog', 'show', { id: '123' }, '/catalog/123', [:controller, :action, :id])
|
|
115
|
-
else
|
|
116
|
-
controller.request.assign_parameters(Rails.application.routes, 'catalog', 'show', id: '123')
|
|
117
|
-
end
|
|
113
|
+
controller.request.assign_parameters(Rails.application.routes, 'catalog', 'show', { id: '123' }, '/catalog/123', [:controller, :action, :id])
|
|
118
114
|
allow(helper).to receive_messages(current_search_session: nil)
|
|
119
115
|
end
|
|
120
116
|
|
|
@@ -198,34 +194,34 @@ describe BlacklightUrlHelper do
|
|
|
198
194
|
end
|
|
199
195
|
|
|
200
196
|
describe "link_to_document" do
|
|
201
|
-
let(:
|
|
197
|
+
let(:title_tsim) { '654321' }
|
|
202
198
|
let(:id) { '123456' }
|
|
203
|
-
let(:data) { { 'id' => id, '
|
|
199
|
+
let(:data) { { 'id' => id, 'title_tsim' => [title_tsim] } }
|
|
204
200
|
let(:document) { SolrDocument.new(data) }
|
|
205
201
|
before do
|
|
206
202
|
allow(controller).to receive(:action_name).and_return('index')
|
|
207
203
|
end
|
|
208
204
|
|
|
209
205
|
it "consists of the document title wrapped in a <a>" do
|
|
210
|
-
expect(helper.link_to_document(document, :
|
|
206
|
+
expect(helper.link_to_document(document, :title_tsim)).to have_selector("a", :text => '654321', :count => 1)
|
|
211
207
|
end
|
|
212
208
|
|
|
213
209
|
it "accepts and returns a string label" do
|
|
214
|
-
expect(helper.link_to_document(document, String.new('
|
|
210
|
+
expect(helper.link_to_document(document, String.new('title_tsim'))).to have_selector("a", :text => 'title_tsim', :count => 1)
|
|
215
211
|
end
|
|
216
212
|
|
|
217
213
|
it "accepts and returns a Proc" do
|
|
218
|
-
expect(helper.link_to_document(document, Proc.new { |doc, opts| doc[:id] + ": " + doc.first(:
|
|
214
|
+
expect(helper.link_to_document(document, Proc.new { |doc, opts| doc[:id] + ": " + doc.first(:title_tsim) })).to have_selector("a", :text => '123456: 654321', :count => 1)
|
|
219
215
|
end
|
|
220
216
|
|
|
221
217
|
context 'when label is missing' do
|
|
222
218
|
let(:data) { { 'id' => id } }
|
|
223
219
|
it "returns id" do
|
|
224
|
-
expect(helper.link_to_document(document, :
|
|
220
|
+
expect(helper.link_to_document(document, :title_tsim)).to have_selector("a", :text => '123456', :count => 1)
|
|
225
221
|
end
|
|
226
222
|
|
|
227
223
|
it "is html safe" do
|
|
228
|
-
expect(helper.link_to_document(document, :
|
|
224
|
+
expect(helper.link_to_document(document, :title_tsim)).to be_html_safe
|
|
229
225
|
end
|
|
230
226
|
|
|
231
227
|
it "passes on the title attribute to the link_to_with_data method" do
|
|
@@ -247,7 +243,7 @@ describe BlacklightUrlHelper do
|
|
|
247
243
|
it "converts the counter parameter into a data- attribute" do
|
|
248
244
|
allow(helper).to receive(:track_test_path).with(hash_including(id: have_attributes(id: '123456'), counter: 5)).and_return('tracking url')
|
|
249
245
|
|
|
250
|
-
expect(helper.link_to_document(document, :
|
|
246
|
+
expect(helper.link_to_document(document, :title_tsim, counter: 5)).to include 'data-context-href="tracking url"'
|
|
251
247
|
end
|
|
252
248
|
|
|
253
249
|
it "includes the data- attributes from the options" do
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
describe BlacklightHelper do
|
|
2
|
+
RSpec.describe BlacklightHelper do
|
|
3
3
|
before(:each) do
|
|
4
4
|
allow(helper).to receive(:current_or_guest_user).and_return(User.new)
|
|
5
5
|
allow(helper).to receive(:search_action_path) do |*args|
|
|
@@ -7,13 +7,37 @@ describe BlacklightHelper do
|
|
|
7
7
|
end
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
describe "#application_name"
|
|
10
|
+
describe "#application_name" do
|
|
11
|
+
before do
|
|
12
|
+
allow(Rails).to receive(:cache).and_return(ActiveSupport::Cache::NullStore.new)
|
|
13
|
+
end
|
|
11
14
|
it "defaults to 'Blacklight'" do
|
|
12
15
|
expect(application_name).to eq "Blacklight"
|
|
13
16
|
end
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
|
|
18
|
+
context "when the language is not english " do
|
|
19
|
+
around do |example|
|
|
20
|
+
I18n.locale = :de
|
|
21
|
+
example.run
|
|
22
|
+
I18n.locale = :en
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
context "and no translation exists for that language" do
|
|
26
|
+
it "defaults to 'Blacklight'" do
|
|
27
|
+
expect(application_name).to eq "Blacklight"
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
context "and a translation exists for that language" do
|
|
32
|
+
around do |example|
|
|
33
|
+
I18n.backend.store_translations(:de, 'blacklight' => { 'application_name' => 'Schwarzlicht' } )
|
|
34
|
+
example.run
|
|
35
|
+
I18n.backend.reload!
|
|
36
|
+
end
|
|
37
|
+
it "uses the provided value" do
|
|
38
|
+
expect(application_name).to eq "Schwarzlicht"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
17
41
|
end
|
|
18
42
|
end
|
|
19
43
|
|
|
@@ -34,10 +58,11 @@ describe BlacklightHelper do
|
|
|
34
58
|
describe "render_link_rel_alternates" do
|
|
35
59
|
let(:document) { instance_double(SolrDocument) }
|
|
36
60
|
let(:result) { double }
|
|
37
|
-
let(:
|
|
61
|
+
let(:view_context) { double(blacklight_config: blacklight_config, document_index_view_type: 'index') }
|
|
62
|
+
let(:presenter) { Blacklight::IndexPresenter.new(document, view_context) }
|
|
38
63
|
let(:blacklight_config) do
|
|
39
64
|
Blacklight::Configuration.new.configure do |config|
|
|
40
|
-
config.index.title_field = '
|
|
65
|
+
config.index.title_field = 'title_tsim'
|
|
41
66
|
config.index.display_type_field = 'format'
|
|
42
67
|
end
|
|
43
68
|
end
|
|
@@ -61,11 +86,11 @@ describe BlacklightHelper do
|
|
|
61
86
|
describe "with a config" do
|
|
62
87
|
let(:config) do
|
|
63
88
|
Blacklight::Configuration.new.configure do |config|
|
|
64
|
-
config.index.title_field = '
|
|
89
|
+
config.index.title_field = 'title_tsim'
|
|
65
90
|
config.index.display_type_field = 'format'
|
|
66
91
|
end
|
|
67
92
|
end
|
|
68
|
-
let(:document) { SolrDocument.new('
|
|
93
|
+
let(:document) { SolrDocument.new('title_tsim' => "A Fake Document", 'id'=>'8') }
|
|
69
94
|
|
|
70
95
|
before do
|
|
71
96
|
config.add_show_tools_partial(:bookmark, partial: 'catalog/bookmark_control')
|
|
@@ -88,7 +113,7 @@ describe BlacklightHelper do
|
|
|
88
113
|
it "renders partials" do
|
|
89
114
|
allow(controller).to receive(:render_bookmarks_control?).and_return(true)
|
|
90
115
|
response = helper.render_index_doc_actions(document)
|
|
91
|
-
expect(response).to have_selector(".
|
|
116
|
+
expect(response).to have_selector(".bookmark-toggle")
|
|
92
117
|
end
|
|
93
118
|
|
|
94
119
|
it "is nil if no partials are renderable" do
|
|
@@ -106,7 +131,7 @@ describe BlacklightHelper do
|
|
|
106
131
|
describe "render_show_doc_actions" do
|
|
107
132
|
it "renders partials" do
|
|
108
133
|
response = helper.render_show_doc_actions(document)
|
|
109
|
-
expect(response).to have_selector(".
|
|
134
|
+
expect(response).to have_selector(".bookmark-toggle")
|
|
110
135
|
end
|
|
111
136
|
end
|
|
112
137
|
end
|
|
@@ -151,50 +176,6 @@ describe BlacklightHelper do
|
|
|
151
176
|
end
|
|
152
177
|
end
|
|
153
178
|
|
|
154
|
-
context "render methods" do
|
|
155
|
-
let(:field) { "some_field" }
|
|
156
|
-
let(:doc) { instance_double(SolrDocument) }
|
|
157
|
-
let(:presenter) { instance_double(Blacklight::ShowPresenter) }
|
|
158
|
-
before do
|
|
159
|
-
allow(Deprecation).to receive(:warn) # TODO: purge Deprecations
|
|
160
|
-
allow(helper).to receive(:presenter).with(doc).and_return(presenter)
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
describe "#render_index_field_value" do
|
|
164
|
-
it "passes the document and field through to the presenter" do
|
|
165
|
-
expect(presenter).to receive(:field_value).with(field, {})
|
|
166
|
-
helper.render_index_field_value(doc, field)
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
it "allows the document and field to be passed as hash arguments" do
|
|
170
|
-
expect(presenter).to receive(:field_value).with(field, {})
|
|
171
|
-
helper.render_index_field_value(document: doc, field: field)
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
it "allows additional options to be passed to the presenter" do
|
|
175
|
-
expect(presenter).to receive(:field_value).with(field, x: 1)
|
|
176
|
-
helper.render_index_field_value(document: doc, field: field, x: 1)
|
|
177
|
-
end
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
describe "#render_document_show_field_value" do
|
|
181
|
-
it "passes the document and field through to the presenter" do
|
|
182
|
-
expect(presenter).to receive(:field_value).with(field, {})
|
|
183
|
-
helper.render_document_show_field_value(doc, field)
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
it "allows the document and field to be passed as hash arguments" do
|
|
187
|
-
expect(presenter).to receive(:field_value).with(field, {})
|
|
188
|
-
helper.render_document_show_field_value(document: doc, field: field)
|
|
189
|
-
end
|
|
190
|
-
|
|
191
|
-
it "allows additional options to be passed to the presenter" do
|
|
192
|
-
expect(presenter).to receive(:field_value).with(field, x: 1)
|
|
193
|
-
helper.render_document_show_field_value(document: doc, field: field, x: 1)
|
|
194
|
-
end
|
|
195
|
-
end
|
|
196
|
-
end
|
|
197
|
-
|
|
198
179
|
describe "#document_has_value?" do
|
|
199
180
|
let(:doc) { double(SolrDocument) }
|
|
200
181
|
it "ifs the document has the field value" do
|
|
@@ -254,79 +235,6 @@ describe BlacklightHelper do
|
|
|
254
235
|
end
|
|
255
236
|
end
|
|
256
237
|
|
|
257
|
-
describe "#render_document_partials" do
|
|
258
|
-
let(:doc) { double }
|
|
259
|
-
before do
|
|
260
|
-
allow(helper).to receive_messages(document_partial_path_templates: [])
|
|
261
|
-
allow(helper).to receive_messages(document_index_view_type: 'index_header')
|
|
262
|
-
end
|
|
263
|
-
|
|
264
|
-
it "gets the document format from document_partial_name" do
|
|
265
|
-
allow(helper).to receive(:document_partial_name).with(doc, :xyz)
|
|
266
|
-
helper.render_document_partial(doc, :xyz)
|
|
267
|
-
end
|
|
268
|
-
end
|
|
269
|
-
|
|
270
|
-
describe "#document_partial_name" do
|
|
271
|
-
let(:blacklight_config) { Blacklight::Configuration.new }
|
|
272
|
-
before do
|
|
273
|
-
allow(helper).to receive_messages(blacklight_config: blacklight_config)
|
|
274
|
-
end
|
|
275
|
-
|
|
276
|
-
context "with a solr document with empty fields" do
|
|
277
|
-
let(:document) { SolrDocument.new }
|
|
278
|
-
it "is the default value" do
|
|
279
|
-
expect(helper.document_partial_name(document)).to eq 'default'
|
|
280
|
-
end
|
|
281
|
-
end
|
|
282
|
-
|
|
283
|
-
context "with a solr document with the display type field set" do
|
|
284
|
-
let(:document) { SolrDocument.new 'my_field' => 'xyz'}
|
|
285
|
-
before do
|
|
286
|
-
blacklight_config.show.display_type_field = 'my_field'
|
|
287
|
-
end
|
|
288
|
-
|
|
289
|
-
it "uses the value in the configured display type field" do
|
|
290
|
-
expect(helper.document_partial_name(document)).to eq 'xyz'
|
|
291
|
-
end
|
|
292
|
-
it "uses the value in the configured display type field if the action-specific field is empty" do
|
|
293
|
-
expect(helper.document_partial_name(document, :some_action)).to eq 'xyz'
|
|
294
|
-
end
|
|
295
|
-
end
|
|
296
|
-
|
|
297
|
-
context "with a solr doucment with an action-specific field set" do
|
|
298
|
-
let(:document) { SolrDocument.new 'my_field' => 'xyz', 'other_field' => 'abc' }
|
|
299
|
-
before do
|
|
300
|
-
blacklight_config.show.media_display_type_field = 'my_field'
|
|
301
|
-
blacklight_config.show.metadata_display_type_field = 'other_field'
|
|
302
|
-
end
|
|
303
|
-
it "uses the value in the action-specific fields" do
|
|
304
|
-
expect(helper.document_partial_name(document, :media)).to eq 'xyz'
|
|
305
|
-
expect(helper.document_partial_name(document, :metadata)).to eq 'abc'
|
|
306
|
-
end
|
|
307
|
-
end
|
|
308
|
-
end
|
|
309
|
-
|
|
310
|
-
describe "#type_field_to_partial_name" do
|
|
311
|
-
let(:document) { double }
|
|
312
|
-
context "with default value" do
|
|
313
|
-
subject { helper.type_field_to_partial_name(document, 'default') }
|
|
314
|
-
it { should eq 'default' }
|
|
315
|
-
end
|
|
316
|
-
context "with spaces" do
|
|
317
|
-
subject { helper.type_field_to_partial_name(document, 'one two three') }
|
|
318
|
-
it { should eq 'one_two_three' }
|
|
319
|
-
end
|
|
320
|
-
context "with hyphens" do
|
|
321
|
-
subject { helper.type_field_to_partial_name(document, 'one-two-three') }
|
|
322
|
-
it { should eq 'one_two_three' }
|
|
323
|
-
end
|
|
324
|
-
context "an array" do
|
|
325
|
-
subject { helper.type_field_to_partial_name(document, ['one', 'two', 'three']) }
|
|
326
|
-
it { should eq 'one_two_three' }
|
|
327
|
-
end
|
|
328
|
-
end
|
|
329
|
-
|
|
330
238
|
describe "#opensearch_description_tag" do
|
|
331
239
|
subject { helper.opensearch_description_tag 'title', 'href' }
|
|
332
240
|
it "has a search rel" do
|
|
@@ -417,19 +325,6 @@ describe BlacklightHelper do
|
|
|
417
325
|
allow(helper).to receive(:blacklight_config).and_return(blacklight_config)
|
|
418
326
|
end
|
|
419
327
|
|
|
420
|
-
describe "#presenter_class" do
|
|
421
|
-
it "uses the value defined in the blacklight configuration" do
|
|
422
|
-
expect(Deprecation).to receive(:warn).exactly(2).times
|
|
423
|
-
blacklight_config.document_presenter_class = presenter_class
|
|
424
|
-
expect(helper.presenter_class).to eq presenter_class
|
|
425
|
-
end
|
|
426
|
-
|
|
427
|
-
it "defaults to Blacklight::DocumentPresenter" do
|
|
428
|
-
expect(Deprecation).to receive(:warn)
|
|
429
|
-
expect(helper.presenter_class).to eq Blacklight::DocumentPresenter
|
|
430
|
-
end
|
|
431
|
-
end
|
|
432
|
-
|
|
433
328
|
describe "#index_presenter_class" do
|
|
434
329
|
it "uses the value defined in the blacklight configuration" do
|
|
435
330
|
blacklight_config.index.document_presenter_class = presenter_class
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
describe CatalogHelper do
|
|
3
|
+
RSpec.describe CatalogHelper do
|
|
4
4
|
include ERB::Util
|
|
5
5
|
include CatalogHelper
|
|
6
6
|
|
|
@@ -174,6 +174,9 @@ describe CatalogHelper do
|
|
|
174
174
|
end
|
|
175
175
|
|
|
176
176
|
describe "should_autofocus_on_search_box?" do
|
|
177
|
+
before do
|
|
178
|
+
expect(Deprecation).to receive(:warn)
|
|
179
|
+
end
|
|
177
180
|
it "is focused if we're on a catalog-like index page without query or facet parameters" do
|
|
178
181
|
allow(helper).to receive_messages(controller: CatalogController.new, action_name: "index", has_search_parameters?: false)
|
|
179
182
|
expect(helper.should_autofocus_on_search_box?).to be true
|
|
@@ -196,89 +199,67 @@ describe CatalogHelper do
|
|
|
196
199
|
end
|
|
197
200
|
|
|
198
201
|
describe "has_thumbnail?" do
|
|
199
|
-
|
|
202
|
+
before do
|
|
203
|
+
expect(Deprecation).to receive(:warn)
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
let(:document) { SolrDocument.new(data) }
|
|
207
|
+
let(:data) { {} }
|
|
208
|
+
|
|
200
209
|
it "has a thumbnail if a thumbnail_method is configured" do
|
|
201
|
-
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_method => :xyz) ))
|
|
210
|
+
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_method => :xyz, document_presenter_class: Blacklight::IndexPresenter) ))
|
|
202
211
|
expect(helper.has_thumbnail? document).to be true
|
|
203
212
|
end
|
|
204
213
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
214
|
+
context "if a thumbnail_field is configured and it exists in the document" do
|
|
215
|
+
let(:data) { { xyz: 'abc' } }
|
|
216
|
+
it "has a thumbnail" do
|
|
217
|
+
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_field => :xyz, document_presenter_class: Blacklight::IndexPresenter) ))
|
|
218
|
+
expect(helper.has_thumbnail? document).to be true
|
|
219
|
+
end
|
|
209
220
|
end
|
|
210
|
-
|
|
221
|
+
|
|
211
222
|
it "does not have a thumbnail if the thumbnail_field is missing from the document" do
|
|
212
|
-
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_field => :xyz) ))
|
|
223
|
+
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_field => :xyz, document_presenter_class: Blacklight::IndexPresenter) ))
|
|
213
224
|
allow(document).to receive_messages(has?: false)
|
|
214
225
|
expect(helper.has_thumbnail? document).to be false
|
|
215
226
|
end
|
|
216
227
|
|
|
217
228
|
it "does not have a thumbnail if none of the fields are configured" do
|
|
218
|
-
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new() ))
|
|
229
|
+
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(document_presenter_class: Blacklight::IndexPresenter) ))
|
|
219
230
|
expect(helper.has_thumbnail? document).to be_falsey
|
|
220
231
|
end
|
|
221
232
|
end
|
|
222
233
|
|
|
223
234
|
describe "render_thumbnail_tag" do
|
|
224
|
-
let(:
|
|
225
|
-
|
|
226
|
-
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_method => :xyz) ))
|
|
227
|
-
expect(helper).to receive_messages(:xyz => "some-thumbnail")
|
|
228
|
-
|
|
229
|
-
allow(helper).to receive(:link_to_document).with(document, "some-thumbnail", {})
|
|
230
|
-
helper.render_thumbnail_tag document
|
|
235
|
+
let(:index_presenter) do
|
|
236
|
+
instance_double(Blacklight::IndexPresenter, thumbnail: thumbnail_presenter)
|
|
231
237
|
end
|
|
238
|
+
let(:thumbnail_presenter){ instance_double(Blacklight::ThumbnailPresenter) }
|
|
232
239
|
|
|
233
|
-
|
|
234
|
-
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_field => :xyz) ))
|
|
235
|
-
|
|
236
|
-
allow(document).to receive(:has?).with(:xyz).and_return(true)
|
|
237
|
-
allow(document).to receive(:first).with(:xyz).and_return("http://example.com/some.jpg")
|
|
238
|
-
|
|
239
|
-
expect(helper).to receive(:link_to_document).with(document, image_tag("http://example.com/some.jpg"), {})
|
|
240
|
-
helper.render_thumbnail_tag document
|
|
241
|
-
end
|
|
242
|
-
|
|
243
|
-
it "does not link to the document if the url options are false" do
|
|
244
|
-
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_method => :xyz) ))
|
|
245
|
-
allow(helper).to receive_messages(:xyz => "some-thumbnail")
|
|
240
|
+
before do
|
|
246
241
|
expect(Deprecation).to receive(:warn)
|
|
247
|
-
|
|
248
|
-
expect(result).to eq "some-thumbnail"
|
|
242
|
+
allow(helper).to receive(:index_presenter).with(document).and_return(index_presenter)
|
|
249
243
|
end
|
|
250
244
|
|
|
251
|
-
|
|
252
|
-
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_method => :xyz) ))
|
|
253
|
-
allow(helper).to receive_messages(:xyz => "some-thumbnail")
|
|
254
|
-
|
|
255
|
-
result = helper.render_thumbnail_tag document, {}, suppress_link: true
|
|
256
|
-
expect(result).to eq "some-thumbnail"
|
|
257
|
-
end
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
it "returns nil if no thumbnail is available" do
|
|
261
|
-
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new() ))
|
|
262
|
-
expect(helper.render_thumbnail_tag document).to be_nil
|
|
263
|
-
end
|
|
264
|
-
|
|
265
|
-
it "returns nil if no thumbnail is returned from the thumbnail method" do
|
|
266
|
-
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_method => :xyz) ))
|
|
267
|
-
allow(helper).to receive_messages(:xyz => nil)
|
|
245
|
+
let(:document) { instance_double(SolrDocument) }
|
|
268
246
|
|
|
269
|
-
|
|
247
|
+
it "calls thumbnail presenter with default values" do
|
|
248
|
+
expect(thumbnail_presenter).to receive(:thumbnail_tag).with({}, {})
|
|
249
|
+
helper.render_thumbnail_tag document
|
|
270
250
|
end
|
|
271
251
|
|
|
272
|
-
it "
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
allow(document).to receive(:has?).with(:xyz).and_return(false)
|
|
276
|
-
|
|
277
|
-
expect(helper.render_thumbnail_tag document).to be_nil
|
|
252
|
+
it "calls thumbnail presenter with provided values" do
|
|
253
|
+
expect(thumbnail_presenter).to receive(:thumbnail_tag).with({}, suppress_link: true)
|
|
254
|
+
result = helper.render_thumbnail_tag document, {}, suppress_link: true
|
|
278
255
|
end
|
|
279
256
|
end
|
|
280
257
|
|
|
281
258
|
describe "thumbnail_url" do
|
|
259
|
+
before do
|
|
260
|
+
expect(Deprecation).to receive(:warn)
|
|
261
|
+
end
|
|
262
|
+
|
|
282
263
|
it "pulls the configured thumbnail field out of the document" do
|
|
283
264
|
allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_field => :xyz) ))
|
|
284
265
|
document = instance_double(SolrDocument)
|