commonwealth-vlr-engine 0.0.4 → 0.0.7

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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -1
  3. data/app/assets/images/commonwealth-vlr-engine/vlr_mobile-icons_120x120.png +0 -0
  4. data/app/assets/images/commonwealth-vlr-engine/vlr_mobile-icons_152x152.png +0 -0
  5. data/app/assets/images/commonwealth-vlr-engine/vlr_mobile-icons_60x60.png +0 -0
  6. data/app/assets/images/commonwealth-vlr-engine/vlr_mobile-icons_76x76.png +0 -0
  7. data/app/assets/javascripts/blacklight_google_analytics/blacklight_google_analytics.js.erb +11 -0
  8. data/app/assets/javascripts/commonwealth-vlr-engine.js +3 -0
  9. data/app/assets/javascripts/commonwealth-vlr-engine/download_utils.js +4 -0
  10. data/app/assets/stylesheets/commonwealth-vlr-engine/commonwealth-vlr-engine.css +1 -0
  11. data/app/assets/stylesheets/commonwealth-vlr-engine/downloads.scss +18 -0
  12. data/app/assets/stylesheets/commonwealth-vlr-engine/facets.scss +64 -0
  13. data/app/assets/stylesheets/commonwealth-vlr-engine/vlr_dependencies.css +3 -1
  14. data/app/controllers/bookmarks_controller.rb +7 -2
  15. data/app/controllers/collections_controller.rb +1 -109
  16. data/app/controllers/concerns/commonwealth_vlr_engine/collections_controller_behavior.rb +132 -0
  17. data/app/controllers/concerns/commonwealth_vlr_engine/downloads_controller_behavior.rb +184 -0
  18. data/app/controllers/concerns/commonwealth_vlr_engine/institutions_controller_behavior.rb +70 -0
  19. data/app/controllers/downloads_controller.rb +4 -0
  20. data/app/controllers/iiif_manifest_controller.rb +2 -7
  21. data/app/controllers/image_viewer_controller.rb +3 -13
  22. data/app/controllers/institutions_controller.rb +1 -65
  23. data/app/controllers/ocr_search_controller.rb +1 -1
  24. data/app/controllers/saved_searches_controller.rb +2 -0
  25. data/app/controllers/search_history_controller.rb +2 -0
  26. data/app/helpers/commonwealth_vlr_engine/application_helper.rb +20 -2
  27. data/app/helpers/commonwealth_vlr_engine/catalog_helper.rb +36 -53
  28. data/app/helpers/commonwealth_vlr_engine/downloads_helper_behavior.rb +192 -0
  29. data/app/helpers/commonwealth_vlr_engine/facets_helper.rb +3 -1
  30. data/app/helpers/commonwealth_vlr_engine/ocr_search_helper_behavior.rb +5 -0
  31. data/app/helpers/commonwealth_vlr_engine/search_history_constraints_helper.rb +25 -0
  32. data/app/helpers/downloads_helper.rb +3 -0
  33. data/app/views/catalog/_add_this.html.erb +3 -1
  34. data/app/views/catalog/_folder_item_control.html.erb +2 -1
  35. data/app/views/catalog/_index_mapview.html.erb +9 -0
  36. data/app/views/catalog/_more_like_this.html.erb +1 -1
  37. data/app/views/catalog/_show_cite_tools.html.erb +3 -0
  38. data/app/views/catalog/_show_default.html.erb +13 -12
  39. data/app/views/catalog/_show_partials/_show_book_viewer_link.html.erb +1 -1
  40. data/app/views/catalog/_show_partials/_show_default_metadata.html.erb +3 -3
  41. data/app/views/catalog/_show_partials/_show_downloads.html.erb +1 -1
  42. data/app/views/catalog/_show_partials/_show_volumes.html.erb +1 -1
  43. data/app/views/catalog/_show_sharing_tools.html.erb +3 -0
  44. data/app/views/collections/show.html.erb +1 -0
  45. data/app/views/downloads/_terms_of_use.html.erb +29 -0
  46. data/app/views/downloads/show.html.erb +29 -0
  47. data/app/views/image_viewer/_render_book_viewer.html.erb +1 -1
  48. data/app/views/institutions/show.html.erb +2 -10
  49. data/app/views/layouts/commonwealth-vlr-engine.html.erb +1 -4
  50. data/app/views/ocr_search/_index_ocr_list.html.erb +3 -3
  51. data/app/views/shared/_mobile_icon_tags.html.erb +4 -0
  52. data/app/views/shared/_search_form_header.html.erb +1 -1
  53. data/app/views/shared/_tools.html.erb +5 -5
  54. data/commonwealth-vlr-engine.gemspec +8 -6
  55. data/config/initializers/patch_blacklight_advanced_search.rb +6 -6
  56. data/config/initializers/patch_blacklight_range_limit.rb +18 -0
  57. data/config/jetty.yml +1 -1
  58. data/config/locales/commonwealth-vlr-engine.en.yml +12 -0
  59. data/config/routes.rb +6 -0
  60. data/lib/commonwealth-vlr-engine.rb +1 -0
  61. data/lib/commonwealth-vlr-engine/controller.rb +18 -3
  62. data/lib/commonwealth-vlr-engine/controller_override.rb +79 -21
  63. data/lib/commonwealth-vlr-engine/engine.rb +1 -0
  64. data/lib/commonwealth-vlr-engine/render_constraints_override.rb +15 -14
  65. data/lib/commonwealth-vlr-engine/search_builder/collections_search_builder.rb +1 -1
  66. data/lib/commonwealth-vlr-engine/search_builder/commonwealth_search_builder_behavior.rb +13 -1
  67. data/lib/commonwealth-vlr-engine/search_builder/flagged_search_builder.rb +1 -1
  68. data/lib/commonwealth-vlr-engine/search_builder/institutions_search_builder.rb +1 -1
  69. data/lib/commonwealth-vlr-engine/search_builder/mlt_search_builder.rb +2 -1
  70. data/lib/commonwealth-vlr-engine/streaming.rb +50 -0
  71. data/lib/commonwealth-vlr-engine/version.rb +1 -1
  72. data/lib/generators/commonwealth_vlr_engine/routes_generator.rb +8 -0
  73. data/lib/generators/commonwealth_vlr_engine/templates/commonwealth_search_builder.rb +4 -3
  74. data/lib/generators/commonwealth_vlr_engine/templates/config/vlr.yml +3 -0
  75. data/solr_conf/conf/solrconfig.xml +42 -5
  76. data/spec/controllers/collections_controller_spec.rb +20 -0
  77. data/spec/controllers/downloads_controller_spec.rb +65 -0
  78. data/spec/controllers/image_viewer_controller_spec.rb +0 -18
  79. data/spec/controllers/institutions_controller_spec.rb +7 -0
  80. data/spec/features/advanced_search_date_range_spec.rb +36 -0
  81. data/spec/features/collections/index_spec.rb +6 -0
  82. data/spec/features/collections/show_spec.rb +38 -0
  83. data/spec/features/more_like_this_search_spec.rb +18 -1
  84. data/spec/fixtures/sample_solr_documents.yml +107 -19
  85. data/spec/helpers/application_helper_spec.rb +9 -2
  86. data/spec/helpers/catalog_helper_spec.rb +26 -42
  87. data/spec/helpers/downloads_helper_spec.rb +173 -0
  88. data/spec/helpers/ocr_search_helper_spec.rb +15 -7
  89. data/spec/helpers/range_limit_helper_spec.rb +20 -0
  90. data/spec/helpers/search_history_constraints_helper_spec.rb +39 -0
  91. data/spec/lib/commonwealth-vlr-engine/controller_override_spec.rb +37 -0
  92. data/spec/lib/commonwealth-vlr-engine/render_constraints_override_spec.rb +0 -10
  93. data/spec/lib/commonwealth-vlr-engine/search_builder/commonwealth_search_builder_behavior_spec.rb +21 -3
  94. data/spec/lib/commonwealth-vlr-engine/search_builder/mlt_search_builder_spec.rb +1 -1
  95. metadata +99 -12
  96. data/app/helpers/commonwealth_vlr_engine/component_helper.rb +0 -22
  97. data/app/views/catalog/_show_tools.html.erb +0 -42
  98. data/spec/helpers/component_helper_spec.rb +0 -34
@@ -12,9 +12,9 @@ describe ApplicationHelper do
12
12
  end
13
13
 
14
14
  describe '#render_format_index' do
15
- let(:args) { {document: {genre_field: 'Maps'}, field: :genre_field} }
15
+ let(:opts) { {value: ['Maps']} }
16
16
  it 'should return the right value' do
17
- expect(helper.render_format_index(args)).to eq('Maps/Atlases')
17
+ expect(helper.render_format_index(opts)).to eq('Maps/Atlases')
18
18
  end
19
19
  end
20
20
 
@@ -25,6 +25,13 @@ describe ApplicationHelper do
25
25
  end
26
26
  end
27
27
 
28
+ describe '#date_range_constraints_to_s' do
29
+ let(:sample_params) { {date_start: '1970', date_end: '2000'} }
30
+ it 'should return the right string' do
31
+ expect(helper.date_range_constraints_to_s(sample_params)).to eq('1970-2000')
32
+ end
33
+ end
34
+
28
35
  describe '#link_to_facet' do
29
36
 
30
37
  it 'should create a link to catalog#index with the facet params and display value' do
@@ -76,47 +76,22 @@ describe CatalogHelper do
76
76
  end
77
77
  end
78
78
 
79
- describe 'download_links helpers' do
79
+ describe 'image file helpers' do
80
80
 
81
- before do
82
- # copy :images to :documents, since we don't have any non-image items to test with at the moment
83
- files_hash[:documents] = files_hash[:images]
84
- @download_links = helper.create_download_links(document, files_hash, 'link_class')
85
- end
86
-
87
- describe '#create_download_links' do
88
-
89
- it 'should return an array of links' do
90
- expect(@download_links.length).to eq(2)
91
- expect(@download_links.first.match(/\A<a[a-z =\\"_]*href=/)).to be_truthy
81
+ describe '#has_image_files?' do
82
+ it 'should return true' do
83
+ expect(helper.has_image_files?(files_hash)).to be_truthy
92
84
  end
93
-
94
- it 'should link to the productionMaster datastream' do
95
- expect(@download_links.first).to include("href=\"#{FEDORA_URL['url']}/objects/#{image_pid}/datastreams/productionMaster/content")
96
- end
97
-
98
85
  end
99
86
 
100
- describe '#has_downloadable_files?' do
101
- it 'should return true if there are documents, audio, or generic files' do
102
- expect(helper.has_downloadable_files?(files_hash)).to be_truthy
87
+ describe '#image_file_pids' do
88
+ let (:image_file_pids_result) { helper.image_file_pids(files_hash[:images]) }
89
+ it 'should return an array of ImageFile pids' do
90
+ expect(image_file_pids_result.length).to eq(2)
91
+ expect(image_file_pids_result.first).to eq(image_pid)
103
92
  end
104
93
  end
105
94
 
106
- describe '#ia_download_title' do
107
- it 'should return the correct download title' do
108
- expect(helper.ia_download_title('mobi')).to eq('Kindle')
109
- expect(helper.ia_download_title('zip')).to eq('Daisy')
110
- end
111
- end
112
-
113
- end
114
-
115
- describe '#has_image_files?' do
116
- it 'should return an array of ImageFile pids' do
117
- expect(helper.has_image_files?(files_hash).length).to eq(2)
118
- expect(helper.has_image_files?(files_hash).first).to eq(image_pid)
119
- end
120
95
  end
121
96
 
122
97
  describe '#has_volumes?' do
@@ -286,12 +261,19 @@ describe CatalogHelper do
286
261
 
287
262
  describe 'copyright date' do
288
263
  it 'should return the correct date value' do
289
- expect(helper.render_mods_date('1984', nil, nil, 'copyrightDate')).to eq('c1984')
264
+ expect(helper.render_mods_date('1984', nil, nil, 'copyrightDate')).to eq('(c) 1984')
290
265
  end
291
266
  end
292
267
 
293
268
  end
294
269
 
270
+ describe '#render_search_to_page_title' do
271
+ before { @page_title = helper.render_search_to_page_title({mlt_id: item_pid}) }
272
+ it 'should return the correct string for the page title' do
273
+ expect(@page_title).to include(I18n.t('blacklight.more_like_this.constraint_label'))
274
+ end
275
+ end
276
+
295
277
  describe '#render_mods_xml_record' do
296
278
  before { @mods_xml_doc = helper.render_mods_xml_record(item_pid) }
297
279
  it 'should return the XML document for the MODS record' do
@@ -342,27 +324,29 @@ describe CatalogHelper do
342
324
 
343
325
  describe '#thumbnail_url' do
344
326
 
327
+ let(:document_to_hash) { document.to_h }
328
+
345
329
  it 'should return the datastream path if there is an exemplary_image_ssi value' do
346
330
  expect(helper.thumbnail_url(document)).to eq("#{FEDORA_URL['url']}/objects/#{image_pid}/datastreams/thumbnail300/content")
347
331
  end
348
332
 
349
333
  describe 'with no exemplary image' do
350
334
 
351
- before { document.delete(:exemplary_image_ssi) }
335
+ before { document_to_hash.delete('exemplary_image_ssi') }
352
336
 
353
337
  it 'should return the proper icon if there is a type_of_resource_ssim value' do
354
- expect(helper.thumbnail_url(document)).to include('dc_image-icon.png')
338
+ expect(helper.thumbnail_url(SolrDocument.new(document_to_hash))).to include('dc_image-icon.png')
355
339
  end
356
340
 
357
341
  describe 'with no type_of_resource_ssim value' do
358
342
 
359
343
  before do
360
- document.delete(:type_of_resource_ssim)
361
- document[blacklight_config.index.display_type_field.to_sym] = 'Collection'
344
+ document_to_hash.delete('type_of_resource_ssim')
345
+ document_to_hash[blacklight_config.index.display_type_field] = 'Collection'
362
346
  end
363
347
 
364
348
  it 'should return the collection icon' do
365
- expect(helper.thumbnail_url(document)).to include('dc_collection-icon.png')
349
+ expect(helper.thumbnail_url(SolrDocument.new(document_to_hash))).to include('dc_collection-icon.png')
366
350
  end
367
351
 
368
352
  end
@@ -371,10 +355,10 @@ describe CatalogHelper do
371
355
 
372
356
  describe 'flagged item' do
373
357
 
374
- before { document[blacklight_config.flagged_field.to_sym] = true }
358
+ before { document_to_hash[blacklight_config.flagged_field] = true }
375
359
 
376
360
  it 'should return the icon rather than the exemplary image' do
377
- expect(helper.thumbnail_url(document)).to include('dc_image-icon.png')
361
+ expect(helper.thumbnail_url(SolrDocument.new(document_to_hash))).to include('dc_image-icon.png')
378
362
  end
379
363
 
380
364
  end
@@ -0,0 +1,173 @@
1
+ require 'spec_helper'
2
+
3
+ describe DownloadsHelper do
4
+
5
+ class DownloadsHelperTestClass < CatalogController
6
+ cattr_accessor :blacklight_config
7
+
8
+ include Blacklight::SearchHelper
9
+ include CommonwealthVlrEngine::Finder
10
+
11
+ def initialize blacklight_config
12
+ self.blacklight_config = blacklight_config
13
+ end
14
+
15
+ end
16
+
17
+ let(:blacklight_config) { CatalogController.blacklight_config }
18
+ let(:downloads_helper_test_class) { DownloadsHelperTestClass.new blacklight_config }
19
+ let(:item_pid) { 'bpl-dev:h702q6403' }
20
+ let(:image_pid) { 'bpl-dev:h702q641c' }
21
+ let(:document) { Blacklight.default_index.search({:q => "id:\"#{item_pid}\"", :rows => 1}).documents.first }
22
+ let(:files_hash) { downloads_helper_test_class.get_files(item_pid) }
23
+ let(:object_profile) { JSON.parse(files_hash[:images].first['object_profile_ssm'].first) }
24
+
25
+ before(:each) do
26
+ allow(helper).to receive_messages(blacklight_config: blacklight_config)
27
+ end
28
+
29
+ before do
30
+ # copy :images to :documents, since we don't have any non-image items to test with at the moment
31
+ files_hash[:documents] = files_hash[:images]
32
+ @download_links = helper.create_download_links(document, files_hash)
33
+ @image_datastreams_output = helper.image_datastreams(object_profile)
34
+ end
35
+
36
+ describe '#create_download_links' do
37
+ it 'should return an array of links' do
38
+ expect(@download_links.length).to eq(5)
39
+ expect(@download_links.first.match(/\A<a[a-z -=\\"_]*href=/)).to be_truthy
40
+ end
41
+ end
42
+
43
+ describe '#download_link_class' do
44
+ it 'should return a string' do
45
+ expect(helper.download_link_class.class).to eq(String)
46
+ end
47
+ end
48
+
49
+ describe '#download_link_options' do
50
+ it 'should return a Hash of link options' do
51
+ expect(helper.download_link_options[:class]).to be_truthy
52
+ end
53
+ end
54
+
55
+ describe '#has_downloadable_files?' do
56
+ it 'should return true if there are documents, audio, or generic files' do
57
+ expect(helper.has_downloadable_files?(document, files_hash)).to be_truthy
58
+ end
59
+ end
60
+
61
+ describe '#has_downloadable_images?' do
62
+ it 'should return true if there are image files and the license allows download' do
63
+ expect(helper.has_downloadable_images?(document, files_hash)).to be_truthy
64
+ end
65
+ end
66
+
67
+ describe '#ia_download_title' do
68
+ it 'should return the correct download title' do
69
+ expect(helper.ia_download_title('mobi')).to eq('Kindle')
70
+ expect(helper.ia_download_title('zip')).to eq('Daisy')
71
+ end
72
+ end
73
+
74
+ describe '#image_datastreams' do
75
+ it 'should return an array of image datastream ids' do
76
+ expect(@image_datastreams_output.class).to eq(Array)
77
+ expect(@image_datastreams_output[0]).to eq('productionMaster')
78
+ end
79
+ end
80
+
81
+ describe '#image_download_links' do
82
+
83
+ before do
84
+ @image_download_links = helper.image_download_links(document, files_hash[:images])
85
+ end
86
+
87
+ it 'should return an array of links' do
88
+ expect(@image_download_links.length).to eq(3)
89
+ expect(@image_download_links.first.match(/\A<a[a-z -=\\"_]*href=/)).to be_truthy
90
+ end
91
+
92
+ end
93
+
94
+ describe '#license_allows_download?' do
95
+ it 'should return true if the license allows download' do
96
+ expect(helper.license_allows_download?(document)).to be_truthy
97
+ end
98
+ end
99
+
100
+ describe '#file_download_link' do
101
+
102
+ let (:file_download_link_output) { helper.file_download_link(image_pid,
103
+ 'foo',
104
+ object_profile,
105
+ @image_datastreams_output[0]) }
106
+
107
+ it 'should return a link' do
108
+ expect(file_download_link_output.match(/\A<a[a-z -=\\"_]*href=/)).to be_truthy
109
+ end
110
+
111
+ it 'should link to the downloads controller show action with the correct datastream param' do
112
+ expect(file_download_link_output).to include(download_path(image_pid, datastream_id: @image_datastreams_output[0]))
113
+ end
114
+
115
+ it 'should include a <span> with the file type and size' do
116
+ expect(file_download_link_output).to include('<span')
117
+ expect(file_download_link_output).to include('TIF')
118
+ expect(file_download_link_output).to include('10.5 MB')
119
+ end
120
+
121
+ end
122
+
123
+ describe '#file_type_string' do
124
+ it 'should return the correct file type' do
125
+ expect(helper.file_type_string(@image_datastreams_output[0], object_profile)).to eq('TIF')
126
+ expect(helper.file_type_string(@image_datastreams_output[1], nil)).to eq('JPEG')
127
+ end
128
+ end
129
+
130
+ describe '#file_size_string' do
131
+ it 'should return the correct file size' do
132
+ expect(helper.file_size_string(@image_datastreams_output[0], object_profile)).to eq('10.5 MB')
133
+ expect(helper.file_size_string(@image_datastreams_output[1], nil)).to eq('multi-file ZIP')
134
+ end
135
+ end
136
+
137
+ describe '#setup_zip_object_profile' do
138
+
139
+ let (:zip_object_profile) { helper.setup_zip_object_profile(files_hash[:images], @image_datastreams_output[0]) }
140
+
141
+ it 'should return a hash with the right structure' do
142
+ expect(zip_object_profile['zip']).to be_truthy
143
+ expect(zip_object_profile['datastreams'][@image_datastreams_output[0]]['dsSize']).to be_truthy
144
+ end
145
+
146
+ # should be greater than 10.5 MB
147
+ it 'should estimate the zip size' do
148
+ expect(zip_object_profile['datastreams'][@image_datastreams_output[0]]['dsSize'] > 11010048).to be_truthy
149
+ end
150
+
151
+ end
152
+
153
+ describe '#url_for_download' do
154
+
155
+ it 'should return the correct link path for a hosted item' do
156
+ expect(helper.url_for_download(document, @image_datastreams_output[0])).to include(trigger_downloads_path(item_pid,
157
+ datastream_id: @image_datastreams_output[0]))
158
+ end
159
+
160
+ describe 'item from Internet Archive' do
161
+
162
+ let (:document_to_hash) { document.to_h }
163
+ before { document_to_hash['identifier_ia_id_ssi'] = 'foo' }
164
+
165
+ it 'should return the correct link path for an Internet Archive item' do
166
+ expect(helper.url_for_download(SolrDocument.new(document_to_hash), 'JPEG2000')).to include('archive.org')
167
+ end
168
+
169
+ end
170
+
171
+ end
172
+
173
+ end
@@ -16,11 +16,19 @@ describe OcrSearchHelper do
16
16
 
17
17
  let(:blacklight_config) { CatalogController.blacklight_config }
18
18
  let(:ocr_search_helper_test_class) { OcrSearchHelperTestClass.new blacklight_config }
19
+ let(:book_pid) { 'bpl-dev:7s75dn48d' }
20
+ let(:book_document) { Blacklight.default_index.search({:q => "id:\"#{book_pid}\"", :rows => 1}).documents.first }
19
21
 
20
22
  before(:each) do
21
23
  allow(helper).to receive_messages(blacklight_config: blacklight_config)
22
24
  end
23
25
 
26
+ describe '#has_searchable_text?' do
27
+ it 'should return true if the item has searchable text' do
28
+ expect(helper.has_searchable_text?(book_document)).to be_truthy
29
+ end
30
+ end
31
+
24
32
  describe '#ocr_q_params' do
25
33
 
26
34
  let(:current_search_session) { double(:query_params => {'q' => 'foo'}) }
@@ -33,21 +41,20 @@ describe OcrSearchHelper do
33
41
 
34
42
  describe '#render_page_link' do
35
43
 
36
- let(:book_pid) { 'bpl-dev:7s75dn48d' }
37
44
  let(:page_pid) { 'bpl-dev:7s75dn58n' }
38
- let(:document) { Blacklight.default_index.search({:q => "id:\"#{page_pid}\"", :rows => 1}).documents.first }
39
- let(:image_pid_list) { ocr_search_helper_test_class.has_image_files?(ocr_search_helper_test_class.get_files(book_pid)) }
45
+ let(:page_document) { Blacklight.default_index.search({:q => "id:\"#{page_pid}\"", :rows => 1}).documents.first }
46
+ let(:image_pid_list) { ocr_search_helper_test_class.image_file_pids(ocr_search_helper_test_class.get_image_files(book_pid)) }
40
47
 
41
48
  describe 'with a page_num_field value' do
42
49
 
43
- before { @ocr_page_link = helper.render_page_link(document, image_pid_list, book_pid) }
50
+ before { @ocr_page_link = helper.render_page_link(page_document, image_pid_list, book_pid) }
44
51
 
45
52
  it 'should create a link to the book viewer' do
46
53
  expect(@ocr_page_link).to include("href=\"/book_viewer/#{book_pid}?ocr_q=#1/1")
47
54
  end
48
55
 
49
56
  it 'should have the correct label' do
50
- expect(@ocr_page_link).to include(document[blacklight_config.page_num_field.to_sym])
57
+ expect(@ocr_page_link).to include(page_document[blacklight_config.page_num_field.to_sym])
51
58
  end
52
59
 
53
60
  end
@@ -55,8 +62,9 @@ describe OcrSearchHelper do
55
62
  describe 'without page_num_field value' do
56
63
 
57
64
  before do
58
- document[blacklight_config.page_num_field.to_sym] = nil
59
- @ocr_page_link = helper.render_page_link(document, image_pid_list, book_pid)
65
+ no_page_num = page_document.to_h
66
+ no_page_num[blacklight_config.page_num_field] = nil
67
+ @ocr_page_link = helper.render_page_link(SolrDocument.new(no_page_num), image_pid_list, book_pid)
60
68
  end
61
69
 
62
70
  it 'should have the correct label' do
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe RangeLimitHelper do
4
+
5
+ let(:range_field_name) { 'date_facet_yearly_ssim' }
6
+ let(:params) { {'f'=>{'institution_name_ssim'=>['Boston Public Library']},
7
+ 'id'=>'bpl-dev:abcd12345',
8
+ 'range_end'=>'1922s',
9
+ 'range_field'=> range_field_name,
10
+ 'range_start'=>'1851s'} }
11
+
12
+ describe '#add_range_missing' do
13
+
14
+ it 'create a link to catalog#show' do
15
+ expect(helper.add_range_missing(range_field_name,params)).to include(search_catalog_path)
16
+ end
17
+
18
+ end
19
+
20
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe CommonwealthVlrEngine::SearchHistoryConstraintsHelper do
4
+
5
+ class SearchHistoryConstraintsHelperTestClass < CatalogController
6
+ attr_accessor :params
7
+ include CommonwealthVlrEngine::ApplicationHelper
8
+ end
9
+
10
+ before(:each) do
11
+ @fake_controller = SearchHistoryConstraintsHelperTestClass.new
12
+ @fake_controller.extend(CommonwealthVlrEngine::SearchHistoryConstraintsHelper)
13
+ end
14
+
15
+ describe 'render_search_to_s_mlt' do
16
+
17
+ let (:mlt_test_params) { {mlt_id: 'bpl-dev:h702q6403'} }
18
+
19
+ it 'should return render_search_to_s_element when mlt params are present' do
20
+ expect(@fake_controller).to receive(:render_search_to_s_element)
21
+ expect(@fake_controller).to receive(:render_filter_value)
22
+ @fake_controller.render_search_to_s_mlt(mlt_test_params)
23
+ end
24
+
25
+ end
26
+
27
+ describe 'render_search_to_s_advanced' do
28
+
29
+ let (:date_range_params) { {date_start: '1970', date_end: '2000'} }
30
+
31
+ it 'should return render_search_to_s_element when date range params are present' do
32
+ expect(@fake_controller).to receive(:render_search_to_s_element)
33
+ expect(@fake_controller).to receive(:render_filter_value)
34
+ @fake_controller.render_search_to_s_advanced(date_range_params)
35
+ end
36
+
37
+ end
38
+
39
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe CommonwealthVlrEngine::ControllerOverride do
4
+
5
+ class ControllerOverrideTestClass < CatalogController
6
+ end
7
+
8
+ let (:mock_controller) { ControllerOverrideTestClass.new }
9
+ let (:override_config) { mock_controller.blacklight_config }
10
+
11
+ describe 'customized blacklight configuration' do
12
+
13
+ describe 'index document actions' do
14
+
15
+ it 'should remove the unwanted actions' do
16
+ expect(override_config.index.document_actions[:bookmark]).to be_empty
17
+ end
18
+
19
+ end
20
+
21
+ describe 'show document actions' do
22
+
23
+ it 'should remove the unwanted actions' do
24
+ expect(override_config.show.document_actions[:email]).to be_empty
25
+ expect(override_config.show.document_actions[:bookmark]).to be_empty
26
+ end
27
+
28
+ it 'should add the desired actions' do
29
+ expect(override_config.show.document_actions[:custom_email]).not_to be_empty
30
+ expect(override_config.show.document_actions[:folder_items]).not_to be_empty
31
+ end
32
+
33
+ end
34
+
35
+ end
36
+
37
+ end