blacklight 6.25.0 → 7.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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 +40 -0
- 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/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/document.rb +8 -42
- 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 +5 -9
- 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/base.html.erb +43 -0
- data/app/views/layouts/blacklight.html.erb +14 -41
- 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 +56 -86
- 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/abstract_repository.rb +9 -21
- 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/configuration.rb +82 -89
- data/lib/blacklight/engine.rb +5 -11
- 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/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/response.rb +29 -30
- data/lib/blacklight/solr/search_builder_behavior.rb +25 -29
- data/lib/blacklight/version.rb +1 -1
- data/lib/blacklight.rb +4 -5
- 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 +15 -36
- 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 -32
- 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 +28 -47
- data/template.demo.rb +1 -11
- metadata +172 -196
- data/.docker/app/Dockerfile +0 -28
- data/.docker/app/entrypoint.sh +0 -6
- data/.dockerignore +0 -3
- data/.env +0 -5
- data/.github/workflows/ruby.yml +0 -61
- 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/services/blacklight/search_params_yaml_coder.rb +0 -48
- 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/docker-compose.yml +0 -38
- 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,14 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe "Blacklight::Document::DublinCore" do
|
3
|
+
RSpec.describe "Blacklight::Document::DublinCore" do
|
4
4
|
before(:all) do
|
5
5
|
@mock_class = Class.new do
|
6
6
|
include Blacklight::Document
|
7
7
|
end
|
8
8
|
@mock_class.use_extension( Blacklight::Document::DublinCore )
|
9
9
|
@mock_class.field_semantics.merge!(
|
10
|
-
:title => :
|
11
|
-
:non_dc_title => :
|
10
|
+
:title => :title_tsim,
|
11
|
+
:non_dc_title => :title_tsim
|
12
12
|
)
|
13
13
|
end
|
14
14
|
|
@@ -25,14 +25,14 @@ describe "Blacklight::Document::DublinCore" do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should include 'dc:'-prefixed semantic fields" do
|
28
|
-
data = {'id'=>'123456','
|
28
|
+
data = {'id'=>'123456','title_tsim'=>['654321'] }
|
29
29
|
document = @mock_class.new(data)
|
30
30
|
expect(document.export_as_oai_dc_xml).to match 'xmlns:dc="http://purl.org/dc/elements/1.1/"'
|
31
31
|
expect(document.export_as_oai_dc_xml).to match '<dc:title>654321</dc:title>'
|
32
32
|
end
|
33
33
|
|
34
34
|
it "should work with multi-value fields" do
|
35
|
-
data = {'id'=>'123456','
|
35
|
+
data = {'id'=>'123456','title_tsim'=>['654321', '987'] }
|
36
36
|
document = @mock_class.new(data)
|
37
37
|
expect(document.export_as_oai_dc_xml).to match '<dc:title>654321</dc:title>'
|
38
38
|
expect(document.export_as_oai_dc_xml).to match '<dc:title>987</dc:title></oai_dc:dc>'
|
@@ -1,17 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe "Blacklight::Document::Email" do
|
3
|
+
RSpec.describe "Blacklight::Document::Email" do
|
4
4
|
before(:all) do
|
5
5
|
SolrDocument.use_extension( Blacklight::Document::Email )
|
6
6
|
end
|
7
7
|
it "should only return values that are available in the field semantics" do
|
8
|
-
doc = SolrDocument.new({:id=>"1234", :
|
8
|
+
doc = SolrDocument.new({:id=>"1234", :title_tsim=>"My Title"})
|
9
9
|
email_body = doc.to_email_text
|
10
10
|
expect(email_body).to match(/Title: My Title/)
|
11
11
|
expect(email_body).to_not match(/Author/)
|
12
12
|
end
|
13
13
|
it "should handle multi-values fields correctly" do
|
14
|
-
doc = SolrDocument.new({:id=>"1234", :
|
14
|
+
doc = SolrDocument.new({:id=>"1234", :title_tsim=>["My Title", "My Alt. Title"]})
|
15
15
|
email_body = doc.to_email_text
|
16
16
|
expect(email_body).to match(/Title: My Title My Alt. Title/)
|
17
17
|
end
|
@@ -1,16 +1,16 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe "Blacklight::Document::Email" do
|
3
|
+
RSpec.describe "Blacklight::Document::Email" do
|
4
4
|
before(:all) do
|
5
5
|
SolrDocument.use_extension( Blacklight::Document::Sms )
|
6
6
|
end
|
7
7
|
it "should only return values that are available in the field semantics" do
|
8
|
-
doc = SolrDocument.new({:id=>"1234", :
|
8
|
+
doc = SolrDocument.new({:id=>"1234", :title_tsim=>"My Title", :author_tsim=>"Joe Schmoe"})
|
9
9
|
sms_text = doc.to_sms_text
|
10
10
|
expect(sms_text).to match(/My Title by Joe Schmoe/)
|
11
11
|
end
|
12
12
|
it "should handle multi-values fields correctly and only take the first" do
|
13
|
-
doc = SolrDocument.new({:id=>"1234", :
|
13
|
+
doc = SolrDocument.new({:id=>"1234", :title_tsim=>["My Title", "My Alt. Title"]})
|
14
14
|
sms_text = doc.to_sms_text
|
15
15
|
expect(sms_text).to match(/My Title/)
|
16
16
|
expect(sms_text).to_not match(/My Alt\. Title/)
|
@@ -1,24 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe Blacklight::Document do
|
3
|
+
RSpec.describe Blacklight::Document do
|
4
4
|
let(:data) { {} }
|
5
|
-
|
5
|
+
subject do
|
6
6
|
Class.new do
|
7
7
|
include Blacklight::Document
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
subject { test_class.new(data) }
|
12
|
-
|
13
|
-
describe '.new' do
|
14
|
-
it 'accepts a hash' do
|
15
|
-
expect(test_class.new(id: 1)[:id]).to eq 1
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'accepts a SolrDocument' do
|
19
|
-
expect(Deprecation).to receive(:warn)
|
20
|
-
expect(test_class.new(test_class.new(id: 1))[:id]).to eq 1
|
21
|
-
end
|
8
|
+
end.new(data)
|
22
9
|
end
|
23
10
|
|
24
11
|
describe "#has?" do
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe Blacklight::FacetPaginator do
|
3
|
+
RSpec.describe Blacklight::FacetPaginator do
|
4
4
|
|
5
5
|
let(:f1) { Blacklight::Solr::Response::Facets::FacetItem.new(hits: '792', value: 'Book') }
|
6
6
|
let(:f2) { Blacklight::Solr::Response::Facets::FacetItem.new(hits: '65', value: 'Musical Score') }
|
@@ -0,0 +1,34 @@
|
|
1
|
+
RSpec.describe Blacklight::Icon do
|
2
|
+
subject { described_class.new(:search, classes: 'awesome') }
|
3
|
+
describe '#svg' do
|
4
|
+
it 'returns a string' do
|
5
|
+
expect(subject.svg).to be_an String
|
6
|
+
end
|
7
|
+
it 'returns raw svg' do
|
8
|
+
expect(Capybara.string(subject.svg))
|
9
|
+
.to have_css 'svg title', text: 'Search'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
describe '#options' do
|
13
|
+
it 'applies options classes and default class' do
|
14
|
+
expect(subject.options[:class]).to eq 'blacklight-icons awesome'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
describe '#path' do
|
18
|
+
it 'prepends blacklight and sufixes .svg' do
|
19
|
+
expect(subject.path).to eq 'blacklight/search.svg'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
describe 'file_source' do
|
23
|
+
context 'file is not available' do
|
24
|
+
subject { described_class.new(:yolo) }
|
25
|
+
it { expect { subject.file_source }
|
26
|
+
.to raise_error(Blacklight::Exceptions::IconNotFound) }
|
27
|
+
end
|
28
|
+
context 'file is available' do
|
29
|
+
it 'returns the filesource' do
|
30
|
+
expect(subject.file_source).to include '<svg'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -1,28 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe Blacklight::SearchBuilder do
|
3
|
+
RSpec.describe Blacklight::SearchBuilder do
|
4
4
|
let(:processor_chain) { [] }
|
5
5
|
let(:blacklight_config) { Blacklight::Configuration.new }
|
6
6
|
let(:scope) { double blacklight_config: blacklight_config }
|
7
|
-
subject { described_class.new processor_chain, scope }
|
7
|
+
subject(:builder) { described_class.new processor_chain, scope }
|
8
8
|
|
9
9
|
context "with default processor chain" do
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
described_class.new true, scope
|
14
|
-
end
|
15
|
-
end
|
16
|
-
it "uses the class-level default_processor_chain" do
|
17
|
-
expect(subject.processor_chain).to eq []
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
context "with one arguments" do
|
22
|
-
subject { described_class.new scope }
|
23
|
-
it "uses the class-level default_processor_chain" do
|
24
|
-
expect(subject.processor_chain).to eq []
|
25
|
-
end
|
10
|
+
subject { described_class.new scope }
|
11
|
+
it "uses the class-level default_processor_chain" do
|
12
|
+
expect(subject.processor_chain).to eq []
|
26
13
|
end
|
27
14
|
end
|
28
15
|
|
@@ -176,18 +163,37 @@ describe Blacklight::SearchBuilder do
|
|
176
163
|
end
|
177
164
|
|
178
165
|
describe "#sort" do
|
179
|
-
|
180
|
-
|
181
|
-
|
166
|
+
context "when no sort parameter is given" do
|
167
|
+
subject(:sort) { builder.send(:sort) }
|
168
|
+
|
169
|
+
before do
|
170
|
+
blacklight_config.default_sort_field = double(sort: 'x desc')
|
171
|
+
end
|
182
172
|
|
183
|
-
|
184
|
-
|
185
|
-
|
173
|
+
it "uses the default" do
|
174
|
+
expect(sort).to eq 'x desc'
|
175
|
+
end
|
186
176
|
end
|
187
177
|
|
188
|
-
|
189
|
-
|
190
|
-
|
178
|
+
context "when the user provides an sort parameter" do
|
179
|
+
let(:builder_with_param) { builder.with(sort: 'x') }
|
180
|
+
subject(:sort) { builder_with_param.send(:sort) }
|
181
|
+
|
182
|
+
context "that is invalid" do
|
183
|
+
it "removes them" do
|
184
|
+
expect(sort).to be_nil
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
context "that is valid" do
|
189
|
+
before do
|
190
|
+
blacklight_config.add_sort_field 'x', sort: 'x asc'
|
191
|
+
end
|
192
|
+
|
193
|
+
it "uses the requested sort field" do
|
194
|
+
expect(sort).to eq 'x asc'
|
195
|
+
end
|
196
|
+
end
|
191
197
|
end
|
192
198
|
end
|
193
199
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe "Blacklight::Solr::Document" do
|
3
|
+
RSpec.describe "Blacklight::Solr::Document" do
|
4
4
|
class MockDocument
|
5
5
|
include Blacklight::Solr::Document
|
6
6
|
end
|
@@ -233,14 +233,14 @@ describe "Blacklight::Solr::Document" do
|
|
233
233
|
context "highlighting" do
|
234
234
|
|
235
235
|
before(:all) do
|
236
|
-
@document = MockDocument.new({'id' => 'doc1', 'title_field' => 'doc1 title'}, {'highlighting' => { 'doc1' => { '
|
236
|
+
@document = MockDocument.new({'id' => 'doc1', 'title_field' => 'doc1 title'}, {'highlighting' => { 'doc1' => { 'title_tsimext' => ['doc <em>1</em>']}, 'doc2' => { 'title_tsimext' => ['doc 2']}}})
|
237
237
|
|
238
238
|
end
|
239
239
|
|
240
240
|
describe "#has_highlight_field?" do
|
241
241
|
it "should be true if the highlight field is in the solr response" do
|
242
|
-
expect(@document).to have_highlight_field '
|
243
|
-
expect(@document).to have_highlight_field :
|
242
|
+
expect(@document).to have_highlight_field 'title_tsimext'
|
243
|
+
expect(@document).to have_highlight_field :title_tsimext
|
244
244
|
end
|
245
245
|
|
246
246
|
it "should be false if the highlight field isn't in the solr response" do
|
@@ -250,12 +250,12 @@ describe "Blacklight::Solr::Document" do
|
|
250
250
|
|
251
251
|
describe "#highlight_field" do
|
252
252
|
it "should return a value" do
|
253
|
-
expect(@document.highlight_field('
|
253
|
+
expect(@document.highlight_field('title_tsimext')).to include('doc <em>1</em>')
|
254
254
|
end
|
255
255
|
|
256
256
|
|
257
257
|
it "should return a value that is html safe" do
|
258
|
-
expect(@document.highlight_field('
|
258
|
+
expect(@document.highlight_field('title_tsimext').first).to be_html_safe
|
259
259
|
end
|
260
260
|
|
261
261
|
it "should return nil when the field doesn't exist" do
|
@@ -276,5 +276,16 @@ describe "Blacklight::Solr::Document" do
|
|
276
276
|
|
277
277
|
end
|
278
278
|
end
|
279
|
-
|
279
|
+
describe '#more_like_this' do
|
280
|
+
let(:response) { instance_double(Blacklight::Solr::Response, :more_like => [{'id' => 'abc'}]) }
|
281
|
+
let(:document) { MockDocument.new({:id => '123'}, response) }
|
282
|
+
subject(:result) { document.more_like_this }
|
283
|
+
|
284
|
+
it "should pluck the MoreLikeThis results from the Solr Response" do
|
285
|
+
expect(result).to have(1).item
|
286
|
+
expect(result.first).to be_a_kind_of(MockDocument)
|
287
|
+
expect(result.first.id).to eq 'abc'
|
288
|
+
expect(result.first.solr_response).to eq response
|
289
|
+
end
|
290
|
+
end
|
280
291
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe Blacklight::Solr::FacetPaginator do
|
3
|
+
RSpec.describe Blacklight::Solr::FacetPaginator do
|
4
4
|
let(:f1) { Blacklight::Solr::Response::Facets::FacetItem.new(hits: '792', value: 'Book') }
|
5
5
|
describe "#as_json" do
|
6
6
|
subject { described_class.new([f1], offset: 0, limit: nil).as_json }
|
@@ -1,9 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::Solr::Repository
|
4
|
-
subject(:repository) do
|
5
|
-
described_class.new blacklight_config
|
6
|
-
end
|
3
|
+
RSpec.describe Blacklight::Solr::Repository do
|
7
4
|
|
8
5
|
let :blacklight_config do
|
9
6
|
CatalogController.blacklight_config.deep_copy
|
@@ -29,33 +26,45 @@ RSpec.describe Blacklight::Solr::Repository, api: true do
|
|
29
26
|
expect(subject.find("123")).to be_a_kind_of Blacklight::Solr::Response
|
30
27
|
end
|
31
28
|
|
32
|
-
it "should use the default solr path" do
|
33
|
-
blacklight_config.solr_path = 'xyz'
|
34
|
-
allow(subject.connection).to receive(:send_and_receive).with('xyz', anything).and_return(mock_response)
|
35
|
-
expect(subject.find("123")).to be_a_kind_of Blacklight::Solr::Response
|
36
|
-
end
|
37
|
-
|
38
29
|
it "should use a default :qt param" do
|
39
|
-
allow(subject.connection).to receive(:send_and_receive).with('
|
30
|
+
allow(subject.connection).to receive(:send_and_receive).with('get', hash_including(params: hash_including(ids: '123'))).and_return(mock_response)
|
40
31
|
expect(subject.find("123", {})).to be_a_kind_of Blacklight::Solr::Response
|
41
32
|
end
|
42
33
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
34
|
+
context "without a document solr path configured" do
|
35
|
+
before do
|
36
|
+
blacklight_config.document_solr_path = nil
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should use the default solr path" do
|
40
|
+
blacklight_config.solr_path = 'xyz'
|
41
|
+
allow(subject.connection).to receive(:send_and_receive).with('xyz', anything).and_return(mock_response)
|
42
|
+
expect(subject.find("123")).to be_a_kind_of Blacklight::Solr::Response
|
43
|
+
end
|
47
44
|
end
|
48
45
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
46
|
+
context "with legacy request handler-based configuration" do
|
47
|
+
before do
|
48
|
+
blacklight_config.document_solr_path = 'select'
|
49
|
+
blacklight_config.document_unique_id_param = :id
|
50
|
+
end
|
51
|
+
it "should use the provided :qt param" do
|
52
|
+
blacklight_config.document_solr_request_handler = 'xyz'
|
53
|
+
allow(subject.connection).to receive(:send_and_receive).with('select', hash_including(params: { id: '123', qt: 'abc'})).and_return(mock_response)
|
54
|
+
expect(subject.find("123", {qt: 'abc'})).to be_a_kind_of Blacklight::Solr::Response
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should use the :qt parameter from the default_document_solr_params" do
|
58
|
+
blacklight_config.default_document_solr_params[:qt] = 'abc'
|
59
|
+
blacklight_config.document_solr_request_handler = 'xyz'
|
60
|
+
allow(subject.connection).to receive(:send_and_receive).with('select', hash_including(params: { id: '123', qt: 'abc'})).and_return(mock_response)
|
61
|
+
expect(subject.find("123")).to be_a_kind_of Blacklight::Solr::Response
|
62
|
+
end
|
54
63
|
end
|
55
64
|
|
56
65
|
it "should preserve the class of the incoming params" do
|
57
66
|
doc_params = ActiveSupport::HashWithIndifferentAccess.new
|
58
|
-
allow(subject.connection).to receive(:send_and_receive).with('
|
67
|
+
allow(subject.connection).to receive(:send_and_receive).with('get', anything).and_return(mock_response)
|
59
68
|
response = subject.find("123", doc_params)
|
60
69
|
expect(response).to be_a_kind_of Blacklight::Solr::Response
|
61
70
|
expect(response.params).to be_a_kind_of ActiveSupport::HashWithIndifferentAccess
|
@@ -85,12 +94,12 @@ RSpec.describe Blacklight::Solr::Repository, api: true do
|
|
85
94
|
allow(subject.connection).to receive(:send_and_receive).with('select', hash_including(params: { qt: 'abc'})).and_return(mock_response)
|
86
95
|
expect(subject.search({qt: 'abc'})).to be_a_kind_of Blacklight::Solr::Response
|
87
96
|
end
|
88
|
-
|
97
|
+
|
89
98
|
it "should preserve the class of the incoming params" do
|
90
99
|
search_params = ActiveSupport::HashWithIndifferentAccess.new
|
91
100
|
search_params[:q] = "query"
|
92
101
|
allow(subject.connection).to receive(:send_and_receive).with('select', anything).and_return(mock_response)
|
93
|
-
|
102
|
+
|
94
103
|
response = subject.search(search_params)
|
95
104
|
expect(response).to be_a_kind_of Blacklight::Solr::Response
|
96
105
|
expect(response.params).to be_a_kind_of ActiveSupport::HashWithIndifferentAccess
|
@@ -137,9 +146,5 @@ RSpec.describe Blacklight::Solr::Repository, api: true do
|
|
137
146
|
end
|
138
147
|
end
|
139
148
|
|
140
|
-
describe '#ping' do
|
141
|
-
subject { repository.ping }
|
142
149
|
|
143
|
-
it { is_expected.to be true }
|
144
|
-
end
|
145
150
|
end
|
@@ -3,9 +3,12 @@
|
|
3
3
|
RSpec.describe Blacklight::Solr::Response do
|
4
4
|
let(:raw_response) { eval(mock_query_response) }
|
5
5
|
|
6
|
+
let(:config) { Blacklight::Configuration.new }
|
7
|
+
|
6
8
|
let(:r) do
|
7
9
|
Blacklight::Solr::Response.new(raw_response,
|
8
|
-
raw_response['params']
|
10
|
+
raw_response['params'],
|
11
|
+
blacklight_config: config)
|
9
12
|
end
|
10
13
|
|
11
14
|
it 'should create a valid response' do
|
@@ -120,15 +123,15 @@ RSpec.describe Blacklight::Solr::Response do
|
|
120
123
|
raw_response = eval(mock_query_response)
|
121
124
|
r = Blacklight::Solr::Response.new(raw_response, {})
|
122
125
|
expect(r.params[:rows].to_s).to eq '11'
|
123
|
-
expect(r.params[:sort]).to eq '
|
126
|
+
expect(r.params[:sort]).to eq 'title_si asc, pub_date_si desc'
|
124
127
|
end
|
125
128
|
|
126
129
|
it 'should provide the ruby request params if responseHeader["params"] does not exist' do
|
127
130
|
raw_response = eval(mock_query_response)
|
128
131
|
raw_response.delete 'responseHeader'
|
129
|
-
r = Blacklight::Solr::Response.new(raw_response, :rows => 999, :sort => 'score desc,
|
132
|
+
r = Blacklight::Solr::Response.new(raw_response, :rows => 999, :sort => 'score desc, pub_date_si desc, title_si asc')
|
130
133
|
expect(r.params[:rows].to_s).to eq '999'
|
131
|
-
expect(r.params[:sort]).to eq 'score desc,
|
134
|
+
expect(r.params[:sort]).to eq 'score desc, pub_date_si desc, title_si asc'
|
132
135
|
end
|
133
136
|
|
134
137
|
it 'should provide spelling suggestions for regular spellcheck results' do
|
@@ -211,7 +214,7 @@ RSpec.describe Blacklight::Solr::Response do
|
|
211
214
|
end
|
212
215
|
|
213
216
|
def mock_query_response
|
214
|
-
%({'responseHeader'=>{'status'=>0,'QTime'=>5,'params'=>{'facet.limit'=>'10','wt'=>'ruby','rows'=>'11','facet'=>'true','facet.field'=>['cat','manu'],'echoParams'=>'EXPLICIT','q'=>'*:*','facet.sort'=>'true', 'sort'=>'
|
217
|
+
%({'responseHeader'=>{'status'=>0,'QTime'=>5,'params'=>{'facet.limit'=>'10','wt'=>'ruby','rows'=>'11','facet'=>'true','facet.field'=>['cat','manu'],'echoParams'=>'EXPLICIT','q'=>'*:*','facet.sort'=>'true', 'sort'=>'title_si asc, pub_date_si desc'}},'response'=>{'numFound'=>26,'start'=>0,'docs'=>[{'id'=>'SP2514N','inStock'=>true,'manu'=>'Samsung Electronics Co. Ltd.','name'=>'Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133','popularity'=>6,'price'=>92.0,'sku'=>'SP2514N','timestamp'=>'2009-03-20T14:42:49.795Z','cat'=>['electronics','hard drive'],'spell'=>['Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133'],'features'=>['7200RPM, 8MB cache, IDE Ultra ATA-133','NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor']},{'id'=>'6H500F0','inStock'=>true,'manu'=>'Maxtor Corp.','name'=>'Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300','popularity'=>6,'price'=>350.0,'sku'=>'6H500F0','timestamp'=>'2009-03-20T14:42:49.877Z','cat'=>['electronics','hard drive'],'spell'=>['Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300'],'features'=>['SATA 3.0Gb/s, NCQ','8.5ms seek','16MB cache']},{'id'=>'F8V7067-APL-KIT','inStock'=>false,'manu'=>'Belkin','name'=>'Belkin Mobile Power Cord for iPod w/ Dock','popularity'=>1,'price'=>19.95,'sku'=>'F8V7067-APL-KIT','timestamp'=>'2009-03-20T14:42:49.937Z','weight'=>4.0,'cat'=>['electronics','connector'],'spell'=>['Belkin Mobile Power Cord for iPod w/ Dock'],'features'=>['car power adapter, white']},{'id'=>'IW-02','inStock'=>false,'manu'=>'Belkin','name'=>'iPod & iPod Mini USB 2.0 Cable','popularity'=>1,'price'=>11.5,'sku'=>'IW-02','timestamp'=>'2009-03-20T14:42:49.944Z','weight'=>2.0,'cat'=>['electronics','connector'],'spell'=>['iPod & iPod Mini USB 2.0 Cable'],'features'=>['car power adapter for iPod, white']},{'id'=>'MA147LL/A','inStock'=>true,'includes'=>'earbud headphones, USB cable','manu'=>'Apple Computer Inc.','name'=>'Apple 60 GB iPod with Video Playback Black','popularity'=>10,'price'=>399.0,'sku'=>'MA147LL/A','timestamp'=>'2009-03-20T14:42:49.962Z','weight'=>5.5,'cat'=>['electronics','music'],'spell'=>['Apple 60 GB iPod with Video Playback Black'],'features'=>['iTunes, Podcasts, Audiobooks','Stores up to 15,000 songs, 25,000 photos, or 150 hours of video','2.5-inch, 320x240 color TFT LCD display with LED backlight','Up to 20 hours of battery life','Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video','Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication']},{'id'=>'TWINX2048-3200PRO','inStock'=>true,'manu'=>'Corsair Microsystems Inc.','name'=>'CORSAIR XMS 2GB (2 x 1GB) 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) Dual Channel Kit System Memory - Retail','popularity'=>5,'price'=>185.0,'sku'=>'TWINX2048-3200PRO','timestamp'=>'2009-03-20T14:42:49.99Z','cat'=>['electronics','memory'],'spell'=>['CORSAIR XMS 2GB (2 x 1GB) 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) Dual Channel Kit System Memory - Retail'],'features'=>['CAS latency 2, 2-3-3-6 timing, 2.75v, unbuffered, heat-spreader']},{'id'=>'VS1GB400C3','inStock'=>true,'manu'=>'Corsair Microsystems Inc.','name'=>'CORSAIR ValueSelect 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - Retail','popularity'=>7,'price'=>74.99,'sku'=>'VS1GB400C3','timestamp'=>'2009-03-20T14:42:50Z','cat'=>['electronics','memory'],'spell'=>['CORSAIR ValueSelect 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - Retail']},{'id'=>'VDBDB1A16','inStock'=>true,'manu'=>'A-DATA Technology Inc.','name'=>'A-DATA V-Series 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - OEM','popularity'=>5,'sku'=>'VDBDB1A16','timestamp'=>'2009-03-20T14:42:50.004Z','cat'=>['electronics','memory'],'spell'=>['A-DATA V-Series 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - OEM'],'features'=>['CAS latency 3, 2.7v']},{'id'=>'3007WFP','inStock'=>true,'includes'=>'USB cable','manu'=>'Dell, Inc.','name'=>'Dell Widescreen UltraSharp 3007WFP','popularity'=>6,'price'=>2199.0,'sku'=>'3007WFP','timestamp'=>'2009-03-20T14:42:50.017Z','weight'=>401.6,'cat'=>['electronics','monitor'],'spell'=>['Dell Widescreen UltraSharp 3007WFP'],'features'=>['30" TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast']},{'id'=>'VA902B','inStock'=>true,'manu'=>'ViewSonic Corp.','name'=>'ViewSonic VA902B - flat panel display - TFT - 19"','popularity'=>6,'price'=>279.95,'sku'=>'VA902B','timestamp'=>'2009-03-20T14:42:50.034Z','weight'=>190.4,'cat'=>['electronics','monitor'],'spell'=>['ViewSonic VA902B - flat panel display - TFT - 19"'],'features'=>['19" TFT active matrix LCD, 8ms response time, 1280 x 1024 native resolution']},{'id'=>'0579B002','inStock'=>true,'manu'=>'Canon Inc.','name'=>'Canon PIXMA MP500 All-In-One Photo Printer','popularity'=>6,'price'=>179.99,'sku'=>'0579B002','timestamp'=>'2009-03-20T14:42:50.062Z','weight'=>352.0,'cat'=>['electronics','multifunction printer','printer','scanner','copier'],'spell'=>['Canon PIXMA MP500 All-In-One Photo Printer'],'features'=>['Multifunction ink-jet color photo printer','Flatbed scanner, optical scan resolution of 1,200 x 2,400 dpi','2.5" color LCD preview screen','Duplex Copying','Printing speed up to 29ppm black, 19ppm color','Hi-Speed USB','memory card: CompactFlash, Micro Drive, SmartMedia, Memory Stick, Memory Stick Pro, SD Card, and MultiMediaCard']}]},'facet_counts'=>{'facet_queries'=>{},'facet_fields'=>{'cat'=>['electronics',14,'memory',3,'card',2,'connector',2,'drive',2,'graphics',2,'hard',2,'monitor',2,'search',2,'software',2],'manu'=>['inc',8,'apach',2,'belkin',2,'canon',2,'comput',2,'corp',2,'corsair',2,'foundat',2,'microsystem',2,'softwar',2]},'facet_dates'=>{}}})
|
215
218
|
end
|
216
219
|
|
217
220
|
# These spellcheck responses are all Solr 1.4 responses
|
@@ -241,6 +244,6 @@ RSpec.describe Blacklight::Solr::Response do
|
|
241
244
|
end
|
242
245
|
|
243
246
|
def mock_response_with_more_like_this
|
244
|
-
%({'responseHeader'=>{'status'=>0,'QTime'=>8,'params'=>{'facet'=>'false','mlt.mindf'=>'1','mlt.fl'=>'
|
247
|
+
%({'responseHeader'=>{'status'=>0,'QTime'=>8,'params'=>{'facet'=>'false','mlt.mindf'=>'1','mlt.fl'=>'subject_tsim','fl'=>'id','mlt.count'=>'3','mlt.mintf'=>'0','mlt'=>'true','q.alt'=>'*:*','qt'=>'search','wt'=>'ruby'}},'response'=>{'numFound'=>30,'start'=>0,'docs'=>[{'id'=>'00282214'},{'id'=>'00282371'},{'id'=>'00313831'},{'id'=>'00314247'},{'id'=>'43037890'},{'id'=>'53029833'},{'id'=>'77826928'},{'id'=>'78908283'},{'id'=>'79930185'},{'id'=>'85910001'}]},'moreLikeThis'=>{'00282214'=>{'numFound'=>0,'start'=>0,'docs'=>[]},'00282371'=>{'numFound'=>0,'start'=>0,'docs'=>[]},'00313831'=>{'numFound'=>1,'start'=>0,'docs'=>[{'id'=>'96933325'}]},'00314247'=>{'numFound'=>3,'start'=>0,'docs'=>[{'id'=>'2008543486'},{'id'=>'96933325'},{'id'=>'2009373513'}]},'43037890'=>{'numFound'=>0,'start'=>0,'docs'=>[]},'53029833'=>{'numFound'=>0,'start'=>0,'docs'=>[]},'77826928'=>{'numFound'=>1,'start'=>0,'docs'=>[{'id'=>'94120425'}]},'78908283'=>{'numFound'=>0,'start'=>0,'docs'=>[]},'79930185'=>{'numFound'=>2,'start'=>0,'docs'=>[{'id'=>'94120425'},{'id'=>'2007020969'}]},'85910001'=>{'numFound'=>0,'start'=>0,'docs'=>[]}}})
|
245
248
|
end
|
246
249
|
end
|