geoblacklight 4.0.0 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +23 -8
  3. data/.gitignore +3 -0
  4. data/.standard.yml +1 -0
  5. data/Gemfile +13 -11
  6. data/README.md +1 -1
  7. data/Rakefile +42 -50
  8. data/app/assets/images/blacklight/american-geographical-society-library-uwm-libraries.svg +26 -0
  9. data/app/assets/images/blacklight/arizona.svg +4 -0
  10. data/app/assets/images/blacklight/circle-info-solid.svg +1 -0
  11. data/app/assets/images/blacklight/fire-solid.svg +1 -0
  12. data/app/assets/images/blacklight/lightbulb-solid.svg +1 -0
  13. data/app/assets/images/blacklight/nebraska.svg +4 -0
  14. data/app/assets/images/blacklight/rutgers.svg +5 -0
  15. data/app/assets/images/blacklight/triangle-exclamation-solid.svg +1 -0
  16. data/app/assets/javascripts/geoblacklight/basemaps.js +1 -1
  17. data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +8 -0
  18. data/app/components/geoblacklight/display_note_component.html.erb +1 -0
  19. data/app/components/geoblacklight/display_note_component.rb +47 -0
  20. data/app/components/geoblacklight/icon_facet_item_component.rb +2 -2
  21. data/app/controllers/download_controller.rb +36 -37
  22. data/app/controllers/relation_controller.rb +1 -0
  23. data/app/controllers/wms_controller.rb +1 -0
  24. data/app/helpers/arcgis_helper.rb +2 -1
  25. data/app/helpers/blacklight_helper.rb +2 -1
  26. data/app/helpers/carto_helper.rb +3 -2
  27. data/app/helpers/geoblacklight/geoblacklight_helper_behavior.rb +2 -1
  28. data/app/helpers/geoblacklight_helper.rb +47 -36
  29. data/app/models/concerns/geoblacklight/bbox_filter_query.rb +1 -1
  30. data/app/models/concerns/geoblacklight/solr_document/arcgis.rb +1 -0
  31. data/app/models/concerns/geoblacklight/solr_document/carto.rb +1 -0
  32. data/app/models/concerns/geoblacklight/solr_document/citation.rb +3 -2
  33. data/app/models/concerns/geoblacklight/solr_document/finder.rb +1 -0
  34. data/app/models/concerns/geoblacklight/solr_document/inspection.rb +1 -0
  35. data/app/models/concerns/geoblacklight/solr_document.rb +17 -9
  36. data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +2 -1
  37. data/app/presenters/geoblacklight/document_presenter.rb +3 -2
  38. data/app/views/catalog/_citation.html.erb +35 -10
  39. data/app/views/catalog/_show_default_display_note.html.erb +7 -0
  40. data/app/views/catalog/_show_sidebar.html.erb +1 -0
  41. data/app/views/catalog/_show_sidebar_static_map.html.erb +10 -0
  42. data/app/views/relation/index.json.jbuilder +1 -1
  43. data/config/initializers/new_gbl_settings_defaults_4.1.yml +104 -0
  44. data/config/initializers/rails_config.rb +5 -1
  45. data/config/locales/geoblacklight.en.yml +18 -10
  46. data/geoblacklight.gemspec +36 -40
  47. data/lib/generators/geoblacklight/assets_generator.rb +15 -15
  48. data/lib/generators/geoblacklight/install_generator.rb +24 -23
  49. data/lib/generators/geoblacklight/templates/catalog_controller.rb +66 -71
  50. data/lib/generators/geoblacklight/templates/settings.gbl_v1.yml +2 -2
  51. data/lib/generators/geoblacklight/templates/settings.yml +76 -24
  52. data/lib/geoblacklight/bounding_box.rb +1 -0
  53. data/lib/geoblacklight/constants.rb +26 -25
  54. data/lib/geoblacklight/download/geojson_download.rb +10 -9
  55. data/lib/geoblacklight/download/geotiff_download.rb +6 -5
  56. data/lib/geoblacklight/download/hgl_download.rb +4 -3
  57. data/lib/geoblacklight/download/kmz_download.rb +11 -10
  58. data/lib/geoblacklight/download/shapefile_download.rb +10 -9
  59. data/lib/geoblacklight/download.rb +12 -11
  60. data/lib/geoblacklight/engine.rb +10 -9
  61. data/lib/geoblacklight/exceptions.rb +3 -0
  62. data/lib/geoblacklight/faraday_middleware/follow_redirects.rb +14 -11
  63. data/lib/geoblacklight/geometry.rb +6 -5
  64. data/lib/geoblacklight/item_viewer.rb +4 -3
  65. data/lib/geoblacklight/metadata/base.rb +4 -3
  66. data/lib/geoblacklight/metadata/fgdc.rb +1 -0
  67. data/lib/geoblacklight/metadata/html.rb +5 -4
  68. data/lib/geoblacklight/metadata/iso19139.rb +1 -0
  69. data/lib/geoblacklight/metadata.rb +1 -0
  70. data/lib/geoblacklight/metadata_transformer/base.rb +5 -4
  71. data/lib/geoblacklight/metadata_transformer/fgdc.rb +1 -0
  72. data/lib/geoblacklight/metadata_transformer/iso19139.rb +1 -0
  73. data/lib/geoblacklight/metadata_transformer.rb +6 -2
  74. data/lib/geoblacklight/reference.rb +3 -2
  75. data/lib/geoblacklight/references.rb +12 -7
  76. data/lib/geoblacklight/relation/ancestors.rb +4 -3
  77. data/lib/geoblacklight/relation/descendants.rb +4 -3
  78. data/lib/geoblacklight/relation/relation_response.rb +3 -2
  79. data/lib/geoblacklight/routes/downloadable.rb +3 -2
  80. data/lib/geoblacklight/routes/exportable.rb +4 -3
  81. data/lib/geoblacklight/routes/wms.rb +2 -1
  82. data/lib/geoblacklight/routes.rb +4 -3
  83. data/lib/geoblacklight/version.rb +2 -1
  84. data/lib/geoblacklight/view_helper_override.rb +3 -2
  85. data/lib/geoblacklight/wms_layer/feature_info_response.rb +5 -4
  86. data/lib/geoblacklight/wms_layer.rb +4 -3
  87. data/lib/geoblacklight.rb +32 -31
  88. data/lib/tasks/geoblacklight.rake +45 -44
  89. data/schema/geoblacklight-schema-aardvark.json +6 -0
  90. data/spec/components/geoblacklight/display_note_component_spec.rb +27 -0
  91. data/spec/components/geoblacklight/homepage_feature_facet_component_spec.rb +11 -10
  92. data/spec/components/geoblacklight/icon_facet_item_component_spec.rb +8 -7
  93. data/spec/config/initializers/rails_config_spec.rb +10 -9
  94. data/spec/controllers/catalog_controller_spec.rb +27 -26
  95. data/spec/controllers/download_controller_spec.rb +50 -49
  96. data/spec/controllers/relation_controller_spec.rb +5 -4
  97. data/spec/controllers/wms_controller_spec.rb +10 -9
  98. data/spec/factories/user.rb +3 -2
  99. data/spec/features/bookmarks_spec.rb +7 -6
  100. data/spec/features/citations_spec.rb +12 -0
  101. data/spec/features/configurable_basemap_spec.rb +12 -11
  102. data/spec/features/data_dictionary_download_spec.rb +11 -10
  103. data/spec/features/download_layer_spec.rb +64 -63
  104. data/spec/features/empty_search_spec.rb +6 -5
  105. data/spec/features/esri_viewer_spec.rb +33 -32
  106. data/spec/features/exports_spec.rb +18 -17
  107. data/spec/features/full_screen_controll_spec.rb +8 -8
  108. data/spec/features/help_text_spec.rb +6 -5
  109. data/spec/features/home_page_spec.rb +30 -29
  110. data/spec/features/iiif_viewer_spec.rb +6 -5
  111. data/spec/features/index_map_spec.rb +17 -16
  112. data/spec/features/layer_inspection_spec.rb +8 -7
  113. data/spec/features/layer_opacity_spec.rb +15 -14
  114. data/spec/features/layer_preview_spec.rb +11 -10
  115. data/spec/features/layer_with_no_references_spec.rb +5 -4
  116. data/spec/features/linkified_attribute_table_spec.rb +8 -7
  117. data/spec/features/metadata_panel_spec.rb +32 -31
  118. data/spec/features/missing_metadata_spec.rb +18 -17
  119. data/spec/features/multiple_downloads_spec.rb +11 -10
  120. data/spec/features/oembed_spec.rb +6 -5
  121. data/spec/features/relations_spec.rb +51 -26
  122. data/spec/features/saved_searches_spec.rb +7 -6
  123. data/spec/features/search_bar_spec.rb +9 -8
  124. data/spec/features/search_results_complex_geometry_spec.rb +12 -11
  125. data/spec/features/search_results_icons_spec.rb +10 -9
  126. data/spec/features/search_results_map_spec.rb +21 -20
  127. data/spec/features/search_results_overlap_ratio_spec.rb +17 -16
  128. data/spec/features/search_spec.rb +19 -18
  129. data/spec/features/show_page_download_spec.rb +15 -14
  130. data/spec/features/show_page_metadata_spec.rb +9 -8
  131. data/spec/features/show_page_sidebar_static_map_spec.rb +21 -0
  132. data/spec/features/sms_spec.rb +12 -11
  133. data/spec/features/split_view.html.erb_spec.rb +56 -55
  134. data/spec/features/suppressed_records_spec.rb +10 -9
  135. data/spec/features/tilejson_spec.rb +12 -9
  136. data/spec/features/tms_spec.rb +6 -5
  137. data/spec/features/web_services_modal_spec.rb +39 -38
  138. data/spec/features/wmts_spec.rb +20 -17
  139. data/spec/features/xyz_spec.rb +6 -5
  140. data/spec/fixtures/manifests/tilejson.json +1 -1
  141. data/spec/fixtures/manifests/wmts-single.xml +5 -5
  142. data/spec/fixtures/solr_documents/actual-papermap1.json +1 -1
  143. data/spec/fixtures/solr_documents/actual-point1.json +1 -1
  144. data/spec/fixtures/solr_documents/actual-polygon1.json +1 -1
  145. data/spec/fixtures/solr_documents/actual-raster1.json +1 -1
  146. data/spec/fixtures/solr_documents/baruch_ancestor1.json +1 -1
  147. data/spec/fixtures/solr_documents/baruch_ancestor2.json +1 -1
  148. data/spec/fixtures/solr_documents/baruch_documentation_download.json +2 -2
  149. data/spec/fixtures/solr_documents/cornell_html_metadata.json +1 -1
  150. data/spec/fixtures/solr_documents/display-note.json +52 -0
  151. data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +1 -1
  152. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +1 -1
  153. data/spec/fixtures/solr_documents/esri-feature-layer.json +1 -1
  154. data/spec/fixtures/solr_documents/esri-image-map-layer.json +1 -1
  155. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +1 -1
  156. data/spec/fixtures/solr_documents/esri-wms-layer.json +1 -1
  157. data/spec/fixtures/solr_documents/harvard_raster.json +1 -1
  158. data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +1 -1
  159. data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +1 -1
  160. data/spec/fixtures/solr_documents/index-map-polygon.json +1 -1
  161. data/spec/fixtures/solr_documents/index-map-stanford.json +1 -1
  162. data/spec/fixtures/solr_documents/index_map_point.json +1 -1
  163. data/spec/fixtures/solr_documents/princeton-parent.json +1 -1
  164. data/spec/fixtures/solr_documents/public_direct_download.json +1 -1
  165. data/spec/fixtures/solr_documents/public_iiif_princeton.json +1 -1
  166. data/spec/fixtures/solr_documents/restricted-line.json +1 -1
  167. data/spec/fixtures/solr_documents/tilejson.json +3 -3
  168. data/spec/fixtures/solr_documents/umn_metro_result1.json +2 -2
  169. data/spec/fixtures/solr_documents/umn_state_result1.json +1 -1
  170. data/spec/fixtures/solr_documents/umn_state_result2.json +1 -1
  171. data/spec/fixtures/solr_documents/uva_slug_colon.json +1 -1
  172. data/spec/fixtures/solr_documents/wmts-multiple.json +1 -1
  173. data/spec/fixtures/solr_documents/wmts-single-layer.json +7 -7
  174. data/spec/fixtures/solr_documents/xyz.json +3 -3
  175. data/spec/helpers/arcgis_helper_spec.rb +8 -7
  176. data/spec/helpers/carto_helper_spec.rb +6 -5
  177. data/spec/helpers/geoblacklight/geoblacklight_helper_behavior_spec.rb +10 -15
  178. data/spec/helpers/geoblacklight_helper_spec.rb +139 -138
  179. data/spec/lib/geoblacklight/bounding_box_spec.rb +14 -13
  180. data/spec/lib/geoblacklight/document_presenter_spec.rb +26 -25
  181. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +8 -7
  182. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +8 -7
  183. data/spec/lib/geoblacklight/download/hgl_download_spec.rb +16 -15
  184. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +9 -8
  185. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +8 -7
  186. data/spec/lib/geoblacklight/download_spec.rb +61 -60
  187. data/spec/lib/geoblacklight/geometry_spec.rb +29 -28
  188. data/spec/lib/geoblacklight/item_viewer_spec.rb +25 -24
  189. data/spec/lib/geoblacklight/metadata/base_spec.rb +44 -43
  190. data/spec/lib/geoblacklight/metadata/html_spec.rb +7 -6
  191. data/spec/lib/geoblacklight/metadata_spec.rb +15 -14
  192. data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +13 -12
  193. data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +8 -7
  194. data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +8 -7
  195. data/spec/lib/geoblacklight/metadata_transformer_spec.rb +15 -14
  196. data/spec/lib/geoblacklight/reference_spec.rb +28 -27
  197. data/spec/lib/geoblacklight/references_spec.rb +89 -76
  198. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +17 -16
  199. data/spec/lib/geoblacklight/relation/descendants_spec.rb +17 -16
  200. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +29 -28
  201. data/spec/lib/geoblacklight/view_helper_override_spec.rb +14 -13
  202. data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +19 -18
  203. data/spec/lib/geoblacklight/wms_layer_spec.rb +31 -30
  204. data/spec/models/concerns/geoblacklight/bbox_filter_field_spec.rb +31 -31
  205. data/spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb +32 -32
  206. data/spec/models/concerns/geoblacklight/solr_document/carto_spec.rb +16 -15
  207. data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +7 -6
  208. data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +16 -17
  209. data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +7 -6
  210. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +121 -107
  211. data/spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb +8 -7
  212. data/spec/presenters/geoblacklight/bbox_item_presenter_spec.rb +10 -10
  213. data/spec/routing/catalog_routing_spec.rb +4 -3
  214. data/spec/spec_helper.rb +35 -38
  215. data/spec/support/backport_test_helpers.rb +6 -5
  216. data/spec/support/features/session_helpers.rb +8 -7
  217. data/spec/support/features.rb +2 -1
  218. data/spec/support/fixtures.rb +2 -1
  219. data/spec/tasks/geoblacklight_spec.rb +10 -9
  220. data/spec/test_app_templates/lib/generators/test_app_generator.rb +16 -15
  221. data/spec/views/catalog/_document_split.html.erb_spec.rb +3 -2
  222. data/spec/views/catalog/_index_split.html.erb_spec.rb +3 -2
  223. data/spec/views/catalog/_results_pagination.html.erb_spec.rb +5 -4
  224. data/spec/views/catalog/_show_downloads.html.erb_spec.rb +11 -10
  225. data/spec/views/catalog/_show_tools.html.erb_spec.rb +13 -12
  226. data/template.rb +9 -8
  227. metadata +40 -216
  228. data/.gitmodules +0 -0
  229. data/.rubocop.yml +0 -111
  230. data/.rubocop_todo.yml +0 -437
  231. data/config/initializers/new_gbl_settings_defaults_3_4.yml +0 -6
  232. /data/app/assets/images/blacklight/{berkeley.svg → university-of-california-berkeley.svg} +0 -0
@@ -1,48 +1,49 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'search results map', js: true do
5
- scenario 'present on a search result page' do
6
- visit search_catalog_path(q: 'Minnesota')
7
- expect(page).to have_css '#map'
3
+ require "spec_helper"
4
+
5
+ feature "search results map", js: true do
6
+ scenario "present on a search result page" do
7
+ visit search_catalog_path(q: "Minnesota")
8
+ expect(page).to have_css "#map"
8
9
  end
9
- xscenario 'view is scoped to Minnesota' do
10
+ xscenario "view is scoped to Minnesota" do
10
11
  # pending 'Minnesota fixtures have changed.'
11
12
  visit root_path
12
- click_link 'Minnesota, United States'
13
- expect(page).to have_css '#map'
14
- bbox = page.find('#map')['data-js-map-render-bbox']
13
+ click_link "Minnesota, United States"
14
+ expect(page).to have_css "#map"
15
+ bbox = page.find("#map")["data-js-map-render-bbox"]
15
16
 
16
17
  # Example bbox for Place > Minnesota, United States:
17
18
  # "-101.90917968749999,38.75408327579141,-83.27636718749999,53.27835301753182"
18
- left, bottom, right, top = bbox.split(',')
19
+ left, bottom, right, top = bbox.split(",")
19
20
  expect(left.to_f).to be_within(2).of(-101)
20
21
  expect(bottom.to_f).to be_within(3).of(38)
21
22
  expect(right.to_f).to be_within(2).of(-83)
22
23
  expect(top.to_f).to be_within(2).of(53)
23
24
  end
24
- scenario 'view is scoped to Twin Cities metro area' do
25
- visit search_catalog_path(q: 'Minneapolis')
26
- expect(page).to have_css '#map'
27
- bbox = page.find('#map')['data-js-map-render-bbox']
25
+ scenario "view is scoped to Twin Cities metro area" do
26
+ visit search_catalog_path(q: "Minneapolis")
27
+ expect(page).to have_css "#map"
28
+ bbox = page.find("#map")["data-js-map-render-bbox"]
28
29
 
29
30
  # Example bbox for q: Minneapolis
30
31
  # "-94.537353515625,44.004669106432225,-92.208251953125,45.87088761346192"
31
- left, bottom, right, top = bbox.split(',')
32
+ left, bottom, right, top = bbox.split(",")
32
33
  expect(left.to_f).to be_within(1).of(-94)
33
34
  expect(bottom.to_f).to be_within(1).of(44)
34
35
  expect(right.to_f).to be_within(1).of(-92)
35
36
  expect(top.to_f).to be_within(1).of(45)
36
37
  end
37
- scenario 'view is scoped to NYC' do
38
+ scenario "view is scoped to NYC" do
38
39
  visit root_path
39
- click_link 'New York, New York'
40
- expect(page).to have_css '#map'
41
- bbox = page.find('#map')['data-js-map-render-bbox']
40
+ click_link "New York, New York"
41
+ expect(page).to have_css "#map"
42
+ bbox = page.find("#map")["data-js-map-render-bbox"]
42
43
 
43
44
  # Example bbox for Place > New York, New York, United States
44
45
  # "-74.26895141601562,40.455307212131494,-73.68667602539061,40.95501133048621"
45
- left, bottom, right, top = bbox.split(',')
46
+ left, bottom, right, top = bbox.split(",")
46
47
  expect(left.to_f).to be_within(2).of(-74)
47
48
  expect(bottom.to_f).to be_within(2).of(40)
48
49
  expect(right.to_f).to be_within(2).of(-73)
@@ -1,56 +1,57 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'spatial search results overlap ratio' do
5
- scenario 'result bboxes fully contained, overlap ratio applied to relevancy' do
3
+ require "spec_helper"
4
+
5
+ feature "spatial search results overlap ratio" do
6
+ scenario "result bboxes fully contained, overlap ratio applied to relevancy" do
6
7
  allow(Settings).to receive(:OVERLAP_RATIO_BOOST).and_return 200
7
8
 
8
9
  # BBox param is the US upper midwest and Canada, roughly centered on the state of Minnesota
9
10
  visit search_catalog_path(
10
- bbox: '-103.196521 39.21962 -84.431873 53.63497',
11
- "f[#{Settings.FIELDS.PROVIDER}][]": 'University of Minnesota'
11
+ bbox: "-103.196521 39.21962 -84.431873 53.63497",
12
+ "f[#{Settings.FIELDS.PROVIDER}][]": "University of Minnesota"
12
13
  )
13
14
 
14
15
  # MN State result
15
16
  # Slightly bigger bbox / result bbox fits bbox param best
16
- expect(position_in_result_page(page, 'e9c71086-6b25-4950-8e1c-84c2794e3382')).to eq 1
17
+ expect(position_in_result_page(page, "e9c71086-6b25-4950-8e1c-84c2794e3382")).to eq 1
17
18
 
18
19
  # MN State result
19
20
  # Slightly smaller bbox / result bbox fits bbox param second best
20
- expect(position_in_result_page(page, '2eddde2f-c222-41ca-bd07-2fd74a21f4de')).to eq 2
21
+ expect(position_in_result_page(page, "2eddde2f-c222-41ca-bd07-2fd74a21f4de")).to eq 2
21
22
 
22
23
  # TC Metro result
23
24
  # Smaller bbox / result bbox fits bbox param third
24
- expect(position_in_result_page(page, '02236876-9c21-42f6-9870-d2562da8e44f')).to eq 3
25
+ expect(position_in_result_page(page, "02236876-9c21-42f6-9870-d2562da8e44f")).to eq 3
25
26
  end
26
27
 
27
- scenario 'three bboxes overlap, but none are fully contained, overlap ratio should still impact relevancy' do
28
+ scenario "three bboxes overlap, but none are fully contained, overlap ratio should still impact relevancy" do
28
29
  allow(Settings).to receive(:OVERLAP_RATIO_BOOST).and_return 200
29
30
 
30
31
  # BBox param is the center to western edge of New York state and Canada, roughly centered on Lake Ontario
31
32
  visit search_catalog_path(
32
- bbox: '-83.750499 40.41709 -74.368175 47.963663',
33
- "f[#{Settings.FIELDS.PROVIDER}][]": 'Cornell'
33
+ bbox: "-83.750499 40.41709 -74.368175 47.963663",
34
+ "f[#{Settings.FIELDS.PROVIDER}][]": "Cornell"
34
35
  )
35
36
 
36
37
  # NY State result
37
38
  # Bigger bbox / result bbox overlaps bbox param best
38
- expect(position_in_result_page(page, 'cugir-008186')).to be < 4
39
+ expect(position_in_result_page(page, "cugir-008186")).to be < 4
39
40
 
40
41
  # NY State result
41
42
  # Bigger bbox / result bbox overlaps bbox param best (score tie)
42
- expect(position_in_result_page(page, 'cugir-008186-no-downloadurl')).to be < 4
43
+ expect(position_in_result_page(page, "cugir-008186-no-downloadurl")).to be < 4
43
44
 
44
45
  # NY Adirondak Region result
45
46
  # Smaller bbox / result bbox overlaps bbox param the least
46
- expect(position_in_result_page(page, 'cugir-007741')).to eq 4
47
+ expect(position_in_result_page(page, "cugir-007741")).to eq 4
47
48
  end
48
49
  end
49
50
 
50
51
  def position_in_result_page(page, id)
51
52
  results = []
52
- page.all('div.documentHeader.row').each do |div|
53
- results << div['data-layer-id']
53
+ page.all("div.documentHeader.row").each do |div|
54
+ results << div["data-layer-id"]
54
55
  end
55
56
  results.index(id) + 1
56
57
  end
@@ -1,37 +1,38 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Search' do
5
- scenario 'Suppressed records are hidden' do
6
- visit '/?q=Sanborn+Map+Company'
7
- expect(page).to have_css '.document', count: 1
3
+ require "spec_helper"
4
+
5
+ feature "Search" do
6
+ scenario "Suppressed records are hidden" do
7
+ visit "/?q=Sanborn+Map+Company"
8
+ expect(page).to have_css ".document", count: 1
8
9
  end
9
10
 
10
- scenario 'When searching child records from a parent record, supressed records are not hidden', js: true do
11
- visit '/catalog/princeton-1r66j405w'
11
+ scenario "When searching child records from a parent record, supressed records are not hidden", js: true do
12
+ visit "/catalog/princeton-1r66j405w"
12
13
 
13
- within('.card.relations.relationship-source_descendants') do
14
+ within(".card.relations.relationship-source_descendants") do
14
15
  expect(page).to have_link(href: /f%5Bdct_source_sm%5D/)
15
16
  end
16
17
 
17
- click_link 'Browse all 4 records...'
18
- expect(page).to have_css '.document', count: 4
18
+ click_link "Browse all 4 records..."
19
+ expect(page).to have_css ".document", count: 4
19
20
  end
20
21
 
21
- scenario 'When sorting by year desc, highest value sorts first' do
22
- visit '/?f%5Bschema_provider_s%5D%5B%5D=University+of+Minnesota&sort=gbl_indexYear_im+desc%2C+dct_title_sort+asc'
22
+ scenario "When sorting by year desc, highest value sorts first" do
23
+ visit "/?f%5Bschema_provider_s%5D%5B%5D=University+of+Minnesota&sort=gbl_indexYear_im+desc%2C+dct_title_sort+asc"
23
24
 
24
- first_doc = find('.document', match: :first)
25
+ first_doc = find(".document", match: :first)
25
26
 
26
27
  # Doc with gbl_indexYear_im value: [2014, 2030]
27
- expect(first_doc['data-document-id']).to eq('02236876-9c21-42f6-9870-d2562da8e44f')
28
+ expect(first_doc["data-document-id"]).to eq("02236876-9c21-42f6-9870-d2562da8e44f")
28
29
  end
29
30
 
30
- scenario 'When sorting by year, missing values sort last' do
31
- visit '/?f%5Bschema_provider_s%5D%5B%5D=University+of+Minnesota&sort=gbl_indexYear_im+desc%2C+dct_title_sort+asc'
32
- last_doc = find_all('.document').last
31
+ scenario "When sorting by year, missing values sort last" do
32
+ visit "/?f%5Bschema_provider_s%5D%5B%5D=University+of+Minnesota&sort=gbl_indexYear_im+desc%2C+dct_title_sort+asc"
33
+ last_doc = find_all(".document").last
33
34
 
34
35
  # Doc without gbl_indexYear_im value
35
- expect(last_doc['data-document-id']).to eq('05d-03-nogeomtype')
36
+ expect(last_doc["data-document-id"]).to eq("05d-03-nogeomtype")
36
37
  end
37
38
  end
@@ -1,28 +1,29 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Download display on show page' do
5
- scenario 'with download String' do
6
- visit solr_document_path '2eddde2f-c222-41ca-bd07-2fd74a21f4de'
7
- find('#downloads-button').click
8
- within '#downloads-collapse' do
3
+ require "spec_helper"
4
+
5
+ feature "Download display on show page" do
6
+ scenario "with download String" do
7
+ visit solr_document_path "2eddde2f-c222-41ca-bd07-2fd74a21f4de"
8
+ find("#downloads-button").click
9
+ within "#downloads-collapse" do
9
10
  expect(page).to have_selector(:css, 'a[href="ftp://gdrs.dnr.state.mn.us/gdrs/data/pub/us_mn_state_dnr/fgdb_base_usgs_scanned_topo_100k_drg.zip"]')
10
11
  end
11
12
  end
12
13
 
13
- scenario 'with download Array' do
14
- visit solr_document_path 'princeton-sx61dn82p'
15
- find('#downloads-button').click
16
- within '#downloads-collapse' do
14
+ scenario "with download Array" do
15
+ visit solr_document_path "princeton-sx61dn82p"
16
+ find("#downloads-button").click
17
+ within "#downloads-collapse" do
17
18
  expect(page).to have_selector(:css, 'a[href="https://figgy.princeton.edu/downloads/a990e1b4-7f0e-44b8-ae2a-de7e93cdd74a/file/36a2274c-e0c6-4901-a14f-7c422d15e194"]')
18
19
  expect(page).to have_selector(:css, 'a[href="https://libimages1.princeton.edu/loris/figgy_prod/2e%2Fa9%2F43%2F2ea943b0bd4348fc9954b299f1b359f6%2Fintermediate_file.jp2/full/full/0/default.jpg"]')
19
20
  end
20
21
  end
21
22
 
22
- scenario 'with Harvard hgl_download' do
23
- visit solr_document_path 'harvard-g7064-s2-1834-k3'
24
- find('#downloads-button').click
25
- within '#downloads-collapse' do
23
+ scenario "with Harvard hgl_download" do
24
+ visit solr_document_path "harvard-g7064-s2-1834-k3"
25
+ find("#downloads-button").click
26
+ within "#downloads-collapse" do
26
27
  expect(page).to have_selector(:css, 'a[href="/download/hgl/harvard-g7064-s2-1834-k3"][data-download-type="harvard-hgl"]')
27
28
  end
28
29
  end
@@ -1,13 +1,14 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Metadata display on show page' do
5
- scenario 'with default CatalogController specified fields' do
6
- visit solr_document_path 'stanford-dp018hs9766'
7
- within '.document-metadata' do
8
- expect(page).to have_css 'dt', count: 16
9
- expect(page).to have_css 'dd', count: 16
10
- expect(page).to have_css 'div.truncate-abstract', count: 1
3
+ require "spec_helper"
4
+
5
+ feature "Metadata display on show page" do
6
+ scenario "with default CatalogController specified fields" do
7
+ visit solr_document_path "stanford-dp018hs9766"
8
+ within ".document-metadata" do
9
+ expect(page).to have_css "dt", count: 16
10
+ expect(page).to have_css "dd", count: 16
11
+ expect(page).to have_css "div.truncate-abstract", count: 1
11
12
  end
12
13
  end
13
14
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ feature "Display sidebar static map on catalog#show page" do
6
+ scenario "Document viewer protocol: IIIF (show)" do
7
+ visit solr_document_path "princeton-02870w62c"
8
+ within ".page-sidebar" do
9
+ expect(page).to have_content "Location"
10
+ expect(page).to have_css "div#static-map"
11
+ end
12
+ end
13
+
14
+ scenario "Document viewer protocol: WMS (do not show)" do
15
+ visit solr_document_path "stanford-cg357zz0321"
16
+ within ".page-sidebar" do
17
+ expect(page).to have_no_content "Location"
18
+ expect(page).to have_no_css "div#static-map"
19
+ end
20
+ end
21
+ end
@@ -1,16 +1,17 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'SMS tool', js: true do
5
- scenario 'shows up in tools' do
6
- visit solr_document_path 'stanford-cg357zz0321'
7
- expect(page).to have_css 'li.sms a', text: 'SMS This'
8
- click_link 'SMS This'
9
- within '.modal-body' do
10
- expect(page).to have_css 'input', count: 1
11
- expect(page).to have_css 'label', text: 'Phone Number:'
12
- expect(page).to have_css 'select', count: 1
13
- expect(page).to have_css 'label', text: 'Carrier'
3
+ require "spec_helper"
4
+
5
+ feature "SMS tool", js: true do
6
+ scenario "shows up in tools" do
7
+ visit solr_document_path "stanford-cg357zz0321"
8
+ expect(page).to have_css "li.sms a", text: "SMS This"
9
+ click_link "SMS This"
10
+ within ".modal-body" do
11
+ expect(page).to have_css "input", count: 1
12
+ expect(page).to have_css "label", text: "Phone Number:"
13
+ expect(page).to have_css "select", count: 1
14
+ expect(page).to have_css "label", text: "Carrier"
14
15
  end
15
16
  end
16
17
  end
@@ -1,90 +1,91 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Index view', js: true do
3
+ require "spec_helper"
4
+
5
+ feature "Index view", js: true do
5
6
  let(:subject_field) { Settings.FIELDS.SUBJECT }
6
7
  before do
7
- visit search_catalog_path(q: '*')
8
+ visit search_catalog_path(q: "*")
8
9
  end
9
10
 
10
- scenario 'should have documents and map on page' do
11
- visit search_catalog_path(f: { Settings.FIELDS.PROVIDER => ['Stanford'] })
12
- expect(page).to have_css('#documents')
13
- expect(page).to have_css('.document', count: 6)
14
- expect(page).to have_css('#map')
11
+ scenario "should have documents and map on page" do
12
+ visit search_catalog_path(f: {Settings.FIELDS.PROVIDER => ["Stanford"]})
13
+ expect(page).to have_css("#documents")
14
+ expect(page).to have_css(".document", count: 6)
15
+ expect(page).to have_css("#map")
15
16
  end
16
17
 
17
- scenario 'should have sort and per_page on page' do
18
- visit search_catalog_path(f: { Settings.FIELDS.PROVIDER => ['Stanford'] })
19
- expect(page).to have_css('#sort-dropdown')
20
- expect(page).to have_css('#per_page-dropdown')
18
+ scenario "should have sort and per_page on page" do
19
+ visit search_catalog_path(f: {Settings.FIELDS.PROVIDER => ["Stanford"]})
20
+ expect(page).to have_css("#sort-dropdown")
21
+ expect(page).to have_css("#per_page-dropdown")
21
22
  end
22
23
 
23
- scenario 'should have facets listed correctly' do
24
- within '#facet-panel-collapse' do
25
- expect(page).to have_css('div.card.facet-limit', text: 'Year')
26
- expect(page).to have_css('div.card.facet-limit', text: 'Place')
27
- expect(page).to have_css('div.card.facet-limit', text: 'Access')
28
- expect(page).to have_css('div.card.facet-limit', text: 'Resource Class')
29
- expect(page).to have_css('div.card.facet-limit', text: 'Resource Type')
30
- expect(page).to have_css('div.card.facet-limit', text: 'Format')
31
- expect(page).to have_css('div.card.facet-limit', text: 'Subject')
32
- expect(page).to have_css('div.card.facet-limit', text: 'Theme')
33
- expect(page).to have_css('div.card.facet-limit', text: 'Creator')
34
- expect(page).to have_css('div.card.facet-limit', text: 'Publisher')
35
- expect(page).to have_css('div.card.facet-limit', text: 'Provider')
36
- expect(page).to have_css('div.card.facet-limit', text: 'Georeferenced')
24
+ scenario "should have facets listed correctly" do
25
+ within "#facet-panel-collapse" do
26
+ expect(page).to have_css("div.card.facet-limit", text: "Year")
27
+ expect(page).to have_css("div.card.facet-limit", text: "Place")
28
+ expect(page).to have_css("div.card.facet-limit", text: "Access")
29
+ expect(page).to have_css("div.card.facet-limit", text: "Resource Class")
30
+ expect(page).to have_css("div.card.facet-limit", text: "Resource Type")
31
+ expect(page).to have_css("div.card.facet-limit", text: "Format")
32
+ expect(page).to have_css("div.card.facet-limit", text: "Subject")
33
+ expect(page).to have_css("div.card.facet-limit", text: "Theme")
34
+ expect(page).to have_css("div.card.facet-limit", text: "Creator")
35
+ expect(page).to have_css("div.card.facet-limit", text: "Publisher")
36
+ expect(page).to have_css("div.card.facet-limit", text: "Provider")
37
+ expect(page).to have_css("div.card.facet-limit", text: "Georeferenced")
37
38
  end
38
- click_button 'Provider'
39
+ click_button "Provider"
39
40
  using_wait_time 120 do
40
- expect(page).to have_css('a.facet-select', text: 'University of Minnesota', visible: true)
41
- expect(page).to have_css('a.facet-select', text: 'MIT', visible: true)
42
- expect(page).to have_css('a.facet-select', text: 'Stanford', visible: true)
43
- expect(page).to have_css('.more_facets a', text: /more\sProvider\s»/, visible: true)
41
+ expect(page).to have_css("a.facet-select", text: "University of Minnesota", visible: true)
42
+ expect(page).to have_css("a.facet-select", text: "MIT", visible: true)
43
+ expect(page).to have_css("a.facet-select", text: "Stanford", visible: true)
44
+ expect(page).to have_css(".more_facets a", text: /more\sProvider\s»/, visible: true)
44
45
  end
45
46
  end
46
47
 
47
- scenario 'hover on record should produce bounding box on map' do
48
+ scenario "hover on record should produce bounding box on map" do
48
49
  # Needed to find an svg element on the page
49
- visit search_catalog_path(f: { Settings.FIELDS.PROVIDER => ['Stanford'] })
50
+ visit search_catalog_path(f: {Settings.FIELDS.PROVIDER => ["Stanford"]})
50
51
  # BL7 has svg icons, so sniffing for SVG path won't return false
51
52
  # expect(Nokogiri::HTML.parse(page.body).css('path').length).to eq 0
52
- find('.documentHeader', match: :first).hover
53
- within('#map') do
54
- expect(page).to have_css('path')
53
+ find(".documentHeader", match: :first).hover
54
+ within("#map") do
55
+ expect(page).to have_css("path")
55
56
  end
56
57
  end
57
58
 
58
- scenario 'click on a record area to expand collapse' do
59
- within('article', match: :first) do
60
- expect(page).not_to have_css('.collapse')
61
- find('button').click
62
- expect(page).to have_css('.collapse', visible: true)
59
+ scenario "click on a record area to expand collapse" do
60
+ within("article", match: :first) do
61
+ expect(page).not_to have_css(".collapse")
62
+ find("button").click
63
+ expect(page).to have_css(".collapse", visible: true)
63
64
  end
64
65
  end
65
66
 
66
- scenario 'spatial search should reset to page one' do
67
- visit '/?per_page=5&q=%2A&page=2'
68
- find('#map').double_click
69
- expect(find('.page-entries')).to have_content(/^1 - \d of \d.*$/)
67
+ scenario "spatial search should reset to page one" do
68
+ visit "/?per_page=5&q=%2A&page=2"
69
+ find("#map").double_click
70
+ expect(find(".page-entries")).to have_content(/^1 - \d of \d.*$/)
70
71
  end
71
72
 
72
- scenario 'clicking map search should retain current search parameters' do
73
+ scenario "clicking map search should retain current search parameters" do
73
74
  visit "/?f[#{subject_field}][]=Population"
74
- find('#map').double_click
75
- within '#appliedParams' do
76
- expect(page).to have_content('Subject Population')
77
- expect(page).to have_css 'span.filter-name', text: 'Bounding Box'
75
+ find("#map").double_click
76
+ within "#appliedParams" do
77
+ expect(page).to have_content("Subject Population")
78
+ expect(page).to have_css "span.filter-name", text: "Bounding Box"
78
79
  end
79
80
  end
80
81
 
81
- scenario 'should have schema.org props listed' do
82
- visit search_catalog_path(f: { Settings.FIELDS.PROVIDER => ['Stanford'] })
83
- within('.documentHeader', match: :first) do
82
+ scenario "should have schema.org props listed" do
83
+ visit search_catalog_path(f: {Settings.FIELDS.PROVIDER => ["Stanford"]})
84
+ within(".documentHeader", match: :first) do
84
85
  expect(page).to have_css("a[itemprop='name']")
85
- find('.caret-toggle').click
86
+ find(".caret-toggle").click
86
87
  end
87
- within('.more-info-area', match: :first) do
88
+ within(".more-info-area", match: :first) do
88
89
  expect(page).to have_css("small[itemprop='description']")
89
90
  end
90
91
  end
@@ -1,15 +1,16 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Suppressed records' do
5
- scenario 'are viewable' do
6
- visit solr_document_path 'princeton-jq085m62x'
7
- expect(page).to have_css('#document')
3
+ require "spec_helper"
4
+
5
+ feature "Suppressed records" do
6
+ scenario "are viewable" do
7
+ visit solr_document_path "princeton-jq085m62x"
8
+ expect(page).to have_css("#document")
8
9
  end
9
10
 
10
- scenario 'are exportable' do
11
- visit solr_document_path 'princeton-jq085m62x'
12
- click_link 'Web services'
13
- expect(page).to have_css 'h1.modal-title', text: 'Web services'
11
+ scenario "are exportable" do
12
+ visit solr_document_path "princeton-jq085m62x"
13
+ click_link "Web services"
14
+ expect(page).to have_css "h1.modal-title", text: "Web services"
14
15
  end
15
16
  end
@@ -1,22 +1,25 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'tilejson layer' do
3
+ require "spec_helper"
4
+
5
+ feature "tilejson layer" do
5
6
  before do
6
- WebMock.disable_net_connect!(allow_localhost: true, allow: 'chromedriver.storage.googleapis.com')
7
+ WebMock.disable_net_connect!(allow_localhost: true, allow: "chromedriver.storage.googleapis.com")
7
8
  end
8
9
 
9
10
  after do
10
11
  WebMock.allow_net_connect!
11
12
  end
12
13
 
13
- scenario 'displays tilejson layer', js: true do
14
+ scenario "displays tilejson layer", js: true do
14
15
  # Mock tilejson manifest url
15
- stub_request(:get, 'https://map-tiles-staging.princeton.edu/mosaicjson/tilejson.json?id=2a91d82c541c426cb787cc62afe8f248')
16
- .to_return(status: 200, body: read_fixture('manifests/tilejson.json'))
16
+ stub_request(:get, "https://map-tiles-staging.princeton.edu/2a91d82c541c426cb787cc62afe8f248/mosaicjson/tilejson.json")
17
+ .to_return(status: 200, body: read_fixture("manifests/tilejson.json"))
18
+
19
+ visit solr_document_path("princeton-fk4544658v-tilejson")
17
20
 
18
- visit solr_document_path('princeton-fk4544658v-tilejson')
19
- expect(page).to have_css '.leaflet-control-zoom', visible: :visible
20
- expect(page).to have_css "img[src*='https://map-tiles-staging.princeton.edu/mosaicjson/tiles/WebMercatorQuad']"
21
+ expect(page).to have_css ".leaflet-control-zoom", visible: :visible
22
+ expect(page).to have_css "div[data-protocol='Tilejson']"
23
+ expect(page).to have_css "div[data-url='https://map-tiles-staging.princeton.edu/2a91d82c541c426cb787cc62afe8f248/mosaicjson/tilejson.json']"
21
24
  end
22
25
  end
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'tms layer' do
5
- scenario 'displays tms layer', js: true do
6
- visit solr_document_path('cugir-007957')
7
- expect(page).to have_css '.leaflet-control-zoom', visible: true
3
+ require "spec_helper"
4
+
5
+ feature "tms layer" do
6
+ scenario "displays tms layer", js: true do
7
+ visit solr_document_path("cugir-007957")
8
+ expect(page).to have_css ".leaflet-control-zoom", visible: true
8
9
  expect(page).to have_css "img[src*='cugir.library.cornell.edu']"
9
10
  end
10
11
  end