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,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'iiif reference' do
5
- scenario 'displays leaflet viewer', js: true do
6
- visit solr_document_path('princeton-02870w62c')
7
- expect(page).to have_css '.leaflet-control-zoom', visible: true
3
+ require "spec_helper"
4
+
5
+ feature "iiif reference" do
6
+ scenario "displays leaflet viewer", js: true do
7
+ visit solr_document_path("princeton-02870w62c")
8
+ expect(page).to have_css ".leaflet-control-zoom", visible: true
8
9
  end
9
10
  end
@@ -1,31 +1,32 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Index map' do
3
+ require "spec_helper"
4
+
5
+ feature "Index map" do
5
6
  # Colors
6
- default_color = '#7FCDBB'
7
- selected_color = '#2C7FB8'
8
- scenario 'displays index map viewer (polygon)', js: true do
9
- visit solr_document_path('stanford-fb897vt9938')
7
+ default_color = "#7FCDBB"
8
+ selected_color = "#2C7FB8"
9
+ scenario "displays index map viewer (polygon)", js: true do
10
+ visit solr_document_path("stanford-fb897vt9938")
10
11
  # Wait until SVG elements are added
11
- expect(page).to have_css '.leaflet-overlay-pane svg'
12
- within '#map' do
12
+ expect(page).to have_css ".leaflet-overlay-pane svg"
13
+ within "#map" do
13
14
  expect(page).to have_css "svg g path:nth-child(2)[fill='#{default_color}']"
14
- find('svg g path:nth-child(2)').click
15
+ find("svg g path:nth-child(2)").click
15
16
  expect(page).to have_css "svg g path:nth-child(2)[fill='#{selected_color}']"
16
- first('svg g path').click
17
+ first("svg g path").click
17
18
  expect(page).to have_css "svg g path:nth-child(2)[fill='#{default_color}']"
18
19
  end
19
20
  end
20
- scenario 'displays index map viewer (points)', js: true do
21
- visit solr_document_path('cornell-ny-aerial-photos-1960s')
21
+ scenario "displays index map viewer (points)", js: true do
22
+ visit solr_document_path("cornell-ny-aerial-photos-1960s")
22
23
  # Wait until SVG elements are added
23
- expect(page).to have_css '.leaflet-overlay-pane svg'
24
- within '#map' do
24
+ expect(page).to have_css ".leaflet-overlay-pane svg"
25
+ within "#map" do
25
26
  expect(page).to have_css "svg g path:nth-child(2)[fill='#{default_color}']"
26
- find('svg g path:nth-child(2)').click
27
+ find("svg g path:nth-child(2)").click
27
28
  expect(page).to have_css "svg g path:nth-child(2)[fill='#{selected_color}']"
28
- first('svg g path').click
29
+ first("svg g path").click
29
30
  expect(page).to have_css "svg g path:nth-child(2)[fill='#{default_color}']"
30
31
  end
31
32
  end
@@ -1,11 +1,12 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Layer inspection', js: true do
5
- scenario 'clicking map should trigger inspection' do
6
- visit solr_document_path('mit-f6rqs4ucovjk2')
7
- expect(page).to have_css('th', text: 'Attribute')
8
- find('#map').click
9
- expect(page).not_to have_css('td.default-text')
3
+ require "spec_helper"
4
+
5
+ feature "Layer inspection", js: true do
6
+ scenario "clicking map should trigger inspection" do
7
+ visit solr_document_path("nyu-2451-34564")
8
+ expect(page).to have_css("th", text: "Attribute")
9
+ find("#map").click
10
+ expect(page).not_to have_css("td.default-text")
10
11
  end
11
12
  end
@@ -1,22 +1,23 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Layer opacity', js: true do
5
- scenario 'WMS layer should have opacity control' do
6
- visit solr_document_path('mit-f6rqs4ucovjk2')
7
- expect(page).to have_css('div.opacity-text', text: '75%')
8
- expect(page.all('div.leaflet-layer')[1][:style]).to match(/opacity: 0.75;/)
3
+ require "spec_helper"
4
+
5
+ feature "Layer opacity", js: true do
6
+ scenario "WMS layer should have opacity control" do
7
+ visit solr_document_path("mit-f6rqs4ucovjk2")
8
+ expect(page).to have_css("div.opacity-text", text: "75%")
9
+ expect(page.all("div.leaflet-layer")[1][:style]).to match(/opacity: 0.75;/)
9
10
  end
10
11
 
11
- scenario 'ESRI image service layer should have opacity control' do
12
- skip 'CORS error - Purdue web services are down'
13
- visit solr_document_path('32653ed6-8d83-4692-8a06-bf13ffe2c018')
14
- expect(page).to have_css('div.opacity-text', text: '75%')
15
- expect(page.find('img.leaflet-image-layer', match: :first)[:style]).to match(/opacity: 0.75;/)
12
+ scenario "ESRI image service layer should have opacity control" do
13
+ skip "CORS error - Purdue web services are down"
14
+ visit solr_document_path("32653ed6-8d83-4692-8a06-bf13ffe2c018")
15
+ expect(page).to have_css("div.opacity-text", text: "75%")
16
+ expect(page.find("img.leaflet-image-layer", match: :first)[:style]).to match(/opacity: 0.75;/)
16
17
  end
17
18
 
18
- scenario 'IIIF layer should not have opacity control' do
19
- visit solr_document_path('princeton-02870w62c')
20
- expect(page).not_to have_css('div.opacity-text', text: '75%')
19
+ scenario "IIIF layer should not have opacity control" do
20
+ visit solr_document_path("princeton-02870w62c")
21
+ expect(page).not_to have_css("div.opacity-text", text: "75%")
21
22
  end
22
23
  end
@@ -1,18 +1,19 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Layer preview', js: true do
5
- scenario 'Restricted layer should show bounding box' do
6
- visit solr_document_path('stanford-cg357zz0321')
7
- within('#map') do
8
- expect(page).to have_css('path')
3
+ require "spec_helper"
4
+
5
+ feature "Layer preview", js: true do
6
+ scenario "Restricted layer should show bounding box" do
7
+ visit solr_document_path("stanford-cg357zz0321")
8
+ within("#map") do
9
+ expect(page).to have_css("path")
9
10
  end
10
11
  end
11
12
 
12
- scenario 'Public layer should show wms layer not bounding box' do
13
- visit solr_document_path('mit-f6rqs4ucovjk2')
14
- within '.leaflet-tile-pane' do
15
- expect(page).to have_css('.leaflet-layer', count: 2)
13
+ scenario "Public layer should show wms layer not bounding box" do
14
+ visit solr_document_path("mit-f6rqs4ucovjk2")
15
+ within ".leaflet-tile-pane" do
16
+ expect(page).to have_css(".leaflet-layer", count: 2)
16
17
  end
17
18
  end
18
19
  end
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'layer with no wms or iiif' do
5
- scenario 'has map with bounding box' do
6
- pending 'waiting on #201, need example metadata record'
3
+ require "spec_helper"
4
+
5
+ feature "layer with no wms or iiif" do
6
+ scenario "has map with bounding box" do
7
+ pending "waiting on #201, need example metadata record"
7
8
  fail
8
9
  end
9
10
  end
@@ -1,12 +1,13 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Attribute table values', js: true do
5
- xscenario 'are linkified' do
3
+ require "spec_helper"
4
+
5
+ feature "Attribute table values", js: true do
6
+ xscenario "are linkified" do
6
7
  # ArcGIS server returning an error. Wait until SVG elements are added
7
- visit solr_document_path 'f406332e63eb4478a9560ad86ae90327_18'
8
- expect(page).to have_css '.leaflet-overlay-pane svg'
9
- page.first('svg g path').click
10
- expect(page).to have_css 'td a[href="http://www.minneapolismn.gov/fire/stations/fire_station28"]', text: 'http://www.minneapolismn.gov/fire/stations/fire_station28'
8
+ visit solr_document_path "f406332e63eb4478a9560ad86ae90327_18"
9
+ expect(page).to have_css ".leaflet-overlay-pane svg"
10
+ page.first("svg g path").click
11
+ expect(page).to have_css 'td a[href="http://www.minneapolismn.gov/fire/stations/fire_station28"]', text: "http://www.minneapolismn.gov/fire/stations/fire_station28"
11
12
  end
12
13
  end
@@ -1,11 +1,12 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Metadata tools' do
5
- feature 'when metadata references are available', js: :true do
6
- let(:iso19139) { File.read(Rails.root.join('..', 'spec', 'fixtures', 'iso19139', 'stanford-cg357zz0321.xml')) }
7
- let(:fgdc) { File.read(Rails.root.join('..', 'spec', 'fixtures', 'fgdc', 'harvard-g7064-s2-1834-k3.xml')) }
8
- let(:mods) { File.read(Rails.root.join('..', 'spec', 'fixtures', 'mods', 'stanford-cg357zz0321.mods')) }
3
+ require "spec_helper"
4
+
5
+ feature "Metadata tools" do
6
+ feature "when metadata references are available", js: true do
7
+ let(:iso19139) { File.read(Rails.root.join("..", "spec", "fixtures", "iso19139", "stanford-cg357zz0321.xml")) }
8
+ let(:fgdc) { File.read(Rails.root.join("..", "spec", "fixtures", "fgdc", "harvard-g7064-s2-1834-k3.xml")) }
9
+ let(:mods) { File.read(Rails.root.join("..", "spec", "fixtures", "mods", "stanford-cg357zz0321.mods")) }
9
10
  let(:fgdc_response) { instance_double(Faraday::Response) }
10
11
  let(:fgdc_connection) { instance_double(Faraday::Connection) }
11
12
  let(:iso19139_response) { instance_double(Faraday::Response) }
@@ -17,35 +18,35 @@ feature 'Metadata tools' do
17
18
  allow(iso19139_response).to receive(:body).and_return(iso19139)
18
19
  allow(iso19139_response).to receive(:status).and_return(200)
19
20
  allow(iso19139_connection).to receive(:get).and_return(iso19139_response)
20
- allow(Faraday).to receive(:new).with(url: 'https://raw.githubusercontent.com/OpenGeoMetadata/edu.stanford.purl/master/cg/357/zz/0321/iso19139.xml').and_return(iso19139_connection)
21
+ allow(Faraday).to receive(:new).with(url: "https://raw.githubusercontent.com/OpenGeoMetadata/edu.stanford.purl/master/cg/357/zz/0321/iso19139.xml").and_return(iso19139_connection)
21
22
 
22
23
  allow(fgdc_response).to receive(:body).and_return(fgdc)
23
24
  allow(fgdc_response).to receive(:status).and_return(200)
24
25
  allow(fgdc_connection).to receive(:get).and_return(fgdc_response)
25
- allow(Faraday).to receive(:new).with(url: 'https://raw.githubusercontent.com/OpenGeoMetadata/edu.harvard/master/217/121/227/77/fgdc.xml').and_return(fgdc_connection)
26
+ allow(Faraday).to receive(:new).with(url: "https://raw.githubusercontent.com/OpenGeoMetadata/edu.harvard/master/217/121/227/77/fgdc.xml").and_return(fgdc_connection)
26
27
 
27
28
  allow(response).to receive(:body).and_return(mods)
28
29
  allow(response).to receive(:status).and_return(200)
29
30
  allow(connection).to receive(:get).and_return(response)
30
- allow(Faraday).to receive(:new).with(url: 'http://purl.stanford.edu/cg357zz0321.mods').and_return(connection)
31
+ allow(Faraday).to receive(:new).with(url: "http://purl.stanford.edu/cg357zz0321.mods").and_return(connection)
31
32
 
32
33
  allow(Faraday).to receive(:new).with(hash_including(url: %r{solr/blacklight-core})).and_call_original
33
34
  end
34
35
 
35
- scenario 'shows up as HTML' do
36
- visit solr_document_path 'harvard-g7064-s2-1834-k3'
37
- expect(page).to have_css 'li.metadata a', text: 'Metadata'
38
- click_link 'Metadata'
36
+ scenario "shows up as HTML" do
37
+ visit solr_document_path "harvard-g7064-s2-1834-k3"
38
+ expect(page).to have_css "li.metadata a", text: "Metadata"
39
+ click_link "Metadata"
39
40
  using_wait_time 15 do
40
- within '.metadata-view' do
41
- expect(page).to have_css '.pill-metadata', text: 'FGDC'
42
- expect(page).to have_css 'dt', text: 'Identification Information'
43
- expect(page).to have_css 'dt', text: 'Metadata Reference Information'
41
+ within ".metadata-view" do
42
+ expect(page).to have_css ".pill-metadata", text: "FGDC"
43
+ expect(page).to have_css "dt", text: "Identification Information"
44
+ expect(page).to have_css "dt", text: "Metadata Reference Information"
44
45
  end
45
46
  end
46
47
  end
47
- context 'when the metadata is in the XML' do
48
- let(:mods) { File.read(Rails.root.join('..', 'spec', 'fixtures', 'mods', 'fb897vt9938.mods')) }
48
+ context "when the metadata is in the XML" do
49
+ let(:mods) { File.read(Rails.root.join("..", "spec", "fixtures", "mods", "fb897vt9938.mods")) }
49
50
  let(:response) { instance_double(Faraday::Response) }
50
51
  let(:connection) { instance_double(Faraday::Connection) }
51
52
 
@@ -53,27 +54,27 @@ feature 'Metadata tools' do
53
54
  allow(response).to receive(:body).and_return(mods)
54
55
  allow(response).to receive(:status).and_return(200)
55
56
  allow(connection).to receive(:get).and_return(response)
56
- allow(Faraday).to receive(:new).with(url: 'http://purl.stanford.edu/fb897vt9938.mods').and_return(connection)
57
+ allow(Faraday).to receive(:new).with(url: "http://purl.stanford.edu/fb897vt9938.mods").and_return(connection)
57
58
  allow(Faraday).to receive(:new).and_call_original
58
59
  end
59
60
 
60
- scenario 'shows up as XML' do
61
- visit solr_document_path 'stanford-cg357zz0321'
62
- expect(page).to have_css 'li.metadata a', text: 'Metadata'
63
- click_link 'Metadata'
61
+ scenario "shows up as XML" do
62
+ visit solr_document_path "stanford-cg357zz0321"
63
+ expect(page).to have_css "li.metadata a", text: "Metadata"
64
+ click_link "Metadata"
64
65
  using_wait_time 15 do
65
- within '.metadata-view' do
66
- expect(page).to have_css '.pill-metadata', text: 'MODS'
67
- expect(page).to have_css '.CodeRay'
66
+ within ".metadata-view" do
67
+ expect(page).to have_css ".pill-metadata", text: "MODS"
68
+ expect(page).to have_css ".CodeRay"
68
69
  end
69
70
  end
70
71
  end
71
72
  end
72
73
  end
73
- feature 'when metadata references are not available' do
74
- scenario 'is not in tools' do
75
- visit solr_document_path 'mit-f6rqs4ucovjk2'
76
- expect(page).not_to have_css 'li.metadata a', text: 'Metadata'
74
+ feature "when metadata references are not available" do
75
+ scenario "is not in tools" do
76
+ visit solr_document_path "mit-f6rqs4ucovjk2"
77
+ expect(page).not_to have_css "li.metadata a", text: "Metadata"
77
78
  end
78
79
  end
79
80
  end
@@ -1,25 +1,26 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Missing metadata', js: true do
5
- scenario 'Yields error free results page for no spatial' do
6
- visit search_catalog_path(q: 'ASTER Global Emissivity')
7
- expect(page).to have_css('#map')
3
+ require "spec_helper"
4
+
5
+ feature "Missing metadata", js: true do
6
+ scenario "Yields error free results page for no spatial" do
7
+ visit search_catalog_path(q: "ASTER Global Emissivity")
8
+ expect(page).to have_css("#map")
8
9
  end
9
- scenario 'Yields error free show page for no wxs_identifier or spatial' do
10
- visit solr_document_path('aster-global-emissivity-dataset-1-kilometer-v003-ag1kmcad20')
11
- expect(page).to have_css('#map')
10
+ scenario "Yields error free show page for no wxs_identifier or spatial" do
11
+ visit solr_document_path("aster-global-emissivity-dataset-1-kilometer-v003-ag1kmcad20")
12
+ expect(page).to have_css("#map")
12
13
  end
13
- scenario 'Yields error free show page for no layer_geom_type_s' do
14
- visit solr_document_path('05d-03-noGeomType')
15
- expect(page).to have_css('#map')
14
+ scenario "Yields error free show page for no layer_geom_type_s" do
15
+ visit solr_document_path("05d-03-noGeomType")
16
+ expect(page).to have_css("#map")
16
17
  end
17
- scenario 'Yields error free show page for no dct_provider_s' do
18
- visit solr_document_path('99-0001-noprovider')
19
- expect(page).to have_css('#map')
18
+ scenario "Yields error free show page for no dct_provider_s" do
19
+ visit solr_document_path("99-0001-noprovider")
20
+ expect(page).to have_css("#map")
20
21
  end
21
- scenario 'Yields error free show page for no locn_geometry' do
22
- visit solr_document_path('05d-p16022coll246-noGeo')
23
- expect(page).to have_css('#map')
22
+ scenario "Yields error free show page for no locn_geometry" do
23
+ visit solr_document_path("05d-p16022coll246-noGeo")
24
+ expect(page).to have_css("#map")
24
25
  end
25
26
  end
@@ -1,15 +1,16 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Multiple downloads' do
5
- feature 'when item has multiple downloads in dct_references_s' do
6
- scenario 'downloads are listed in download card' do
7
- visit solr_document_path 'cugir-007950'
8
- find('#downloads-button').click
9
- within '#downloads-collapse' do
10
- expect(page).to have_link 'Shapefile', href: 'https://cugir-data.s3.amazonaws.com/00/79/50/cugir-007950.zip'
11
- expect(page).to have_link 'PDF', href: 'https://cugir-data.s3.amazonaws.com/00/79/50/agBROO.pdf'
12
- expect(page).to have_link 'KMZ', href: 'https://cugir-data.s3.amazonaws.com/00/79/50/agBROO2011.kmz'
3
+ require "spec_helper"
4
+
5
+ feature "Multiple downloads" do
6
+ feature "when item has multiple downloads in dct_references_s" do
7
+ scenario "downloads are listed in download card" do
8
+ visit solr_document_path "cugir-007950"
9
+ find("#downloads-button").click
10
+ within "#downloads-collapse" do
11
+ expect(page).to have_link "Shapefile", href: "https://cugir-data.s3.amazonaws.com/00/79/50/cugir-007950.zip"
12
+ expect(page).to have_link "PDF", href: "https://cugir-data.s3.amazonaws.com/00/79/50/agBROO.pdf"
13
+ expect(page).to have_link "KMZ", href: "https://cugir-data.s3.amazonaws.com/00/79/50/agBROO2011.kmz"
13
14
  end
14
15
  end
15
16
  end
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Oembed layer' do
5
- scenario 'Should show oembed content and map' do
6
- visit solr_document_path('stanford-dc482zx1528')
7
- expect(page).to have_css '#map'
3
+ require "spec_helper"
4
+
5
+ feature "Oembed layer" do
6
+ scenario "Should show oembed content and map" do
7
+ visit solr_document_path("stanford-dc482zx1528")
8
+ expect(page).to have_css "#map"
8
9
  expect(page).to have_css '[data-protocol="Oembed"]'
9
10
  end
10
11
  end
@@ -1,44 +1,69 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'Display related documents' do
5
- scenario 'Record with dct_source_sm value(s) should have parent(s)' do
6
- visit relations_solr_document_path('nyu_2451_34502')
7
- expect(page).to have_css('.relations .card-header h2', text: 'Source Datasets')
3
+ require "spec_helper"
4
+
5
+ feature "Display related documents" do
6
+ scenario "Record with dct_source_sm value(s) should have parent(s)" do
7
+ visit relations_solr_document_path("nyu_2451_34502")
8
+ expect(page).to have_css(".relations .card-header h2", text: "Source records...")
8
9
  end
9
10
 
10
- scenario 'Record that is pointed to by others should have children' do
11
- visit relations_solr_document_path('nyu_2451_34635')
12
- expect(page).to have_css('.relations .card-header h2', text: 'Derived Datasets')
11
+ scenario "Record that is pointed to by others should have children" do
12
+ visit relations_solr_document_path("nyu_2451_34635")
13
+ expect(page).to have_css(".relations .card-header h2", text: "Derived records...")
13
14
  end
14
15
 
15
- scenario 'Relations should respond to json' do
16
- visit relations_solr_document_path('nyu_2451_34635', format: 'json')
16
+ scenario "Relations should respond to json" do
17
+ visit relations_solr_document_path("nyu_2451_34635", format: "json")
17
18
  response = JSON.parse(page.body)
18
- expect(response['relations']).not_to respond_to('source_ancestors')
19
- expect(response['relations']['source_descendants']['docs'].first[Settings.FIELDS.ID]).to eq 'nyu_2451_34502'
20
- expect(response['current_doc']).to eq 'nyu_2451_34635'
19
+ expect(response["relations"]).not_to respond_to("source_ancestors")
20
+ expect(response["relations"]["source_descendants"]["docs"].first[Settings.FIELDS.ID]).to eq "nyu_2451_34502"
21
+ expect(response["current_doc"]).to eq "nyu_2451_34635"
21
22
  end
22
23
 
23
- scenario 'Record with relations should render widget in catalog#show', js: true do
24
- visit solr_document_path('nyu_2451_34635')
25
- expect(page).to have_css('.card.relations')
26
- expect(page).to have_css('div.card-header', text: 'Derived Datasets')
24
+ scenario "Record with relations should render widget in catalog#show", js: true do
25
+ visit solr_document_path("nyu_2451_34635")
26
+ expect(page).to have_css(".card.relations")
27
+ expect(page).to have_css("div.card-header", text: "Derived records...")
27
28
  end
28
29
 
29
- scenario 'Record without relations should not render widget in catalog#show', js: true do
30
- visit solr_document_path('harvard-g7064-s2-1834-k3')
31
- expect(page).to have_no_css('.card.relations')
30
+ scenario "Record without relations should not render widget in catalog#show", js: true do
31
+ visit solr_document_path("harvard-g7064-s2-1834-k3")
32
+ expect(page).to have_no_css(".card.relations")
32
33
  end
33
34
 
34
- scenario 'Relationship browse link returns relationship-scoped results', js: true do
35
+ scenario "Relationship browse link returns relationship-scoped results", js: true do
35
36
  # Wabash Topo parent record
36
- visit solr_document_path('88cc9b19-3294-4da9-9edd-775c81fb1c59')
37
+ visit solr_document_path("88cc9b19-3294-4da9-9edd-775c81fb1c59")
38
+
39
+ expect(page).to have_content("Has part...")
40
+ expect(page).to have_link("Browse all 4 records...")
41
+ click_link("Browse all 4 records...")
37
42
 
38
- expect(page).to have_content('Has part...')
39
- expect(page).to have_link('Browse all 4 records...')
40
- click_link('Browse all 4 records...')
43
+ expect(page).not_to have_content("No results found for your search")
44
+ end
45
+
46
+ scenario "Record with dct_isPartOf_sm value(s) should link to relations", js: true do
47
+ # All Relationships
48
+ visit solr_document_path("all-relationships")
49
+ expect(page).to have_content("Is part of...")
50
+ end
51
+
52
+ scenario "Record pointed at by a parent with dct_isPartOf_sm value(s) should link back", js: true do
53
+ # The Related Record
54
+ visit solr_document_path("the-related-record")
55
+ expect(page).to have_content("Has part...")
56
+ end
57
+
58
+ scenario "Record with pcdm_memberOf_sm value(s) should link to relations", js: true do
59
+ # All Relationships
60
+ visit solr_document_path("all-relationships")
61
+ expect(page).to have_content("Belongs to collection...")
62
+ end
41
63
 
42
- expect(page).not_to have_content('No results found for your search')
64
+ scenario "Record pointed at by a parent with pcdm_memberOf_sm value(s) should link back", js: true do
65
+ # The Related Record
66
+ visit solr_document_path("the-related-record")
67
+ expect(page).to have_content("Collection records...")
43
68
  end
44
69
  end
@@ -1,14 +1,15 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'saved searches' do
5
- scenario 'list spatial search', js: true do
3
+ require "spec_helper"
4
+
5
+ feature "saved searches" do
6
+ scenario "list spatial search", js: true do
6
7
  visit root_path
7
- within '#map' do
8
- find('.search-control a').click
8
+ within "#map" do
9
+ find(".search-control a").click
9
10
  expect(page.current_url).to match(/bbox=/)
10
11
  end
11
12
  visit blacklight.search_history_path
12
- expect(page).to have_css 'td.query a', text: /#{I18n.t('geoblacklight.bbox_label')}/
13
+ expect(page).to have_css "td.query a", text: /#{I18n.t("geoblacklight.bbox_label")}/
13
14
  end
14
15
  end
@@ -1,13 +1,14 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'search bar' do
5
- scenario 'present on a spatial search' do
6
- visit search_catalog_path(bbox: '25 3 75 35')
7
- expect(page).to have_css '.navbar-search'
3
+ require "spec_helper"
4
+
5
+ feature "search bar" do
6
+ scenario "present on a spatial search" do
7
+ visit search_catalog_path(bbox: "25 3 75 35")
8
+ expect(page).to have_css ".navbar-search"
8
9
  end
9
- scenario 'present on a text search' do
10
- visit search_catalog_path(q: 'test')
11
- expect(page).to have_css '.navbar-search'
10
+ scenario "present on a text search" do
11
+ visit search_catalog_path(q: "test")
12
+ expect(page).to have_css ".navbar-search"
12
13
  end
13
14
  end
@@ -1,24 +1,25 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'spatial search results with an WKT bounding box that crosses the anti-meridian' do
5
- scenario 'when searching within the covered area' do
3
+ require "spec_helper"
4
+
5
+ feature "spatial search results with an WKT bounding box that crosses the anti-meridian" do
6
+ scenario "when searching within the covered area" do
6
7
  # BBox param is in China
7
8
  visit search_catalog_path(
8
- q: 'A new & accurate map of Asia',
9
- bbox: '98.4375 31.765537 117.202148 45.429299'
9
+ q: "A new & accurate map of Asia",
10
+ bbox: "98.4375 31.765537 117.202148 45.429299"
10
11
  )
11
- result_id = page.all('div.documentHeader.row').first['data-layer-id']
12
- expect(result_id).to eq '57f0f116-b64e-4773-8684-96ba09afb549'
12
+ result_id = page.all("div.documentHeader.row").first["data-layer-id"]
13
+ expect(result_id).to eq "57f0f116-b64e-4773-8684-96ba09afb549"
13
14
  end
14
15
 
15
- scenario 'when searching outside the covered area' do
16
+ scenario "when searching outside the covered area" do
16
17
  # BBox param is in Oklahoma
17
18
  visit search_catalog_path(
18
- q: 'A new & accurate map of Asia',
19
- bbox: '-98.717651 34.40691 -96.37207 36.199958'
19
+ q: "A new & accurate map of Asia",
20
+ bbox: "-98.717651 34.40691 -96.37207 36.199958"
20
21
  )
21
- results = page.all('div.documentHeader.row')
22
+ results = page.all("div.documentHeader.row")
22
23
  expect(results.count).to eq 0
23
24
  end
24
25
  end
@@ -1,16 +1,17 @@
1
1
  # frozen_string_literal: true
2
- require 'spec_helper'
3
2
 
4
- feature 'search results display document iconography' do
5
- scenario 'when viewing result row' do
3
+ require "spec_helper"
4
+
5
+ feature "search results display document iconography" do
6
+ scenario "when viewing result row" do
6
7
  # Search returns fixture stanford-cg357zz0321
7
8
  visit search_catalog_path(
8
- search_field: 'all_fields',
9
- q: 'stanford-cg357zz0321'
9
+ search_field: "all_fields",
10
+ q: "stanford-cg357zz0321"
10
11
  )
11
- first_result = page.all('span.status-icons > span')
12
- expect(first_result[0][:class]).to include 'blacklight-icon-dataset'
13
- expect(first_result[1][:class]).to include 'blacklight-icon-stanford'
14
- expect(first_result[2][:class]).to include 'blacklight-icon-restricted'
12
+ first_result = page.all("span.status-icons > span")
13
+ expect(first_result[0][:class]).to include "blacklight-icon-dataset"
14
+ expect(first_result[1][:class]).to include "blacklight-icon-stanford"
15
+ expect(first_result[2][:class]).to include "blacklight-icon-restricted"
15
16
  end
16
17
  end