blacklight-gallery 2.1.0 → 3.0.4

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +45 -0
  3. data/app/assets/javascripts/blacklight_gallery/default.js +0 -1
  4. data/app/assets/javascripts/blacklight_gallery/masonry.js +1 -1
  5. data/app/assets/javascripts/blacklight_gallery/osd_viewer.js +1 -1
  6. data/app/assets/javascripts/blacklight_gallery/slideshow.js +1 -2
  7. data/app/assets/stylesheets/blacklight_gallery/_gallery.scss +8 -3
  8. data/app/assets/stylesheets/blacklight_gallery/_masonry.scss +60 -22
  9. data/app/assets/stylesheets/blacklight_gallery/_slideshow.scss +5 -3
  10. data/app/components/blacklight/gallery/document_component.html.erb +21 -0
  11. data/app/components/blacklight/gallery/document_component.rb +11 -0
  12. data/app/components/blacklight/gallery/slideshow_component.html.erb +12 -0
  13. data/app/components/blacklight/gallery/slideshow_component.rb +40 -0
  14. data/app/components/blacklight/gallery/slideshow_preview_component.html.erb +5 -0
  15. data/app/components/blacklight/gallery/slideshow_preview_component.rb +28 -0
  16. data/app/helpers/blacklight/gallery_helper.rb +0 -38
  17. data/app/models/concerns/blacklight/gallery/openseadragon_solr_document.rb +1 -1
  18. data/app/views/catalog/_document_gallery.html.erb +4 -3
  19. data/app/views/catalog/_document_masonry.html.erb +2 -3
  20. data/app/views/catalog/_document_slideshow.html.erb +26 -5
  21. data/app/views/catalog/_slideshow_modal.html.erb +2 -3
  22. data/blacklight-gallery.gemspec +3 -3
  23. data/lib/blacklight/gallery/engine.rb +0 -1
  24. data/lib/blacklight/gallery/version.rb +1 -1
  25. data/lib/generators/blacklight_gallery/install_generator.rb +9 -3
  26. data/lib/generators/blacklight_gallery/templates/blacklight_gallery.js +2 -1
  27. data/spec/components/blacklight/gallery/document_component_spec.rb +46 -0
  28. data/spec/components/blacklight/gallery/slideshow_component_spec.rb +67 -0
  29. data/spec/features/gallery_spec.rb +3 -4
  30. data/spec/features/masonry_spec.rb +2 -3
  31. data/spec/features/slideshow_spec.rb +0 -2
  32. data/spec/fixtures/sample_solr_documents.yml +2495 -0
  33. data/spec/models/concerns/openseadragon_solr_document_spec.rb +1 -1
  34. data/spec/spec_helper.rb +4 -11
  35. data/spec/views/catalog/_document_slideshow.html.erb_spec.rb +15 -5
  36. metadata +33 -33
  37. data/.travis.yml +0 -38
  38. data/app/views/catalog/_grid_slideshow.html.erb +0 -11
  39. data/app/views/catalog/_index_gallery.html.erb +0 -14
  40. data/app/views/catalog/_index_masonry.html.erb +0 -8
  41. data/app/views/catalog/_index_masonry_default.html.erb +0 -1
  42. data/app/views/catalog/_index_slideshow.html.erb +0 -11
  43. data/app/views/catalog/_slideshow.html.erb +0 -23
  44. data/spec/helpers/blacklight/gallery_helper_spec.rb +0 -110
  45. data/spec/views/catalog/_index_gallery.html.erb_spec.rb +0 -22
  46. data/spec/views/catalog/_index_masonry.html.erb_spec.rb +0 -34
@@ -13,7 +13,7 @@ describe Blacklight::Gallery::OpenseadragonSolrDocument do
13
13
 
14
14
  context 'when not configured for the view' do
15
15
  let(:fields) { { some_field: 'data' } }
16
- let(:view_config) { double('ViewConfig') }
16
+ let(:view_config) { double('ViewConfig', tile_source_field: nil) }
17
17
  it 'returns nil' do
18
18
  expect(subject).to be_nil
19
19
  end
data/spec/spec_helper.rb CHANGED
@@ -9,19 +9,11 @@ require 'rspec/rails'
9
9
  require 'rspec/active_model/mocks'
10
10
 
11
11
  require 'selenium-webdriver'
12
- require 'chromedriver-helper'
12
+ require 'webdrivers'
13
13
 
14
- Capybara.javascript_driver = :headless_chrome
15
14
 
16
- Capybara.register_driver :headless_chrome do |app|
17
- capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
18
- chromeOptions: { args: %w[headless disable-gpu no-sandbox] }
19
- )
20
-
21
- Capybara::Selenium::Driver.new(app,
22
- browser: :chrome,
23
- desired_capabilities: capabilities)
24
- end
15
+ Capybara.javascript_driver = :selenium_chrome_headless
16
+ Capybara.disable_animation = true
25
17
 
26
18
  require 'blacklight'
27
19
  require 'blacklight/gallery'
@@ -29,5 +21,6 @@ require 'blacklight/gallery'
29
21
  RSpec.configure do |c|
30
22
  c.infer_spec_type_from_file_location!
31
23
  c.full_backtrace = true
24
+ c.include ViewComponent::TestHelpers, type: :component
32
25
  #onfig.assets.precompile += %w(spotlight/default_thumbnail.jpg spotlight/default_browse_thumbnail.jpg)
33
26
  end
@@ -1,17 +1,27 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "catalog/_document_slideshow.html.erb", :type => :view do
4
- let(:blacklight_config) { Blacklight::Configuration.new }
4
+ let(:blacklight_config) do
5
+ Blacklight::Configuration.new do |config|
6
+ config.track_search_session = false
7
+ end
8
+ end
5
9
 
6
10
  let(:document) { stub_model(::SolrDocument) }
7
11
 
8
12
  before do
9
- allow(view).to receive_messages(blacklight_config: blacklight_config)
10
- allow(view).to receive_messages(documents: [document])
11
- allow(view).to receive(:blacklight_configuration_context).and_return(double(evaluate_if_unless_configuration: true))
13
+ allow(view).to receive_messages(
14
+ blacklight_config: blacklight_config,
15
+ documents: [document],
16
+ document_index_view_type: 'slideshow',
17
+ document_counter_with_offset: 1
18
+ )
19
+ allow(view).to receive(:current_search_session).and_return(nil)
20
+ allow(view).to receive(:search_session).and_return({})
21
+ allow(view).to receive(:search_state).and_return(Blacklight::SearchState.new({}, blacklight_config))
12
22
  end
13
23
 
14
- it "should have a edit tag form" do
24
+ it 'has a modal' do
15
25
  render
16
26
  expect(rendered).to have_selector '#slideshow-modal'
17
27
  expect(rendered).to have_selector '[data-slide="prev"]'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blacklight-gallery
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 3.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Beer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-22 00:00:00.000000000 Z
11
+ date: 2021-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '7.7'
39
+ version: '7.12'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '7.7'
46
+ version: '7.12'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bootstrap
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -58,20 +58,6 @@ dependencies:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '4.0'
61
- - !ruby/object:Gem::Dependency
62
- name: openseadragon
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: 0.2.0
68
- type: :runtime
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 0.2.0
75
61
  - !ruby/object:Gem::Dependency
76
62
  name: rake
77
63
  requirement: !ruby/object:Gem::Requirement
@@ -199,7 +185,21 @@ dependencies:
199
185
  - !ruby/object:Gem::Version
200
186
  version: '0'
201
187
  - !ruby/object:Gem::Dependency
202
- name: chromedriver-helper
188
+ name: webdrivers
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: rexml
203
203
  requirement: !ruby/object:Gem::Requirement
204
204
  requirements:
205
205
  - - ">="
@@ -233,9 +233,9 @@ executables: []
233
233
  extensions: []
234
234
  extra_rdoc_files: []
235
235
  files:
236
+ - ".github/workflows/ruby.yml"
236
237
  - ".gitignore"
237
238
  - ".solr_wrapper.yml"
238
- - ".travis.yml"
239
239
  - Gemfile
240
240
  - LICENSE.txt
241
241
  - README.md
@@ -260,19 +260,19 @@ files:
260
260
  - app/assets/stylesheets/blacklight_gallery/_osd_viewer.scss
261
261
  - app/assets/stylesheets/blacklight_gallery/_slideshow.scss
262
262
  - app/assets/stylesheets/blacklight_gallery/default.scss
263
+ - app/components/blacklight/gallery/document_component.html.erb
264
+ - app/components/blacklight/gallery/document_component.rb
265
+ - app/components/blacklight/gallery/slideshow_component.html.erb
266
+ - app/components/blacklight/gallery/slideshow_component.rb
267
+ - app/components/blacklight/gallery/slideshow_preview_component.html.erb
268
+ - app/components/blacklight/gallery/slideshow_preview_component.rb
263
269
  - app/helpers/blacklight/gallery_helper.rb
264
270
  - app/helpers/blacklight/openseadragon_helper.rb
265
271
  - app/models/concerns/blacklight/gallery/openseadragon_solr_document.rb
266
272
  - app/views/catalog/_document_gallery.html.erb
267
273
  - app/views/catalog/_document_masonry.html.erb
268
274
  - app/views/catalog/_document_slideshow.html.erb
269
- - app/views/catalog/_grid_slideshow.html.erb
270
- - app/views/catalog/_index_gallery.html.erb
271
- - app/views/catalog/_index_masonry.html.erb
272
- - app/views/catalog/_index_masonry_default.html.erb
273
- - app/views/catalog/_index_slideshow.html.erb
274
275
  - app/views/catalog/_openseadragon_default.html.erb
275
- - app/views/catalog/_slideshow.html.erb
276
276
  - app/views/catalog/_slideshow_modal.html.erb
277
277
  - blacklight-gallery.gemspec
278
278
  - config/locales/blacklight-gallery.ar.yml
@@ -305,17 +305,17 @@ files:
305
305
  - solr/conf/xslt/example_atom.xsl
306
306
  - solr/conf/xslt/example_rss.xsl
307
307
  - solr/conf/xslt/luke.xsl
308
+ - spec/components/blacklight/gallery/document_component_spec.rb
309
+ - spec/components/blacklight/gallery/slideshow_component_spec.rb
308
310
  - spec/features/gallery_spec.rb
309
311
  - spec/features/masonry_spec.rb
310
312
  - spec/features/slideshow_spec.rb
311
- - spec/helpers/blacklight/gallery_helper_spec.rb
313
+ - spec/fixtures/sample_solr_documents.yml
312
314
  - spec/models/concerns/openseadragon_solr_document_spec.rb
313
315
  - spec/spec_helper.rb
314
316
  - spec/test_app_templates/Gemfile.extra
315
317
  - spec/test_app_templates/lib/generators/test_app_generator.rb
316
318
  - spec/views/catalog/_document_slideshow.html.erb_spec.rb
317
- - spec/views/catalog/_index_gallery.html.erb_spec.rb
318
- - spec/views/catalog/_index_masonry.html.erb_spec.rb
319
319
  - spec/views/catalog/_openseadragon_default.html.erb_spec.rb
320
320
  - vendor/assets/javascripts/imagesloaded.min.js
321
321
  - vendor/assets/javascripts/masonry.min.js
@@ -338,20 +338,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
338
338
  - !ruby/object:Gem::Version
339
339
  version: '0'
340
340
  requirements: []
341
- rubygems_version: 3.1.2
341
+ rubygems_version: 3.1.4
342
342
  signing_key:
343
343
  specification_version: 4
344
344
  summary: Gallery display for Blacklight
345
345
  test_files:
346
+ - spec/components/blacklight/gallery/document_component_spec.rb
347
+ - spec/components/blacklight/gallery/slideshow_component_spec.rb
346
348
  - spec/features/gallery_spec.rb
347
349
  - spec/features/masonry_spec.rb
348
350
  - spec/features/slideshow_spec.rb
349
- - spec/helpers/blacklight/gallery_helper_spec.rb
351
+ - spec/fixtures/sample_solr_documents.yml
350
352
  - spec/models/concerns/openseadragon_solr_document_spec.rb
351
353
  - spec/spec_helper.rb
352
354
  - spec/test_app_templates/Gemfile.extra
353
355
  - spec/test_app_templates/lib/generators/test_app_generator.rb
354
356
  - spec/views/catalog/_document_slideshow.html.erb_spec.rb
355
- - spec/views/catalog/_index_gallery.html.erb_spec.rb
356
- - spec/views/catalog/_index_masonry.html.erb_spec.rb
357
357
  - spec/views/catalog/_openseadragon_default.html.erb_spec.rb
data/.travis.yml DELETED
@@ -1,38 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- dist: bionic
4
-
5
- addons:
6
- chrome: stable
7
-
8
- before_install:
9
- - google-chrome-stable --headless --disable-gpu --no-sandbox --remote-debugging-port=9222 http://localhost &
10
-
11
- notifications:
12
- email: false
13
-
14
- notifications:
15
- irc: "irc.freenode.org#blacklight"
16
- email:
17
- - blacklight-commits@googlegroups.com
18
-
19
- env:
20
- global:
21
- - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
22
- - ENGINE_CART_RAILS_OPTIONS='--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test'
23
-
24
- matrix:
25
- include:
26
- - rvm: 2.7.1
27
- env: "RAILS_VERSION=6.0.3.1"
28
- - rvm: 2.6.6
29
- env: "RAILS_VERSION=6.0.3.1"
30
- - rvm: 2.6.6
31
- env: "RAILS_VERSION=5.2.4.3"
32
- - rvm: 2.5.8
33
- env: "RAILS_VERSION=5.2.4.3"
34
- - rvm: 2.4.9
35
- env: "RAILS_VERSION=5.2.4.3"
36
- fast_finish: true
37
-
38
- jdk: openjdk11
@@ -1,11 +0,0 @@
1
- <div class="document">
2
- <div class="thumbnail">
3
- <%= link_to '#', data: { :'slide-to' => document_counter, toggle: "modal", target: "#slideshow-modal" } do %>
4
- <% if thumbnail_url(document) %>
5
- <%= image_tag thumbnail_url(document), class: 'img-thumbnail', alt: index_presenter(document).heading %>
6
- <% else %>
7
- <%= t('.missing_image', scope: [:blacklight_gallery]) %>
8
- <% end %>
9
- <% end %>
10
- </div>
11
- </div>
@@ -1,14 +0,0 @@
1
- <div class="document col">
2
- <div class="thumbnail">
3
- <%= render_thumbnail_tag(
4
- document,
5
- { class: 'img-thumbnail', alt: '' },
6
- counter: document_counter_with_offset(document_counter),
7
- 'aria-hidden': true,
8
- tabindex: -1
9
- ) %>
10
- <div class="caption">
11
- <%= render_document_partials document, blacklight_config.view_config(:gallery).partials, :document_counter => document_counter %>
12
- </div>
13
- </div>
14
- </div>
@@ -1,8 +0,0 @@
1
- <div class="masonry document col-6 col-md-3">
2
- <div class="thumbnail">
3
- <%= render_thumbnail_tag(document, { class: 'img-thumbnail', alt: index_presenter(document).heading }, counter: document_counter_with_offset(document_counter)) %>
4
- <div class="caption">
5
- <%= render_document_partials document, blacklight_config.view_config(:masonry).partials, :document_counter => document_counter %>
6
- </div>
7
- </div>
8
- </div>
@@ -1 +0,0 @@
1
- <%= link_to_document(document, truncate(index_presenter(document).label(document_show_link_field(document)), length: 89)) %>
@@ -1,11 +0,0 @@
1
- <div class="item<%= ' active' if document_counter == 0 %>">
2
- <div class="frame">
3
- <%= render_slideshow_tag(document, { alt: '' }) %>
4
- <div class="caption">
5
- <%= index_presenter(document).label(document_show_link_field(document)) %>
6
- </div>
7
- <span class="counter">
8
- <%= t :'blacklight_gallery.catalog.modal_slideshow.counter', counter: document_counter + 1, count: count %>
9
- </span>
10
- </div>
11
- </div>
@@ -1,23 +0,0 @@
1
- <div id="slideshow" class="slideshow-presenter">
2
- <!-- Wrapper for slides -->
3
- <div class="slideshow-inner">
4
- <%= render collection: documents, as: :document, partial: 'index_slideshow', locals: {count: documents.count} %>
5
- </div>
6
-
7
- <!-- Controls -->
8
- <a class="left carousel-control prev" href="#slideshow" data-slide="prev">
9
- <%= blacklight_icon 'chevron_left', { additional_options: { label_context: 'previous_image' }} %>
10
- </a>
11
- <a class="right carousel-control next" href="#slideshow" data-slide="next">
12
- <%= blacklight_icon 'chevron_right', { additional_options: { label_context: 'next_image' }} %>
13
- </a>
14
-
15
- <div class="controls text-center">
16
- <button class="btn btn-sm btn-link" data-behavior="pause-slideshow" aria-label="<%= t('blacklight_gallery.catalog.slideshow.pause') %>">
17
- <%= blacklight_icon 'pause_slideshow' %>
18
- </button>
19
- <button class="btn btn-sm btn-link" data-behavior="start-slideshow" aria-label="<%= t('blacklight_gallery.catalog.slideshow.start') %>">
20
- <%= blacklight_icon 'start_slideshow' %>
21
- </button>
22
- </div>
23
- </div>
@@ -1,110 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Blacklight::GalleryHelper, :type => :helper do
4
- before do
5
- allow(helper).to receive(:blacklight_configuration_context).and_return(double(evaluate_if_unless_configuration: true))
6
- end
7
- describe "#render_gallery_collection" do
8
- let(:template) { double }
9
- before do
10
- allow(template).to receive(:render).and_return("hello ")
11
- allow(helper).to receive(:gallery_wrapper_template).and_return(template)
12
- end
13
- let(:documents) { [ double, double] }
14
- subject { helper.render_gallery_collection documents}
15
-
16
- it { is_expected.to eq 'hello hello ' }
17
- end
18
-
19
- describe "#gallery_wrapper_template" do
20
- before do
21
- allow(helper).to receive(:blacklight_config).and_return(CatalogController.blacklight_config)
22
- helper.lookup_context.prefixes << "catalog"
23
- end
24
-
25
- subject { helper.gallery_wrapper_template SolrDocument.new }
26
-
27
- it "should be the default template" do
28
- expect(subject.virtual_path).to eq 'catalog/_index_gallery'
29
- end
30
- end
31
-
32
- describe "render_slideshow_tag" do
33
- let(:document) { instance_double(SolrDocument) }
34
-
35
- it "calls the provided slideshow method" do
36
- allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new.tap { |config| config.index.slideshow_method = :xyz })
37
- expect(helper).to receive_messages(:xyz => "some-slideshow")
38
- expect(helper.render_slideshow_tag(document)).to eq 'some-slideshow'
39
- end
40
-
41
- it "creates an image tag from the given field" do
42
- allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new.tap { |config| config.index.slideshow_field = :xyz })
43
-
44
- allow(document).to receive(:has?).with(:xyz).and_return(true)
45
- allow(document).to receive(:first).with(:xyz).and_return("http://example.com/some.jpg")
46
- expect(helper.render_slideshow_tag(document)).to match /img/
47
- end
48
-
49
- it "does not link to the document if the url options are false" do
50
- allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new.tap { |config| config.index.slideshow_method = :xyz })
51
- allow(helper).to receive_messages(:xyz => "some-slideshow")
52
-
53
- result = helper.render_slideshow_tag document, {}, false
54
- expect(result).to eq "some-slideshow"
55
- end
56
-
57
- it "does not link to the document if the url options have :suppress_link" do
58
- allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new.tap { |config| config.index.slideshow_method = :xyz })
59
- allow(helper).to receive_messages(:xyz => "some-slideshow")
60
-
61
- result = helper.render_slideshow_tag document, {}, suppress_link: true
62
- expect(result).to eq "some-slideshow"
63
- end
64
-
65
-
66
- it "returns nil if no slideshow is available" do
67
- allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new)
68
- expect(helper.render_slideshow_tag document).to be_nil
69
- end
70
-
71
- it "returns nil if no slideshow is returned from the slideshow method" do
72
- allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new.tap { |config| config.index.slideshow_method = :xyz })
73
- allow(helper).to receive_messages(:xyz => nil)
74
-
75
- expect(helper.render_slideshow_tag document).to be_nil
76
- end
77
-
78
- it "returns nil if no slideshow is in the document" do
79
- allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new.tap { |config| config.index.slideshow_field = :xyz })
80
-
81
- allow(document).to receive(:has?).with(:xyz).and_return(false)
82
-
83
- expect(helper.render_slideshow_tag document).to be_nil
84
- end
85
-
86
- it "falls back to a thumbnail" do
87
- allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new.tap { |config| config.index.thumbnail_method = :xyz })
88
- allow(helper).to receive(:xyz).and_return('thumbnail-image')
89
-
90
- expect(helper.render_slideshow_tag document).to eq 'thumbnail-image'
91
- end
92
- end
93
-
94
- describe "slideshow_url" do
95
- it "pulls the configured slideshow field out of the document" do
96
- allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new.tap { |config| config.index.slideshow_field = :xyz })
97
- document = instance_double(SolrDocument)
98
- allow(document).to receive(:has?).with(:xyz).and_return(true)
99
- allow(document).to receive(:first).with(:xyz).and_return("asdf")
100
- expect(helper.slideshow_image_url document).to eq("asdf")
101
- end
102
-
103
- it "returns nil if the slideshow field doesn't exist" do
104
- allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new.tap { |config| config.index.slideshow_field = :xyz })
105
- document = instance_double(SolrDocument)
106
- allow(document).to receive(:has?).with(:xyz).and_return(false)
107
- expect(helper.slideshow_image_url document).to be_nil
108
- end
109
- end
110
- end