geoblacklight 4.0.0.pre.alpha.3 → 4.0.0.pre.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +1 -1
  3. data/.github/workflows/ruby.yml +32 -64
  4. data/.gitignore +1 -0
  5. data/.rubocop.yml +6 -6
  6. data/.rubocop_todo.yml +0 -3
  7. data/.solr_wrapper +1 -0
  8. data/README.md +1 -4
  9. data/Rakefile +0 -1
  10. data/app/assets/images/blacklight/child-item.svg +3 -0
  11. data/app/assets/images/blacklight/collections.svg +4 -0
  12. data/app/assets/images/blacklight/datasets.svg +7 -0
  13. data/app/assets/images/blacklight/geoblacklight-icons.json +363 -332
  14. data/app/assets/images/blacklight/imagery.svg +4 -0
  15. data/app/assets/images/blacklight/maps.svg +4 -0
  16. data/app/assets/images/blacklight/parent-item.svg +3 -0
  17. data/app/assets/images/blacklight/university-of-colorado-boulder.svg +6 -0
  18. data/app/assets/images/blacklight/websites.svg +4 -0
  19. data/app/assets/javascripts/geoblacklight/controls/fullscreen.js +8 -0
  20. data/app/assets/javascripts/geoblacklight/geoblacklight.js +2 -1
  21. data/app/assets/javascripts/geoblacklight/viewers/esri.js +1 -0
  22. data/app/assets/javascripts/geoblacklight/viewers/index_map.js +1 -0
  23. data/app/assets/javascripts/geoblacklight/viewers/tilejson.js +33 -0
  24. data/app/assets/javascripts/geoblacklight/viewers/tms.js +2 -2
  25. data/app/assets/javascripts/geoblacklight/viewers/viewer.js +3 -0
  26. data/app/assets/javascripts/geoblacklight/viewers/wms.js +2 -2
  27. data/app/assets/javascripts/geoblacklight/viewers/wmts.js +85 -0
  28. data/app/assets/javascripts/geoblacklight/viewers/xyz.js +10 -0
  29. data/app/assets/stylesheets/geoblacklight/geoblacklight.scss +1 -0
  30. data/app/assets/stylesheets/geoblacklight/modules/_base.scss +0 -1
  31. data/app/assets/stylesheets/geoblacklight/modules/_styles.scss +5 -1
  32. data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +20 -47
  33. data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +68 -0
  34. data/app/assets/stylesheets/geoblacklight/modules/item.scss +16 -0
  35. data/app/assets/stylesheets/geoblacklight/modules/modal.scss +6 -0
  36. data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +4 -0
  37. data/app/components/geoblacklight/icon_facet_item_component.rb +33 -0
  38. data/app/helpers/geoblacklight_helper.rb +6 -45
  39. data/app/models/concerns/geoblacklight/bbox_filter_field.rb +45 -0
  40. data/app/models/concerns/geoblacklight/bbox_filter_query.rb +50 -0
  41. data/app/models/concerns/geoblacklight/solr_document.rb +1 -1
  42. data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +26 -0
  43. data/app/presenters/geoblacklight/bbox_item_presenter.rb +9 -0
  44. data/app/views/catalog/_downloads_collapse.html.erb +27 -0
  45. data/app/views/catalog/_header_icons.html.erb +2 -2
  46. data/app/views/catalog/_index_split_default.html.erb +2 -2
  47. data/app/views/catalog/_show_default_viewer_container.html.erb +17 -0
  48. data/app/views/catalog/_show_downloads.html.erb +10 -21
  49. data/app/views/catalog/_show_sidebar.html.erb +3 -0
  50. data/app/views/catalog/_show_web_services.html.erb +11 -0
  51. data/app/views/catalog/_web_services.html.erb +3 -2
  52. data/app/views/catalog/web_services.html.erb +1 -1
  53. data/config/locales/geoblacklight.en.yml +4 -1
  54. data/geoblacklight.gemspec +6 -6
  55. data/lib/generators/geoblacklight/install_generator.rb +1 -1
  56. data/lib/generators/geoblacklight/templates/assets/_customizations.scss +5 -4
  57. data/lib/generators/geoblacklight/templates/assets/application.scss +0 -3
  58. data/lib/generators/geoblacklight/templates/catalog_controller.rb +74 -56
  59. data/lib/generators/geoblacklight/templates/settings.gbl_v1.yml +5 -5
  60. data/lib/generators/geoblacklight/templates/settings.yml +36 -23
  61. data/lib/geoblacklight/bounding_box.rb +4 -0
  62. data/lib/geoblacklight/constants.rb +3 -0
  63. data/lib/geoblacklight/engine.rb +3 -2
  64. data/lib/geoblacklight/faraday_middleware/follow_redirects.rb +176 -0
  65. data/lib/geoblacklight/item_viewer.rb +13 -1
  66. data/lib/geoblacklight/metadata/base.rb +2 -1
  67. data/lib/geoblacklight/version.rb +1 -1
  68. data/lib/geoblacklight/view_helper_override.rb +2 -28
  69. data/lib/geoblacklight.rb +0 -10
  70. data/lib/tasks/geoblacklight.rake +1 -1
  71. data/schema/geoblacklight-schema-aardvark.json +3 -23
  72. data/solr/conf/schema.xml +37 -43
  73. data/solr/conf/solrconfig.xml +17 -17
  74. data/spec/components/geoblacklight/icon_facet_item_component_spec.rb +17 -0
  75. data/spec/controllers/catalog_controller_spec.rb +1 -1
  76. data/spec/features/download_layer_spec.rb +31 -14
  77. data/spec/features/esri_viewer_spec.rb +5 -1
  78. data/spec/features/full_screen_controll_spec.rb +15 -0
  79. data/spec/features/home_page_spec.rb +2 -2
  80. data/spec/features/index_map_spec.rb +2 -2
  81. data/spec/features/missing_metadata_spec.rb +1 -1
  82. data/spec/features/multiple_downloads_spec.rb +2 -1
  83. data/spec/features/relations_spec.rb +1 -1
  84. data/spec/features/saved_searches_spec.rb +1 -1
  85. data/spec/features/search_results_complex_geometry_spec.rb +24 -0
  86. data/spec/features/search_results_icons_spec.rb +16 -0
  87. data/spec/features/search_results_map_spec.rb +2 -2
  88. data/spec/features/search_spec.rb +17 -0
  89. data/spec/features/show_page_download_spec.rb +6 -3
  90. data/spec/features/show_page_metadata_spec.rb +2 -2
  91. data/spec/features/split_view.html.erb_spec.rb +12 -1
  92. data/spec/features/tilejson_spec.rb +22 -0
  93. data/spec/features/tms_spec.rb +2 -2
  94. data/spec/features/web_services_modal_spec.rb +35 -2
  95. data/spec/features/wmts_spec.rb +34 -0
  96. data/spec/features/xyz_spec.rb +10 -0
  97. data/spec/fixtures/manifests/tilejson.json +21 -0
  98. data/spec/fixtures/manifests/wmts-multiple.xml +813 -0
  99. data/spec/fixtures/manifests/wmts-single.xml +126 -0
  100. data/spec/fixtures/solr_documents/README.md +46 -43
  101. data/spec/fixtures/solr_documents/actual-papermap1.json +2 -1
  102. data/spec/fixtures/solr_documents/actual-point1.json +2 -1
  103. data/spec/fixtures/solr_documents/actual-polygon1.json +2 -1
  104. data/spec/fixtures/solr_documents/actual-raster1.json +3 -2
  105. data/spec/fixtures/solr_documents/baruch_ancestor1.json +2 -1
  106. data/spec/fixtures/solr_documents/baruch_ancestor2.json +2 -1
  107. data/spec/fixtures/solr_documents/baruch_documentation_download.json +1 -1
  108. data/spec/fixtures/solr_documents/bbox-spans-180.json +2 -1
  109. data/spec/fixtures/solr_documents/cornell_html_metadata.json +4 -3
  110. data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +3 -2
  111. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +3 -2
  112. data/spec/fixtures/solr_documents/esri-feature-layer.json +2 -1
  113. data/spec/fixtures/solr_documents/esri-image-map-layer.json +3 -2
  114. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +2 -1
  115. data/spec/fixtures/solr_documents/esri-wms-layer.json +2 -1
  116. data/spec/fixtures/solr_documents/harvard_raster.json +3 -2
  117. data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +3 -2
  118. data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +2 -1
  119. data/spec/fixtures/solr_documents/index-map-polygon.json +2 -1
  120. data/spec/fixtures/solr_documents/index-map-stanford.json +2 -1
  121. data/spec/fixtures/solr_documents/index_map_point.json +3 -2
  122. data/spec/fixtures/solr_documents/metadata_no_provider.json +2 -1
  123. data/spec/fixtures/solr_documents/multiple-downloads.json +3 -2
  124. data/spec/fixtures/solr_documents/no_spatial.json +1 -4
  125. data/spec/fixtures/solr_documents/oembed.json +2 -1
  126. data/spec/fixtures/solr_documents/princeton-child1.json +3 -2
  127. data/spec/fixtures/solr_documents/princeton-child2.json +3 -2
  128. data/spec/fixtures/solr_documents/princeton-child3.json +2 -1
  129. data/spec/fixtures/solr_documents/princeton-child4.json +3 -2
  130. data/spec/fixtures/solr_documents/princeton-parent.json +5 -3
  131. data/spec/fixtures/solr_documents/public_direct_download.json +2 -1
  132. data/spec/fixtures/solr_documents/public_iiif_princeton.json +3 -2
  133. data/spec/fixtures/solr_documents/public_polygon_mit.json +2 -1
  134. data/spec/fixtures/solr_documents/restricted-line.json +2 -1
  135. data/spec/fixtures/solr_documents/tilejson.json +48 -0
  136. data/spec/fixtures/solr_documents/tms.json +15 -18
  137. data/spec/fixtures/solr_documents/umn_metro_result1.json +5 -3
  138. data/spec/fixtures/solr_documents/umn_state_result1.json +3 -2
  139. data/spec/fixtures/solr_documents/umn_state_result2.json +3 -5
  140. data/spec/fixtures/solr_documents/uva_slug_colon.json +2 -1
  141. data/spec/fixtures/solr_documents/wmts-multiple.json +41 -0
  142. data/spec/fixtures/solr_documents/wmts-single-layer.json +48 -0
  143. data/spec/fixtures/solr_documents/xyz.json +46 -0
  144. data/spec/helpers/geoblacklight_helper_spec.rb +12 -35
  145. data/spec/lib/geoblacklight/document_presenter_spec.rb +3 -3
  146. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +1 -1
  147. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +1 -1
  148. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +1 -1
  149. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +1 -1
  150. data/spec/lib/geoblacklight/download_spec.rb +2 -2
  151. data/spec/lib/geoblacklight/metadata/base_spec.rb +19 -1
  152. data/spec/lib/geoblacklight/references_spec.rb +1 -1
  153. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +5 -0
  154. data/spec/lib/geoblacklight/view_helper_override_spec.rb +0 -10
  155. data/spec/models/concerns/geoblacklight/bbox_filter_field_spec.rb +77 -0
  156. data/spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb +105 -0
  157. data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +2 -1
  158. data/spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb +31 -0
  159. data/spec/presenters/geoblacklight/bbox_item_presenter_spec.rb +36 -0
  160. data/spec/spec_helper.rb +6 -1
  161. data/spec/test_app_templates/Gemfile.extra +1 -0
  162. data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -4
  163. data/spec/views/catalog/_show_downloads.html.erb_spec.rb +5 -5
  164. data/template.rb +2 -4
  165. data/vendor/assets/images/fullscreen.png +0 -0
  166. data/vendor/assets/images/fullscreen@2x.png +0 -0
  167. data/vendor/assets/javascripts/Leaflet.fullscreen.js +152 -0
  168. data/vendor/assets/javascripts/esri-leaflet.js +10 -3
  169. data/vendor/assets/javascripts/esri-leaflet.js.map +1 -1
  170. data/vendor/assets/javascripts/leaflet-iiif.js +39 -18
  171. data/vendor/assets/javascripts/leaflet-src.js.erb +14062 -0
  172. data/vendor/assets/javascripts/leaflet-src.js.map +1 -1
  173. data/vendor/assets/stylesheets/leaflet.css +640 -634
  174. data/vendor/assets/stylesheets/leaflet.fullscreen.css +40 -0
  175. metadata +92 -49
  176. data/app/models/concerns/geoblacklight/spatial_search_behavior.rb +0 -71
  177. data/app/views/catalog/_download_generated_link.html.erb +0 -4
  178. data/app/views/catalog/_download_link.html.erb +0 -3
  179. data/app/views/catalog/_downloads_generated.html.erb +0 -6
  180. data/app/views/catalog/_downloads_primary.html.erb +0 -21
  181. data/app/views/catalog/_downloads_secondary.html.erb +0 -39
  182. data/app/views/catalog/_icon_facet.html.erb +0 -16
  183. data/bin/coverage.rb +0 -36
  184. data/lib/generators/geoblacklight/templates/Procfile +0 -3
  185. data/lib/generators/geoblacklight/templates/package.json +0 -14
  186. data/lib/generators/geoblacklight/templates/webpacker.yml +0 -67
  187. data/lib/generators/geoblacklight/webpacker_generator.rb +0 -36
  188. data/lib/geoblacklight/catalog_helper_override.rb +0 -14
  189. data/spec/models/concerns/geoblacklight/spatial_search_behavior_spec.rb +0 -97
  190. data/vendor/assets/javascripts/leaflet.js.erb +0 -13922
  191. 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,3 +0,0 @@
1
- rails: bin/rails server --port=3000
2
- webpack: bin/webpack-dev-server
3
-
@@ -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