geoblacklight 4.0.0.pre.alpha.1 → 4.0.0.pre.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE.md +1 -1
- data/.github/workflows/ruby.yml +32 -64
- data/.gitignore +1 -0
- data/.rubocop.yml +6 -6
- data/.rubocop_todo.yml +0 -3
- data/.solr_wrapper +1 -0
- data/README.md +1 -4
- data/Rakefile +0 -1
- data/app/assets/images/blacklight/child-item.svg +3 -0
- data/app/assets/images/blacklight/collections.svg +4 -0
- data/app/assets/images/blacklight/datasets.svg +7 -0
- data/app/assets/images/blacklight/geoblacklight-icons.json +363 -332
- data/app/assets/images/blacklight/imagery.svg +4 -0
- data/app/assets/images/blacklight/maps.svg +4 -0
- data/app/assets/images/blacklight/michigan-state-university.svg +0 -1
- data/app/assets/images/blacklight/parent-item.svg +3 -0
- data/app/assets/images/blacklight/pennsylvania-state-university.svg +0 -1
- data/app/assets/images/blacklight/purdue-university.svg +0 -1
- data/app/assets/images/blacklight/the-ohio-state-university.svg +0 -1
- data/app/assets/images/blacklight/university-of-chicago.svg +0 -1
- data/app/assets/images/blacklight/university-of-colorado-boulder.svg +6 -0
- data/app/assets/images/blacklight/university-of-illinois-urbana-champaign.svg +0 -1
- data/app/assets/images/blacklight/university-of-iowa.svg +0 -1
- data/app/assets/images/blacklight/university-of-maryland.svg +0 -1
- data/app/assets/images/blacklight/university-of-michigan.svg +0 -1
- data/app/assets/images/blacklight/university-of-minnesota.svg +0 -1
- data/app/assets/images/blacklight/university-of-nebraska-lincoln.svg +0 -1
- data/app/assets/images/blacklight/university-of-wisconsin-madison.svg +0 -1
- data/app/assets/images/blacklight/websites.svg +4 -0
- data/app/assets/javascripts/geoblacklight/controls/fullscreen.js +8 -0
- data/app/assets/javascripts/geoblacklight/geoblacklight.js +2 -1
- data/app/assets/javascripts/geoblacklight/viewers/esri.js +1 -0
- data/app/assets/javascripts/geoblacklight/viewers/index_map.js +1 -0
- data/app/assets/javascripts/geoblacklight/viewers/tilejson.js +33 -0
- data/app/assets/javascripts/geoblacklight/viewers/tms.js +2 -2
- data/app/assets/javascripts/geoblacklight/viewers/viewer.js +3 -0
- data/app/assets/javascripts/geoblacklight/viewers/wms.js +2 -2
- data/app/assets/javascripts/geoblacklight/viewers/wmts.js +85 -0
- data/app/assets/javascripts/geoblacklight/viewers/xyz.js +10 -0
- data/app/assets/stylesheets/geoblacklight/geoblacklight.scss +1 -0
- data/app/assets/stylesheets/geoblacklight/modules/_base.scss +0 -1
- data/app/assets/stylesheets/geoblacklight/modules/_styles.scss +5 -1
- data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +20 -47
- data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +68 -0
- data/app/assets/stylesheets/geoblacklight/modules/item.scss +16 -0
- data/app/assets/stylesheets/geoblacklight/modules/modal.scss +6 -0
- data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +4 -0
- data/app/components/geoblacklight/icon_facet_item_component.rb +33 -0
- data/app/helpers/geoblacklight_helper.rb +6 -45
- data/app/models/concerns/geoblacklight/bbox_filter_field.rb +45 -0
- data/app/models/concerns/geoblacklight/bbox_filter_query.rb +50 -0
- data/app/models/concerns/geoblacklight/solr_document.rb +1 -1
- data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +26 -0
- data/app/presenters/geoblacklight/bbox_item_presenter.rb +9 -0
- data/app/views/catalog/_downloads_collapse.html.erb +27 -0
- data/app/views/catalog/_header_icons.html.erb +2 -2
- data/app/views/catalog/_index_split_default.html.erb +2 -2
- data/app/views/catalog/_show_default_viewer_container.html.erb +17 -0
- data/app/views/catalog/_show_downloads.html.erb +10 -21
- data/app/views/catalog/_show_sidebar.html.erb +3 -0
- data/app/views/catalog/_show_web_services.html.erb +11 -0
- data/app/views/catalog/_web_services.html.erb +3 -2
- data/app/views/catalog/web_services.html.erb +1 -1
- data/app/views/relation/_relations.html.erb +1 -1
- data/app/views/relation/index.html.erb +1 -1
- data/config/locales/geoblacklight.en.yml +4 -1
- data/geoblacklight.gemspec +6 -6
- data/lib/generators/geoblacklight/install_generator.rb +1 -1
- data/lib/generators/geoblacklight/templates/assets/_customizations.scss +5 -4
- data/lib/generators/geoblacklight/templates/assets/application.scss +0 -3
- data/lib/generators/geoblacklight/templates/catalog_controller.rb +74 -56
- data/lib/generators/geoblacklight/templates/settings.gbl_v1.yml +5 -5
- data/lib/generators/geoblacklight/templates/settings.yml +36 -23
- data/lib/geoblacklight/bounding_box.rb +4 -0
- data/lib/geoblacklight/constants.rb +3 -0
- data/lib/geoblacklight/engine.rb +3 -2
- data/lib/geoblacklight/faraday_middleware/follow_redirects.rb +176 -0
- data/lib/geoblacklight/item_viewer.rb +13 -1
- data/lib/geoblacklight/metadata/base.rb +2 -1
- data/lib/geoblacklight/version.rb +1 -1
- data/lib/geoblacklight/view_helper_override.rb +2 -28
- data/lib/geoblacklight.rb +0 -10
- data/lib/tasks/geoblacklight.rake +1 -1
- data/schema/geoblacklight-schema-aardvark.json +3 -23
- data/solr/conf/schema.xml +37 -43
- data/solr/conf/solrconfig.xml +17 -17
- data/spec/components/geoblacklight/icon_facet_item_component_spec.rb +17 -0
- data/spec/controllers/catalog_controller_spec.rb +1 -1
- data/spec/features/download_layer_spec.rb +31 -14
- data/spec/features/esri_viewer_spec.rb +5 -1
- data/spec/features/full_screen_controll_spec.rb +15 -0
- data/spec/features/home_page_spec.rb +2 -2
- data/spec/features/index_map_spec.rb +2 -2
- data/spec/features/missing_metadata_spec.rb +1 -1
- data/spec/features/multiple_downloads_spec.rb +2 -1
- data/spec/features/relations_spec.rb +1 -1
- data/spec/features/saved_searches_spec.rb +1 -1
- data/spec/features/search_results_complex_geometry_spec.rb +24 -0
- data/spec/features/search_results_icons_spec.rb +16 -0
- data/spec/features/search_results_map_spec.rb +2 -2
- data/spec/features/search_spec.rb +22 -0
- data/spec/features/show_page_download_spec.rb +29 -0
- data/spec/features/show_page_metadata_spec.rb +2 -2
- data/spec/features/split_view.html.erb_spec.rb +12 -1
- data/spec/features/tilejson_spec.rb +22 -0
- data/spec/features/tms_spec.rb +2 -2
- data/spec/features/web_services_modal_spec.rb +35 -2
- data/spec/features/wmts_spec.rb +34 -0
- data/spec/features/xyz_spec.rb +10 -0
- data/spec/fixtures/manifests/tilejson.json +21 -0
- data/spec/fixtures/manifests/wmts-multiple.xml +813 -0
- data/spec/fixtures/manifests/wmts-single.xml +126 -0
- data/spec/fixtures/solr_documents/README.md +46 -43
- data/spec/fixtures/solr_documents/actual-papermap1.json +2 -1
- data/spec/fixtures/solr_documents/actual-point1.json +2 -1
- data/spec/fixtures/solr_documents/actual-polygon1.json +2 -1
- data/spec/fixtures/solr_documents/actual-raster1.json +3 -2
- data/spec/fixtures/solr_documents/baruch_ancestor1.json +2 -1
- data/spec/fixtures/solr_documents/baruch_ancestor2.json +2 -1
- data/spec/fixtures/solr_documents/baruch_documentation_download.json +1 -1
- data/spec/fixtures/solr_documents/bbox-spans-180.json +2 -1
- data/spec/fixtures/solr_documents/cornell_html_metadata.json +4 -3
- data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +3 -2
- data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +3 -2
- data/spec/fixtures/solr_documents/esri-feature-layer.json +2 -1
- data/spec/fixtures/solr_documents/esri-image-map-layer.json +3 -2
- data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +2 -1
- data/spec/fixtures/solr_documents/esri-wms-layer.json +2 -1
- data/spec/fixtures/solr_documents/harvard_raster.json +3 -2
- data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +3 -2
- data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +2 -1
- data/spec/fixtures/solr_documents/index-map-polygon.json +2 -1
- data/spec/fixtures/solr_documents/index-map-stanford.json +2 -1
- data/spec/fixtures/solr_documents/index_map_point.json +3 -2
- data/spec/fixtures/solr_documents/metadata_no_provider.json +2 -1
- data/spec/fixtures/solr_documents/multiple-downloads.json +3 -2
- data/spec/fixtures/solr_documents/no_spatial.json +1 -4
- data/spec/fixtures/solr_documents/oembed.json +2 -1
- data/spec/fixtures/solr_documents/princeton-child1.json +3 -2
- data/spec/fixtures/solr_documents/princeton-child2.json +3 -2
- data/spec/fixtures/solr_documents/princeton-child3.json +2 -1
- data/spec/fixtures/solr_documents/princeton-child4.json +3 -2
- data/spec/fixtures/solr_documents/princeton-parent.json +5 -3
- data/spec/fixtures/solr_documents/public_direct_download.json +2 -1
- data/spec/fixtures/solr_documents/public_iiif_princeton.json +3 -2
- data/spec/fixtures/solr_documents/public_polygon_mit.json +2 -1
- data/spec/fixtures/solr_documents/restricted-line.json +2 -1
- data/spec/fixtures/solr_documents/tilejson.json +48 -0
- data/spec/fixtures/solr_documents/tms.json +15 -18
- data/spec/fixtures/solr_documents/umn_metro_result1.json +5 -3
- data/spec/fixtures/solr_documents/umn_state_result1.json +3 -2
- data/spec/fixtures/solr_documents/umn_state_result2.json +3 -5
- data/spec/fixtures/solr_documents/uva_slug_colon.json +2 -1
- data/spec/fixtures/solr_documents/wmts-multiple.json +41 -0
- data/spec/fixtures/solr_documents/wmts-single-layer.json +48 -0
- data/spec/fixtures/solr_documents/xyz.json +46 -0
- data/spec/helpers/geoblacklight_helper_spec.rb +12 -35
- data/spec/lib/geoblacklight/document_presenter_spec.rb +3 -3
- data/spec/lib/geoblacklight/download/geojson_download_spec.rb +1 -1
- data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +1 -1
- data/spec/lib/geoblacklight/download/kmz_download_spec.rb +1 -1
- data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +1 -1
- data/spec/lib/geoblacklight/download_spec.rb +2 -2
- data/spec/lib/geoblacklight/metadata/base_spec.rb +19 -1
- data/spec/lib/geoblacklight/references_spec.rb +1 -1
- data/spec/lib/geoblacklight/relation/relation_response_spec.rb +5 -0
- data/spec/lib/geoblacklight/view_helper_override_spec.rb +0 -10
- data/spec/models/concerns/geoblacklight/bbox_filter_field_spec.rb +77 -0
- data/spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb +105 -0
- data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +2 -1
- data/spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb +31 -0
- data/spec/presenters/geoblacklight/bbox_item_presenter_spec.rb +36 -0
- data/spec/spec_helper.rb +6 -1
- data/spec/test_app_templates/Gemfile.extra +1 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -4
- data/spec/views/catalog/_show_downloads.html.erb_spec.rb +5 -5
- data/template.rb +2 -4
- data/vendor/assets/images/fullscreen.png +0 -0
- data/vendor/assets/images/fullscreen@2x.png +0 -0
- data/vendor/assets/javascripts/Leaflet.fullscreen.js +152 -0
- data/vendor/assets/javascripts/esri-leaflet.js +10 -3
- data/vendor/assets/javascripts/esri-leaflet.js.map +1 -1
- data/vendor/assets/javascripts/leaflet-iiif.js +39 -18
- data/vendor/assets/javascripts/leaflet-src.js.erb +14062 -0
- data/vendor/assets/javascripts/leaflet-src.js.map +1 -1
- data/vendor/assets/stylesheets/leaflet.css +640 -634
- data/vendor/assets/stylesheets/leaflet.fullscreen.css +40 -0
- metadata +91 -46
- data/app/models/concerns/geoblacklight/spatial_search_behavior.rb +0 -71
- data/app/views/catalog/_download_generated_link.html.erb +0 -4
- data/app/views/catalog/_download_link.html.erb +0 -3
- data/app/views/catalog/_downloads_generated.html.erb +0 -6
- data/app/views/catalog/_downloads_primary.html.erb +0 -21
- data/app/views/catalog/_downloads_secondary.html.erb +0 -39
- data/app/views/catalog/_icon_facet.html.erb +0 -16
- data/bin/coverage.rb +0 -36
- data/lib/generators/geoblacklight/templates/Procfile +0 -3
- data/lib/generators/geoblacklight/templates/package.json +0 -14
- data/lib/generators/geoblacklight/templates/webpacker.yml +0 -67
- data/lib/generators/geoblacklight/webpacker_generator.rb +0 -36
- data/lib/geoblacklight/catalog_helper_override.rb +0 -14
- data/spec/models/concerns/geoblacklight/spatial_search_behavior_spec.rb +0 -97
- data/vendor/assets/javascripts/leaflet.js.erb +0 -13922
- data/vendor/assets/stylesheets/leaflet-label.css +0 -54
@@ -1,16 +0,0 @@
|
|
1
|
-
<ul class="facet-values list-unstyled">
|
2
|
-
<% paginator = facet_paginator(facet_field, display_facet) %>
|
3
|
-
<% paginator.items.each do |item| -%>
|
4
|
-
<li>
|
5
|
-
<%= render_facet_item_with_icon(field_name, item) %>
|
6
|
-
</li>
|
7
|
-
<% end %>
|
8
|
-
<% unless paginator.last_page? || params[:action] == "facet" %>
|
9
|
-
<li class="more_facets">
|
10
|
-
<%= link_to t("more_#{field_name}_html", scope: 'blacklight.search.facets', default: :more_html, field_name: facet_field.label),
|
11
|
-
search_facet_path(id: facet_field.key),
|
12
|
-
data: { blacklight_modal: 'trigger' },
|
13
|
-
class: 'more_facets_link' %>
|
14
|
-
</li>
|
15
|
-
<% end %>
|
16
|
-
</ul>
|
data/bin/coverage.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# Borrowed from https://github.com/pulibrary/figgy/blob/master/scripts/combine_coverage.rb
|
3
|
-
require 'active_support/inflector'
|
4
|
-
require 'simplecov'
|
5
|
-
|
6
|
-
class SimpleCovHelper
|
7
|
-
def self.report_coverage(base_dir: './coverage_results')
|
8
|
-
min_cov = ENV['MINIMUM_COVERAGE'] || 100
|
9
|
-
SimpleCov.configure do
|
10
|
-
minimum_coverage(min_cov.to_i)
|
11
|
-
end
|
12
|
-
new(base_dir: base_dir).merge_results
|
13
|
-
end
|
14
|
-
|
15
|
-
attr_reader :base_dir
|
16
|
-
|
17
|
-
def initialize(base_dir:)
|
18
|
-
@base_dir = base_dir
|
19
|
-
end
|
20
|
-
|
21
|
-
def all_results
|
22
|
-
Dir["#{base_dir}/.resultset*.json"]
|
23
|
-
end
|
24
|
-
|
25
|
-
def merge_results
|
26
|
-
results = all_results.map { |file| SimpleCov::Result.from_hash(JSON.parse(File.read(file))) }
|
27
|
-
results = SimpleCov::ResultMerger.merge_results(*results)
|
28
|
-
results.format!
|
29
|
-
covered_percent = results.covered_percent.round(2)
|
30
|
-
return unless covered_percent < SimpleCov.minimum_coverage
|
31
|
-
$stderr.printf("Coverage (%.2f%%) is below the expected minimum coverage (%.2f%%).\n", covered_percent, SimpleCov.minimum_coverage)
|
32
|
-
Kernel.exit SimpleCov::ExitCodes::MINIMUM_COVERAGE
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
SimpleCovHelper.report_coverage
|
@@ -1,14 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "internal",
|
3
|
-
"private": true,
|
4
|
-
"dependencies": {
|
5
|
-
"@rails/webpacker": "https://github.com/rails/webpacker.git"
|
6
|
-
},
|
7
|
-
"devDependencies": {
|
8
|
-
"babel-plugin-syntax-dynamic-import": "^6.18.0",
|
9
|
-
"babel-plugin-transform-class-properties": "^6.24.1",
|
10
|
-
"babel-plugin-transform-object-rest-spread": "^6.26.0",
|
11
|
-
"babel-preset-env": "^1.7.0",
|
12
|
-
"webpack-dev-server": "^3.6.0"
|
13
|
-
}
|
14
|
-
}
|
@@ -1,67 +0,0 @@
|
|
1
|
-
# Note: You must restart bin/webpack-dev-server for changes to take effect
|
2
|
-
|
3
|
-
default: &default
|
4
|
-
source_path: app/javascript
|
5
|
-
source_entry_path: packs
|
6
|
-
public_output_path: packs
|
7
|
-
cache_path: tmp/cache/webpacker
|
8
|
-
|
9
|
-
# Additional paths webpack should lookup modules
|
10
|
-
# ['app/assets', 'engine/foo/app/assets']
|
11
|
-
resolved_paths: []
|
12
|
-
|
13
|
-
# Reload manifest.json on all requests so we reload latest compiled packs
|
14
|
-
cache_manifest: false
|
15
|
-
|
16
|
-
extensions:
|
17
|
-
- .js
|
18
|
-
- .sass
|
19
|
-
- .scss
|
20
|
-
- .css
|
21
|
-
- .module.sass
|
22
|
-
- .module.scss
|
23
|
-
- .module.css
|
24
|
-
- .png
|
25
|
-
- .svg
|
26
|
-
- .gif
|
27
|
-
- .jpeg
|
28
|
-
- .jpg
|
29
|
-
|
30
|
-
development: &development
|
31
|
-
<<: *default
|
32
|
-
compile: true
|
33
|
-
|
34
|
-
# Reference: https://webpack.js.org/configuration/dev-server/
|
35
|
-
dev_server:
|
36
|
-
https: false
|
37
|
-
host: localhost
|
38
|
-
port: 3035
|
39
|
-
public: localhost:3035
|
40
|
-
hmr: false
|
41
|
-
# Inline should be set to true if using HMR
|
42
|
-
inline: true
|
43
|
-
overlay: true
|
44
|
-
compress: true
|
45
|
-
disable_host_check: true
|
46
|
-
use_local_ip: false
|
47
|
-
quiet: false
|
48
|
-
headers:
|
49
|
-
'Access-Control-Allow-Origin': '*'
|
50
|
-
watch_options:
|
51
|
-
ignored: /node_modules/
|
52
|
-
|
53
|
-
|
54
|
-
test:
|
55
|
-
<<: *development
|
56
|
-
|
57
|
-
# Compile test packs to a separate directory
|
58
|
-
public_output_path: packs-test
|
59
|
-
|
60
|
-
production:
|
61
|
-
<<: *default
|
62
|
-
|
63
|
-
# Production depends on precompilation of packs prior to booting for performance.
|
64
|
-
compile: false
|
65
|
-
|
66
|
-
# Cache manifest.json for performance
|
67
|
-
cache_manifest: true
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'rails/generators'
|
3
|
-
|
4
|
-
module Geoblacklight
|
5
|
-
class Webpacker < Rails::Generators::Base
|
6
|
-
source_root File.expand_path('../templates', __FILE__)
|
7
|
-
|
8
|
-
desc 'Integrate Webpacker for GeoBlacklight'
|
9
|
-
|
10
|
-
def webpacker_install
|
11
|
-
run 'bundle exec rails webpacker:install'
|
12
|
-
end
|
13
|
-
|
14
|
-
def webpacker_config
|
15
|
-
copy_file 'webpacker.yml', 'config/webpacker.yml'
|
16
|
-
end
|
17
|
-
|
18
|
-
def procfile
|
19
|
-
copy_file 'Procfile', 'Procfile'
|
20
|
-
end
|
21
|
-
|
22
|
-
def javascript_install
|
23
|
-
# This overrides the default dependencies specified using
|
24
|
-
# webpacker:install
|
25
|
-
copy_file 'package.json', 'package.json'
|
26
|
-
yarn_available = system('yarn --version')
|
27
|
-
if yarn_available
|
28
|
-
run 'yarn install'
|
29
|
-
run 'yarn upgrade'
|
30
|
-
else
|
31
|
-
run 'npm install'
|
32
|
-
run 'npm update'
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Geoblacklight
|
3
|
-
module CatalogHelperOverride
|
4
|
-
##
|
5
|
-
# Removes spatial query from params
|
6
|
-
# @param [Symbol] symbol of field to be removed
|
7
|
-
# @param [Hash] request parameters
|
8
|
-
def remove_spatial_filter_group(field, source_params = params)
|
9
|
-
p = source_params.dup.to_h
|
10
|
-
p.delete(field.to_s)
|
11
|
-
p
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,97 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe Geoblacklight::SpatialSearchBehavior do
|
5
|
-
subject { search_builder.with(user_params) }
|
6
|
-
|
7
|
-
let(:user_params) { {} }
|
8
|
-
let(:solr_params) { {} }
|
9
|
-
let(:blacklight_config) { CatalogController.blacklight_config.deep_copy }
|
10
|
-
let(:context) { CatalogController.new }
|
11
|
-
let(:search_builder_class) do
|
12
|
-
Class.new(Blacklight::SearchBuilder).tap do |klass|
|
13
|
-
include Blacklight::Solr::SearchBuilderBehavior
|
14
|
-
klass.include(described_class)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
let(:search_builder) { search_builder_class.new(context) }
|
18
|
-
|
19
|
-
describe '#add_spatial_params' do
|
20
|
-
it 'returns the solr_params when no bbox is given' do
|
21
|
-
expect(subject.add_spatial_params(solr_params)).to eq solr_params
|
22
|
-
end
|
23
|
-
|
24
|
-
context 'when given a bounding box' do
|
25
|
-
let(:params) do
|
26
|
-
{ bbox: '-180 -80 120 80' }
|
27
|
-
end
|
28
|
-
|
29
|
-
before do
|
30
|
-
subject.with(params)
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'returns a spatial search if bbox is given' do
|
34
|
-
expect(subject.add_spatial_params(solr_params)[:fq].to_s).to include('Intersects')
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'applies boost based on configured Settings.BBOX_WITHIN_BOOST' do
|
38
|
-
allow(Settings).to receive(:BBOX_WITHIN_BOOST).and_return 99
|
39
|
-
expect(subject.add_spatial_params(solr_params)[:bq].to_s).to include('^99')
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'applies default boost of 10 when Settings.BBOX_WITHIN_BOOST not configured' do
|
43
|
-
allow(Settings).to receive(:BBOX_WITHIN_BOOST).and_return nil
|
44
|
-
expect(subject.add_spatial_params(solr_params)[:bq].to_s).to include('^10')
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'applies overlapRatio when Settings.OVERLAP_RATIO_BOOST is configured' do
|
48
|
-
allow(Settings).to receive(:OVERLAP_RATIO_BOOST).and_return 2
|
49
|
-
expect(subject.add_spatial_params(solr_params)[:bf].to_s).to include('$overlap^2')
|
50
|
-
end
|
51
|
-
|
52
|
-
it 'does not apply overlapRatio when Settings.OVERLAP_RATIO_BOOST not configured' do
|
53
|
-
allow(Settings).to receive(:OVERLAP_RATIO_BOOST).and_return nil
|
54
|
-
expect(subject.add_spatial_params(solr_params)).not_to have_key(:overlap)
|
55
|
-
end
|
56
|
-
|
57
|
-
context 'when local boost parameter is present' do
|
58
|
-
before do
|
59
|
-
solr_params[:bf] = ['local_boost^5']
|
60
|
-
end
|
61
|
-
|
62
|
-
it 'appends overlap and includes the local boost' do
|
63
|
-
allow(Settings).to receive(:OVERLAP_RATIO_BOOST).and_return 2
|
64
|
-
expect(subject.add_spatial_params(solr_params)[:bf].to_s).to include('$overlap^2')
|
65
|
-
expect(solr_params[:bf].to_s).to include('local_boost^5')
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
context 'when the wrong format for the bounding box is used' do
|
70
|
-
before do
|
71
|
-
allow(subject).to receive(:bounding_box).and_raise(Geoblacklight::Exceptions::WrongBoundingBoxFormat)
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'returns the spatial search without the boost or filter queries' do
|
75
|
-
expect(subject.add_spatial_params(solr_params)).to eq(bq: [])
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
describe '#envelope_bounds' do
|
81
|
-
let(:bbox) { instance_double(Geoblacklight::BoundingBox) }
|
82
|
-
before do
|
83
|
-
allow(bbox).to receive(:to_envelope).and_return('test')
|
84
|
-
end
|
85
|
-
it 'calls to_envelope on the bounding box' do
|
86
|
-
expect(subject).to receive(:bounding_box).and_return bbox
|
87
|
-
expect(subject.envelope_bounds).to eq 'test'
|
88
|
-
end
|
89
|
-
end
|
90
|
-
describe '#bounding_box' do
|
91
|
-
it 'creates a bounding box from a Solr lat-lon rectangle format' do
|
92
|
-
params = { bbox: '-120 -80 120 80' }
|
93
|
-
subject.with(params)
|
94
|
-
expect(subject.bounding_box).to be_an Geoblacklight::BoundingBox
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|