geoblacklight 4.0.0 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +21 -6
- data/.solr_wrapper +1 -0
- data/.standard.yml +1 -0
- data/Gemfile +13 -11
- data/README.md +1 -1
- data/Rakefile +42 -50
- data/app/assets/images/blacklight/american-geographical-society-library-uwm-libraries.svg +26 -0
- data/app/assets/images/blacklight/arizona.svg +4 -0
- data/app/assets/images/blacklight/circle-info-solid.svg +1 -0
- data/app/assets/images/blacklight/fire-solid.svg +1 -0
- data/app/assets/images/blacklight/lightbulb-solid.svg +1 -0
- data/app/assets/images/blacklight/nebraska.svg +4 -0
- data/app/assets/images/blacklight/rutgers.svg +5 -0
- data/app/assets/images/blacklight/triangle-exclamation-solid.svg +1 -0
- data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +8 -0
- data/app/components/geoblacklight/display_note_component.html.erb +1 -0
- data/app/components/geoblacklight/display_note_component.rb +47 -0
- data/app/components/geoblacklight/icon_facet_item_component.rb +2 -2
- data/app/controllers/download_controller.rb +36 -37
- data/app/controllers/relation_controller.rb +1 -0
- data/app/controllers/wms_controller.rb +1 -0
- data/app/helpers/arcgis_helper.rb +2 -1
- data/app/helpers/blacklight_helper.rb +2 -1
- data/app/helpers/carto_helper.rb +3 -2
- data/app/helpers/geoblacklight/geoblacklight_helper_behavior.rb +2 -1
- data/app/helpers/geoblacklight_helper.rb +44 -36
- data/app/models/concerns/geoblacklight/bbox_filter_query.rb +1 -1
- data/app/models/concerns/geoblacklight/solr_document/arcgis.rb +1 -0
- data/app/models/concerns/geoblacklight/solr_document/carto.rb +1 -0
- data/app/models/concerns/geoblacklight/solr_document/citation.rb +3 -2
- data/app/models/concerns/geoblacklight/solr_document/finder.rb +1 -0
- data/app/models/concerns/geoblacklight/solr_document/inspection.rb +1 -0
- data/app/models/concerns/geoblacklight/solr_document.rb +17 -9
- data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +2 -1
- data/app/presenters/geoblacklight/document_presenter.rb +3 -2
- data/app/views/catalog/_show_default_display_note.html.erb +7 -0
- data/app/views/catalog/_show_sidebar.html.erb +1 -0
- data/app/views/catalog/_show_sidebar_static_map.html.erb +10 -0
- data/app/views/relation/index.json.jbuilder +1 -1
- data/config/initializers/new_gbl_settings_defaults_4.1.yml +104 -0
- data/config/initializers/rails_config.rb +5 -1
- data/config/locales/geoblacklight.en.yml +18 -10
- data/geoblacklight.gemspec +36 -40
- data/lib/generators/geoblacklight/assets_generator.rb +15 -15
- data/lib/generators/geoblacklight/install_generator.rb +24 -23
- data/lib/generators/geoblacklight/templates/catalog_controller.rb +66 -71
- data/lib/generators/geoblacklight/templates/settings.yml +74 -22
- data/lib/geoblacklight/bounding_box.rb +1 -0
- data/lib/geoblacklight/constants.rb +26 -25
- data/lib/geoblacklight/download/geojson_download.rb +10 -9
- data/lib/geoblacklight/download/geotiff_download.rb +6 -5
- data/lib/geoblacklight/download/hgl_download.rb +4 -3
- data/lib/geoblacklight/download/kmz_download.rb +11 -10
- data/lib/geoblacklight/download/shapefile_download.rb +10 -9
- data/lib/geoblacklight/download.rb +12 -11
- data/lib/geoblacklight/engine.rb +10 -9
- data/lib/geoblacklight/exceptions.rb +3 -0
- data/lib/geoblacklight/faraday_middleware/follow_redirects.rb +12 -11
- data/lib/geoblacklight/geometry.rb +6 -5
- data/lib/geoblacklight/item_viewer.rb +4 -3
- data/lib/geoblacklight/metadata/base.rb +4 -3
- data/lib/geoblacklight/metadata/fgdc.rb +1 -0
- data/lib/geoblacklight/metadata/html.rb +5 -4
- data/lib/geoblacklight/metadata/iso19139.rb +1 -0
- data/lib/geoblacklight/metadata.rb +1 -0
- data/lib/geoblacklight/metadata_transformer/base.rb +5 -4
- data/lib/geoblacklight/metadata_transformer/fgdc.rb +1 -0
- data/lib/geoblacklight/metadata_transformer/iso19139.rb +1 -0
- data/lib/geoblacklight/metadata_transformer.rb +6 -2
- data/lib/geoblacklight/reference.rb +3 -2
- data/lib/geoblacklight/references.rb +11 -6
- data/lib/geoblacklight/relation/ancestors.rb +4 -3
- data/lib/geoblacklight/relation/descendants.rb +4 -3
- data/lib/geoblacklight/relation/relation_response.rb +3 -2
- data/lib/geoblacklight/routes/downloadable.rb +3 -2
- data/lib/geoblacklight/routes/exportable.rb +4 -3
- data/lib/geoblacklight/routes/wms.rb +2 -1
- data/lib/geoblacklight/routes.rb +4 -3
- data/lib/geoblacklight/version.rb +2 -1
- data/lib/geoblacklight/view_helper_override.rb +3 -2
- data/lib/geoblacklight/wms_layer/feature_info_response.rb +5 -4
- data/lib/geoblacklight/wms_layer.rb +4 -3
- data/lib/geoblacklight.rb +32 -31
- data/lib/tasks/geoblacklight.rake +45 -44
- data/schema/geoblacklight-schema-aardvark.json +6 -0
- data/spec/components/geoblacklight/display_note_component_spec.rb +27 -0
- data/spec/components/geoblacklight/homepage_feature_facet_component_spec.rb +11 -10
- data/spec/components/geoblacklight/icon_facet_item_component_spec.rb +8 -7
- data/spec/config/initializers/rails_config_spec.rb +10 -9
- data/spec/controllers/catalog_controller_spec.rb +27 -26
- data/spec/controllers/download_controller_spec.rb +50 -49
- data/spec/controllers/relation_controller_spec.rb +5 -4
- data/spec/controllers/wms_controller_spec.rb +10 -9
- data/spec/factories/user.rb +3 -2
- data/spec/features/bookmarks_spec.rb +7 -6
- data/spec/features/configurable_basemap_spec.rb +12 -11
- data/spec/features/data_dictionary_download_spec.rb +11 -10
- data/spec/features/download_layer_spec.rb +64 -63
- data/spec/features/empty_search_spec.rb +6 -5
- data/spec/features/esri_viewer_spec.rb +33 -32
- data/spec/features/exports_spec.rb +18 -17
- data/spec/features/full_screen_controll_spec.rb +8 -8
- data/spec/features/help_text_spec.rb +6 -5
- data/spec/features/home_page_spec.rb +30 -29
- data/spec/features/iiif_viewer_spec.rb +6 -5
- data/spec/features/index_map_spec.rb +17 -16
- data/spec/features/layer_inspection_spec.rb +8 -7
- data/spec/features/layer_opacity_spec.rb +15 -14
- data/spec/features/layer_preview_spec.rb +11 -10
- data/spec/features/layer_with_no_references_spec.rb +5 -4
- data/spec/features/linkified_attribute_table_spec.rb +8 -7
- data/spec/features/metadata_panel_spec.rb +32 -31
- data/spec/features/missing_metadata_spec.rb +18 -17
- data/spec/features/multiple_downloads_spec.rb +11 -10
- data/spec/features/oembed_spec.rb +6 -5
- data/spec/features/relations_spec.rb +51 -26
- data/spec/features/saved_searches_spec.rb +7 -6
- data/spec/features/search_bar_spec.rb +9 -8
- data/spec/features/search_results_complex_geometry_spec.rb +12 -11
- data/spec/features/search_results_icons_spec.rb +10 -9
- data/spec/features/search_results_map_spec.rb +21 -20
- data/spec/features/search_results_overlap_ratio_spec.rb +17 -16
- data/spec/features/search_spec.rb +19 -18
- data/spec/features/show_page_download_spec.rb +15 -14
- data/spec/features/show_page_metadata_spec.rb +9 -8
- data/spec/features/show_page_sidebar_static_map_spec.rb +21 -0
- data/spec/features/sms_spec.rb +12 -11
- data/spec/features/split_view.html.erb_spec.rb +56 -55
- data/spec/features/suppressed_records_spec.rb +10 -9
- data/spec/features/tilejson_spec.rb +9 -8
- data/spec/features/tms_spec.rb +6 -5
- data/spec/features/web_services_modal_spec.rb +37 -36
- data/spec/features/wmts_spec.rb +16 -15
- data/spec/features/xyz_spec.rb +6 -5
- data/spec/fixtures/solr_documents/actual-papermap1.json +1 -1
- data/spec/fixtures/solr_documents/actual-point1.json +1 -1
- data/spec/fixtures/solr_documents/actual-polygon1.json +1 -1
- data/spec/fixtures/solr_documents/actual-raster1.json +1 -1
- data/spec/fixtures/solr_documents/baruch_ancestor1.json +1 -1
- data/spec/fixtures/solr_documents/baruch_ancestor2.json +1 -1
- data/spec/fixtures/solr_documents/baruch_documentation_download.json +2 -2
- data/spec/fixtures/solr_documents/cornell_html_metadata.json +1 -1
- data/spec/fixtures/solr_documents/display-note.json +52 -0
- data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +1 -1
- data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +1 -1
- data/spec/fixtures/solr_documents/esri-feature-layer.json +1 -1
- data/spec/fixtures/solr_documents/esri-image-map-layer.json +1 -1
- data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +1 -1
- data/spec/fixtures/solr_documents/esri-wms-layer.json +1 -1
- data/spec/fixtures/solr_documents/harvard_raster.json +1 -1
- data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +1 -1
- data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +1 -1
- data/spec/fixtures/solr_documents/index-map-polygon.json +1 -1
- data/spec/fixtures/solr_documents/index-map-stanford.json +1 -1
- data/spec/fixtures/solr_documents/index_map_point.json +1 -1
- data/spec/fixtures/solr_documents/princeton-parent.json +1 -1
- data/spec/fixtures/solr_documents/public_direct_download.json +1 -1
- data/spec/fixtures/solr_documents/public_iiif_princeton.json +1 -1
- data/spec/fixtures/solr_documents/restricted-line.json +1 -1
- data/spec/fixtures/solr_documents/tilejson.json +2 -2
- data/spec/fixtures/solr_documents/umn_metro_result1.json +2 -2
- data/spec/fixtures/solr_documents/umn_state_result1.json +1 -1
- data/spec/fixtures/solr_documents/umn_state_result2.json +1 -1
- data/spec/fixtures/solr_documents/uva_slug_colon.json +1 -1
- data/spec/fixtures/solr_documents/wmts-multiple.json +1 -1
- data/spec/fixtures/solr_documents/wmts-single-layer.json +6 -6
- data/spec/fixtures/solr_documents/xyz.json +3 -3
- data/spec/helpers/arcgis_helper_spec.rb +8 -7
- data/spec/helpers/carto_helper_spec.rb +6 -5
- data/spec/helpers/geoblacklight/geoblacklight_helper_behavior_spec.rb +10 -15
- data/spec/helpers/geoblacklight_helper_spec.rb +139 -138
- data/spec/lib/geoblacklight/bounding_box_spec.rb +14 -13
- data/spec/lib/geoblacklight/document_presenter_spec.rb +26 -25
- data/spec/lib/geoblacklight/download/geojson_download_spec.rb +8 -7
- data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +8 -7
- data/spec/lib/geoblacklight/download/hgl_download_spec.rb +16 -15
- data/spec/lib/geoblacklight/download/kmz_download_spec.rb +9 -8
- data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +8 -7
- data/spec/lib/geoblacklight/download_spec.rb +61 -60
- data/spec/lib/geoblacklight/geometry_spec.rb +29 -28
- data/spec/lib/geoblacklight/item_viewer_spec.rb +25 -24
- data/spec/lib/geoblacklight/metadata/base_spec.rb +44 -43
- data/spec/lib/geoblacklight/metadata/html_spec.rb +7 -6
- data/spec/lib/geoblacklight/metadata_spec.rb +15 -14
- data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +13 -12
- data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +8 -7
- data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +8 -7
- data/spec/lib/geoblacklight/metadata_transformer_spec.rb +15 -14
- data/spec/lib/geoblacklight/reference_spec.rb +28 -27
- data/spec/lib/geoblacklight/references_spec.rb +89 -76
- data/spec/lib/geoblacklight/relation/ancestors_spec.rb +17 -16
- data/spec/lib/geoblacklight/relation/descendants_spec.rb +17 -16
- data/spec/lib/geoblacklight/relation/relation_response_spec.rb +29 -28
- data/spec/lib/geoblacklight/view_helper_override_spec.rb +14 -13
- data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +19 -18
- data/spec/lib/geoblacklight/wms_layer_spec.rb +31 -30
- data/spec/models/concerns/geoblacklight/bbox_filter_field_spec.rb +31 -31
- data/spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb +32 -32
- data/spec/models/concerns/geoblacklight/solr_document/carto_spec.rb +16 -15
- data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +7 -6
- data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +16 -17
- data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +7 -6
- data/spec/models/concerns/geoblacklight/solr_document_spec.rb +121 -107
- data/spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb +8 -7
- data/spec/presenters/geoblacklight/bbox_item_presenter_spec.rb +10 -10
- data/spec/routing/catalog_routing_spec.rb +4 -3
- data/spec/spec_helper.rb +34 -33
- data/spec/support/backport_test_helpers.rb +6 -5
- data/spec/support/features/session_helpers.rb +8 -7
- data/spec/support/features.rb +2 -1
- data/spec/support/fixtures.rb +2 -1
- data/spec/tasks/geoblacklight_spec.rb +10 -9
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +16 -15
- data/spec/views/catalog/_document_split.html.erb_spec.rb +3 -2
- data/spec/views/catalog/_index_split.html.erb_spec.rb +3 -2
- data/spec/views/catalog/_results_pagination.html.erb_spec.rb +5 -4
- data/spec/views/catalog/_show_downloads.html.erb_spec.rb +11 -10
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +13 -12
- data/template.rb +9 -8
- metadata +29 -212
- data/.gitmodules +0 -0
- data/.rubocop.yml +0 -111
- data/.rubocop_todo.yml +0 -437
- data/config/initializers/new_gbl_settings_defaults_3_4.yml +0 -6
@@ -1,7 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
2
|
|
4
|
-
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
feature "Download layer" do
|
5
6
|
let(:shapefile_download) { instance_double(Geoblacklight::ShapefileDownload) }
|
6
7
|
let(:kmz_download) { instance_double(Geoblacklight::KmzDownload) }
|
7
8
|
|
@@ -10,102 +11,102 @@ feature 'Download layer' do
|
|
10
11
|
allow(Geoblacklight::KmzDownload).to receive(:new).and_return(kmz_download)
|
11
12
|
end
|
12
13
|
|
13
|
-
scenario
|
14
|
-
expect(shapefile_download).to receive(:get).and_return(
|
15
|
-
visit solr_document_path(
|
16
|
-
find(
|
17
|
-
find('a[data-download-type="shapefile"]', text:
|
14
|
+
scenario "clicking initial shapefile download button should trigger download", js: true do
|
15
|
+
expect(shapefile_download).to receive(:get).and_return("mit-f6rqs4ucovjk2-shapefile.zip")
|
16
|
+
visit solr_document_path("mit-f6rqs4ucovjk2")
|
17
|
+
find("#downloads-button").click
|
18
|
+
find('a[data-download-type="shapefile"]', text: "Export Shapefile").click
|
18
19
|
expect(page).to have_css(
|
19
20
|
'a[href="/download/file/mit-f6rqs4ucovjk2-shapefile.zip"]',
|
20
|
-
text:
|
21
|
+
text: "Your file mit-f6rqs4ucovjk2-shapefile.zip is ready for download"
|
21
22
|
)
|
22
23
|
end
|
23
24
|
|
24
|
-
scenario
|
25
|
-
expect(shapefile_download).to receive(:get).and_raise(Geoblacklight::Exceptions::ExternalDownloadFailed.new(message:
|
26
|
-
visit solr_document_path(
|
27
|
-
find(
|
28
|
-
find('#downloads-collapse a[data-download-type="shapefile"]', text:
|
29
|
-
expect(page).to have_css
|
30
|
-
expect(page).to have_css
|
25
|
+
scenario "failed download should return message with link to layer", js: true do
|
26
|
+
expect(shapefile_download).to receive(:get).and_raise(Geoblacklight::Exceptions::ExternalDownloadFailed.new(message: "Failed", url: "http://www.example.com/failed"))
|
27
|
+
visit solr_document_path("mit-f6rqs4ucovjk2")
|
28
|
+
find("#downloads-button").click
|
29
|
+
find('#downloads-collapse a[data-download-type="shapefile"]', text: "Export Shapefile").click
|
30
|
+
expect(page).to have_css "div.alert.alert-danger", text: "Sorry, the requested file could not be downloaded. Try downloading it directly from:"
|
31
|
+
expect(page).to have_css "a", text: "http://www.example.com/failed"
|
31
32
|
end
|
32
33
|
|
33
|
-
scenario
|
34
|
-
expect(kmz_download).to receive(:get).and_return(
|
35
|
-
visit solr_document_path(
|
36
|
-
find(
|
37
|
-
find('#downloads-collapse a[data-download-type="kmz"]', text:
|
34
|
+
scenario "clicking kmz download button should trigger download", js: true do
|
35
|
+
expect(kmz_download).to receive(:get).and_return("mit-f6rqs4ucovjk2-kmz.kmz")
|
36
|
+
visit solr_document_path("mit-f6rqs4ucovjk2")
|
37
|
+
find("#downloads-button").click
|
38
|
+
find('#downloads-collapse a[data-download-type="kmz"]', text: "Export KMZ").click
|
38
39
|
expect(page).to have_css(
|
39
40
|
'a[href="/download/file/mit-f6rqs4ucovjk2-kmz.kmz"]',
|
40
|
-
text:
|
41
|
+
text: "Your file mit-f6rqs4ucovjk2-kmz.kmz is ready for download"
|
41
42
|
)
|
42
43
|
end
|
43
44
|
|
44
|
-
scenario
|
45
|
-
visit solr_document_path(
|
46
|
-
find(
|
47
|
-
expect(page).to have_css(
|
45
|
+
scenario "jpg download option should be present under toggle" do
|
46
|
+
visit solr_document_path("princeton-02870w62c")
|
47
|
+
find("#downloads-button").click
|
48
|
+
expect(page).to have_css("#downloads-collapse a", text: "Original JPG")
|
48
49
|
end
|
49
50
|
|
50
|
-
scenario
|
51
|
-
visit solr_document_path(
|
52
|
-
find(
|
53
|
-
expect(page).to have_css("#downloads-collapse a[href='https://iiif-cloud.princeton.edu/iiif/2/6c%2F52%2F12%2F6c5212e81bc845f59bb1cdc740a88bad%2Fintermediate_file/full/full/0/default.jpg']", text:
|
51
|
+
scenario "clicking jpg download button should redirect to external image" do
|
52
|
+
visit solr_document_path("princeton-02870w62c")
|
53
|
+
find("#downloads-button").click
|
54
|
+
expect(page).to have_css("#downloads-collapse a[href='https://iiif-cloud.princeton.edu/iiif/2/6c%2F52%2F12%2F6c5212e81bc845f59bb1cdc740a88bad%2Fintermediate_file/full/full/0/default.jpg']", text: "Original JPG")
|
54
55
|
end
|
55
56
|
|
56
|
-
scenario
|
57
|
-
visit solr_document_path(
|
58
|
-
find(
|
59
|
-
expect(page).to have_css('#downloads-collapse a[data-download-type="shapefile"]', text:
|
60
|
-
expect(page).to have_css('#downloads-collapse a[data-download-type="kmz"]', text:
|
57
|
+
scenario "options should be available under toggle" do
|
58
|
+
visit solr_document_path("mit-f6rqs4ucovjk2")
|
59
|
+
find("#downloads-button").click
|
60
|
+
expect(page).to have_css('#downloads-collapse a[data-download-type="shapefile"]', text: "Export Shapefile")
|
61
|
+
expect(page).to have_css('#downloads-collapse a[data-download-type="kmz"]', text: "Export KMZ")
|
61
62
|
end
|
62
63
|
|
63
|
-
scenario
|
64
|
-
visit solr_document_path(
|
65
|
-
expect(page).to have_css
|
66
|
-
expect(page).not_to have_css
|
64
|
+
scenario "restricted layer should not have download available to non logged in user" do
|
65
|
+
visit solr_document_path("stanford-cg357zz0321")
|
66
|
+
expect(page).to have_css "a", text: "Login to View and Download"
|
67
|
+
expect(page).not_to have_css "button", text: "Download"
|
67
68
|
end
|
68
69
|
|
69
|
-
scenario
|
70
|
+
scenario "restricted layer should have download available to logged in user" do
|
70
71
|
sign_in
|
71
|
-
visit solr_document_path(
|
72
|
-
expect(page).not_to have_css
|
73
|
-
expect(page).to have_css
|
72
|
+
visit solr_document_path("stanford-cg357zz0321")
|
73
|
+
expect(page).not_to have_css "a", text: "Login to view and download"
|
74
|
+
expect(page).to have_css "button", text: "Download"
|
74
75
|
end
|
75
76
|
|
76
|
-
scenario
|
77
|
+
scenario "layer with direct download and wms/wfs should include all download types" do
|
77
78
|
sign_in
|
78
|
-
visit solr_document_path(
|
79
|
-
find(
|
80
|
-
expect(page).to have_css(
|
81
|
-
expect(page).to have_css(
|
79
|
+
visit solr_document_path("stanford-cg357zz0321")
|
80
|
+
find("#downloads-button").click
|
81
|
+
expect(page).to have_css("#downloads-collapse a", text: "Original")
|
82
|
+
expect(page).to have_css("#downloads-collapse a", text: "Export")
|
82
83
|
end
|
83
84
|
|
84
|
-
scenario
|
85
|
-
visit solr_document_path(
|
86
|
-
find(
|
87
|
-
find('a[data-download-type="harvard-hgl"]', text:
|
88
|
-
expect(page).to have_css(
|
85
|
+
scenario "clicking download GeoTIFF for Harvard layer should show email form", js: true do
|
86
|
+
visit solr_document_path("harvard-g7064-s2-1834-k3")
|
87
|
+
find("#downloads-button").click
|
88
|
+
find('a[data-download-type="harvard-hgl"]', text: "GeoTIFF").click
|
89
|
+
expect(page).to have_css("#hglRequest")
|
89
90
|
end
|
90
91
|
|
91
|
-
context
|
92
|
+
context "with a successful request to the server" do
|
92
93
|
let(:hgl_download) { instance_double(Geoblacklight::HglDownload) }
|
93
94
|
|
94
|
-
xscenario
|
95
|
+
xscenario "submitting email form should trigger HGL request", js: true do
|
95
96
|
# There are currently difficulties with testing the HGL downloader
|
96
|
-
visit solr_document_path(
|
97
|
-
find(
|
98
|
-
find('a[data-download-type="harvard-hgl"]', text:
|
97
|
+
visit solr_document_path("harvard-g7064-s2-1834-k3")
|
98
|
+
find("#downloads-button").click
|
99
|
+
find('a[data-download-type="harvard-hgl"]', text: "Original GeoTIFF").click
|
99
100
|
|
100
101
|
allow_any_instance_of(Geoblacklight::HglDownload).to receive(:new).and_return(hgl_download)
|
101
|
-
allow(hgl_download).to receive(:get).and_return(
|
102
|
+
allow(hgl_download).to receive(:get).and_return("success")
|
102
103
|
|
103
|
-
within
|
104
|
-
fill_in(
|
105
|
-
click_button(
|
104
|
+
within "#hglRequest" do
|
105
|
+
fill_in("Email", with: "foo@example.com")
|
106
|
+
click_button("Request")
|
106
107
|
end
|
107
|
-
expect(page).to have_css(
|
108
|
-
expect(page).to have_content(
|
108
|
+
expect(page).to have_css(".alert-success")
|
109
|
+
expect(page).to have_content("You should receive an email when your download is ready")
|
109
110
|
end
|
110
111
|
end
|
111
112
|
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
2
|
|
4
|
-
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
feature "Empty search" do
|
5
6
|
before do
|
6
7
|
visit root_path
|
7
8
|
end
|
8
|
-
scenario
|
9
|
-
click_button
|
10
|
-
expect(page).to have_css
|
9
|
+
scenario "Entering empty search returns results page" do
|
10
|
+
click_button "search"
|
11
|
+
expect(page).to have_css "#documents"
|
11
12
|
end
|
12
13
|
end
|
@@ -1,42 +1,43 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
feature "feature_layer reference", js: true do
|
6
|
+
scenario "displays image map layer" do
|
7
|
+
skip "spec depend on potentially flaky external services"
|
8
|
+
visit solr_document_path "32653ed6-8d83-4692-8a06-bf13ffe2c018"
|
9
|
+
expect(page).to have_css ".leaflet-control-zoom", visible: true
|
10
|
+
expect(page).to have_css "img.leaflet-image-layer", visible: true
|
10
11
|
end
|
11
|
-
scenario
|
12
|
-
skip
|
13
|
-
visit solr_document_path
|
14
|
-
expect(page).to have_css
|
15
|
-
expect(page).to have_css
|
12
|
+
scenario "displays dynamic layer (all layers)" do
|
13
|
+
skip "spec depend on potentially flaky external services"
|
14
|
+
visit solr_document_path "90f14ff4-1359-4beb-b931-5cb41d20ab90"
|
15
|
+
expect(page).to have_css ".leaflet-control-zoom", visible: true
|
16
|
+
expect(page).to have_css "img.leaflet-image-layer", visible: true
|
16
17
|
end
|
17
|
-
scenario
|
18
|
-
skip
|
19
|
-
visit solr_document_path
|
20
|
-
expect(page).to have_css
|
21
|
-
expect(page).to have_css
|
18
|
+
scenario "displays dynamic layer (single layer)" do
|
19
|
+
skip "spec depend on potentially flaky external services"
|
20
|
+
visit solr_document_path "4669301e-b4b2-4c8b-bf40-01b968a2865b"
|
21
|
+
expect(page).to have_css ".leaflet-control-zoom", visible: true
|
22
|
+
expect(page).to have_css "img.leaflet-image-layer", visible: true
|
22
23
|
end
|
23
|
-
scenario
|
24
|
-
pending
|
25
|
-
visit solr_document_path
|
26
|
-
expect(page).to have_css
|
27
|
-
expect(Nokogiri::HTML.parse(page.body).css(
|
24
|
+
scenario "displays feature layer" do
|
25
|
+
pending "cannot currently test for svg feature"
|
26
|
+
visit solr_document_path "f406332e63eb4478a9560ad86ae90327_18"
|
27
|
+
expect(page).to have_css ".leaflet-control-zoom", visible: true
|
28
|
+
expect(Nokogiri::HTML.parse(page.body).css("g").length).to eq 23
|
28
29
|
fail
|
29
30
|
end
|
30
|
-
scenario
|
31
|
-
skip
|
32
|
-
visit solr_document_path
|
33
|
-
expect(page).to have_css
|
34
|
-
expect(page).to have_css
|
31
|
+
scenario "displays tiled map layer" do
|
32
|
+
skip "spec depend on potentially flaky external services"
|
33
|
+
visit solr_document_path "nyu-test-soil-survey-map"
|
34
|
+
expect(page).to have_css ".leaflet-control-zoom", visible: true
|
35
|
+
expect(page).to have_css "img.leaflet-tile.leaflet-tile-loaded", visible: true
|
35
36
|
end
|
36
|
-
scenario
|
37
|
-
skip
|
38
|
-
visit solr_document_path
|
39
|
-
expect(page).to have_css
|
40
|
-
expect(page).to have_css
|
37
|
+
scenario "displays Esri WMS layer" do
|
38
|
+
skip "spec depend on potentially flaky external services"
|
39
|
+
visit solr_document_path "purdue-urn-f082acb1-b01e-4a08-9126-fd62a23fd9aa"
|
40
|
+
expect(page).to have_css ".leaflet-control-zoom", visible: true
|
41
|
+
expect(page).to have_css "img.leaflet-tile.leaflet-tile-loaded", visible: true
|
41
42
|
end
|
42
43
|
end
|
@@ -1,28 +1,29 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
feature "Export features" do
|
6
|
+
feature "when item is public and wfs is available" do
|
7
|
+
feature "Open in Carto" do
|
8
|
+
scenario "shows up in tools" do
|
9
|
+
visit solr_document_path "tufts-cambridgegrid100-04"
|
10
|
+
expect(page).to have_css "li.carto a", text: "Open in Carto"
|
11
|
+
click_link "Open in Carto"
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
14
|
-
feature
|
15
|
-
feature
|
16
|
-
scenario
|
17
|
-
visit solr_document_path
|
18
|
-
expect(page).to have_css
|
15
|
+
feature "when esri web services are available" do
|
16
|
+
feature "Open in ArcGIS Online" do
|
17
|
+
scenario "shows up in tools" do
|
18
|
+
visit solr_document_path "90f14ff4-1359-4beb-b931-5cb41d20ab90"
|
19
|
+
expect(page).to have_css "li.arcgis a", text: "Open in ArcGIS Online"
|
19
20
|
end
|
20
21
|
end
|
21
22
|
end
|
22
|
-
feature
|
23
|
-
scenario
|
24
|
-
visit solr_document_path
|
25
|
-
expect(page).not_to have_css
|
23
|
+
feature "when restricted or no wfs" do
|
24
|
+
scenario "is not in tools" do
|
25
|
+
visit solr_document_path "princeton-02870w62c"
|
26
|
+
expect(page).not_to have_css "li.carto a", text: "Open in Carto"
|
26
27
|
end
|
27
28
|
end
|
28
29
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "spec_helper"
|
4
4
|
|
5
|
-
feature
|
6
|
-
scenario
|
7
|
-
visit solr_document_path(
|
8
|
-
expect(page).to have_css(
|
5
|
+
feature "Leaflet fullscreen control", js: true do
|
6
|
+
scenario "IIIF layer should have full screen control" do
|
7
|
+
visit solr_document_path("princeton-sx61dn82p")
|
8
|
+
expect(page).to have_css(".leaflet-control-fullscreen-button")
|
9
9
|
end
|
10
10
|
|
11
|
-
scenario
|
12
|
-
visit solr_document_path(
|
13
|
-
expect(page).to have_css(
|
11
|
+
scenario "WMS layer should have full screen control" do
|
12
|
+
visit solr_document_path("stanford-cz128vq0535")
|
13
|
+
expect(page).to have_css(".leaflet-control-fullscreen-button")
|
14
14
|
end
|
15
15
|
end
|
@@ -1,9 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
feature "Help Text" do
|
6
|
+
scenario "Displays help text entry" do
|
7
|
+
visit "/catalog/stanford-cg357zz0321"
|
8
|
+
expect(page).to have_css ".help-text", count: 1
|
8
9
|
end
|
9
10
|
end
|
@@ -1,46 +1,47 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
2
|
|
4
|
-
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
feature "Home page", js: true do # use js: true for tests which require js, but it slows things down
|
5
6
|
before do
|
6
7
|
visit root_path
|
7
8
|
end
|
8
|
-
scenario
|
9
|
-
expect(page).to have_css
|
10
|
-
expect(page).to have_css
|
9
|
+
scenario "navbar" do
|
10
|
+
expect(page).to have_css "#bookmarks_nav"
|
11
|
+
expect(page).to have_css "a", text: "History"
|
11
12
|
end
|
12
|
-
scenario
|
13
|
-
expect(page).not_to have_css
|
14
|
-
within
|
15
|
-
expect(page).to have_css
|
16
|
-
expect(page).to have_css
|
17
|
-
expect(page).to have_css
|
13
|
+
scenario "search bar" do
|
14
|
+
expect(page).not_to have_css "#search-navbar"
|
15
|
+
within ".jumbotron" do
|
16
|
+
expect(page).to have_css "h2", text: "Explore and discover..."
|
17
|
+
expect(page).to have_css "h3", text: "Find the maps and data you need"
|
18
|
+
expect(page).to have_css "form.search-query-form"
|
18
19
|
end
|
19
20
|
end
|
20
|
-
scenario
|
21
|
-
expect(page).to have_css
|
22
|
-
expect(page).to have_css
|
23
|
-
expect(page).to have_css
|
24
|
-
click_link
|
25
|
-
expect(page).to have_css
|
26
|
-
expect(page).to have_css
|
21
|
+
scenario "find by category" do
|
22
|
+
expect(page).to have_css ".category-block", count: 4
|
23
|
+
expect(page).to have_css ".home-facet-link", count: 36
|
24
|
+
expect(page).to have_css "a.more_facets_link", count: 4
|
25
|
+
click_link "Counties"
|
26
|
+
expect(page).to have_css ".filter-name", text: "Subject"
|
27
|
+
expect(page).to have_css ".filter-value", text: "Counties"
|
27
28
|
end
|
28
|
-
scenario
|
29
|
-
within
|
30
|
-
expect(page).to have_css(
|
31
|
-
expect(page).to have_css(
|
29
|
+
scenario "map should be visible" do
|
30
|
+
within "#main-container" do
|
31
|
+
expect(page).to have_css("#map")
|
32
|
+
expect(page).to have_css("img.leaflet-tile", minimum: 3)
|
32
33
|
end
|
33
34
|
end
|
34
|
-
scenario
|
35
|
-
within
|
36
|
-
find(
|
35
|
+
scenario "clicking map search should create a spatial search" do
|
36
|
+
within "#map" do
|
37
|
+
find(".search-control a").click
|
37
38
|
expect(page.current_url).to match(/bbox=/)
|
38
39
|
end
|
39
|
-
expect(page).to have_css
|
40
|
+
expect(page).to have_css "#documents"
|
40
41
|
end
|
41
|
-
scenario
|
42
|
-
click_link
|
43
|
-
results = page.all(:css,
|
42
|
+
scenario "can search by placename" do
|
43
|
+
click_link "New York, New York"
|
44
|
+
results = page.all(:css, "article.document")
|
44
45
|
expect(results.count).to equal(4)
|
45
46
|
end
|
46
47
|
end
|
@@ -1,9 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
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
|
-
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
feature "Index map" do
|
5
6
|
# Colors
|
6
|
-
default_color =
|
7
|
-
selected_color =
|
8
|
-
scenario
|
9
|
-
visit solr_document_path(
|
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
|
12
|
-
within
|
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(
|
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(
|
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
|
21
|
-
visit solr_document_path(
|
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
|
24
|
-
within
|
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(
|
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(
|
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
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
expect(page).
|
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("mit-f6rqs4ucovjk2")
|
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
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
12
|
-
skip
|
13
|
-
visit solr_document_path(
|
14
|
-
expect(page).to have_css(
|
15
|
-
expect(page.find(
|
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
|
19
|
-
visit solr_document_path(
|
20
|
-
expect(page).not_to have_css(
|
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
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
13
|
-
visit solr_document_path(
|
14
|
-
within
|
15
|
-
expect(page).to have_css(
|
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
|
-
|
5
|
-
|
6
|
-
|
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
|