blacklight-spotlight 3.4.2.1 → 3.4.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/spotlight/version.rb +1 -1
- data/spec/support/controllers/engine_helpers.rb +9 -0
- data/spec/support/disable_friendly_id_deprecation_warnings.rb +11 -0
- data/spec/support/features/capybara_default_max_wait_metadata_helper.rb +20 -0
- data/spec/support/features/test_features_helpers.rb +92 -0
- data/spec/support/helpers/controller_level_helpers.rb +25 -0
- data/spec/support/stub_iiif_response.rb +26 -0
- data/spec/support/views/test_view_helpers.rb +21 -0
- metadata +8 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc4256e20e17471f8ae0899662bb9b3560c76571bd9543c58ff55e5a921d2574
|
4
|
+
data.tar.gz: 93e66e16c4d6b556ab95752444f3990d5ce1e2e3b0bc4c7d396e1ae0c6003ce9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ee7e5be23d75b7fffcaa81856222bddd90e67c09f67394b730221fbf84fe6dba5ebf77c830755ba0e77c7584c871c505ef93dc96306368577be6beb9e098b96
|
7
|
+
data.tar.gz: 0bc0941b6b371c2c7c2dc33439eccd2c9fc07a3d8a97aa0597822ec025da2e2b5f6e5a0718a26c9df46cbc0cffffbd322cc557ac5e05568dcefe24be74d5734c
|
data/lib/spotlight/version.rb
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
if Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR <= 1
|
4
|
+
default_deprecation_behaviours = ActiveSupport::Deprecation.behavior
|
5
|
+
ActiveSupport::Deprecation.behavior = lambda do |message, callstack|
|
6
|
+
unless callstack.find { |l| l.path =~ %r{gems/friendly_id} } &&
|
7
|
+
message =~ /The behavior of .* inside of after callbacks will be changing/
|
8
|
+
default_deprecation_behaviours.each { |b| b.call(message, callstack) }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CapybaraDefaultMaxWaitMetadataHelper
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
before do |example|
|
8
|
+
next unless example.metadata[:default_max_wait_time]
|
9
|
+
|
10
|
+
@previous_wait_time = Capybara.default_max_wait_time
|
11
|
+
Capybara.default_max_wait_time = example.metadata[:default_max_wait_time]
|
12
|
+
end
|
13
|
+
|
14
|
+
after do |example|
|
15
|
+
next unless example.metadata[:default_max_wait_time]
|
16
|
+
|
17
|
+
Capybara.default_max_wait_time = @previous_wait_time
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Spotlight
|
4
|
+
module TestFeaturesHelpers
|
5
|
+
def fill_in_typeahead_field(opts = {})
|
6
|
+
type = opts[:type] || 'twitter'
|
7
|
+
# Poltergeist / Capybara doesn't fire the events typeahead.js
|
8
|
+
# is listening for, so we help it out a little:
|
9
|
+
page.execute_script <<-EOF
|
10
|
+
$("[data-#{type}-typeahead]:visible").val("#{opts[:with]}").trigger("input");
|
11
|
+
$("[data-#{type}-typeahead]:visible").typeahead("open");
|
12
|
+
$(".tt-suggestion").click();
|
13
|
+
EOF
|
14
|
+
|
15
|
+
find('.tt-suggestion', text: opts[:with], match: :first).click
|
16
|
+
end
|
17
|
+
|
18
|
+
##
|
19
|
+
# For typeahead "prefetched" fields, we need to wait for a resolved selector
|
20
|
+
# before proceeding.
|
21
|
+
def fill_in_prefetched_typeahead_field(opts)
|
22
|
+
type = opts[:type] || 'twitter'
|
23
|
+
# Poltergeist / Capybara doesn't fire the events typeahead.js
|
24
|
+
# is listening for, so we help it out a little:
|
25
|
+
find(opts[:wait_for]) if opts[:wait_for]
|
26
|
+
page.execute_script <<-EOF
|
27
|
+
$("[data-#{type}-typeahead]:visible").val("#{opts[:with]}").trigger("input");
|
28
|
+
$("[data-#{type}-typeahead]:visible").typeahead("open");
|
29
|
+
$(".tt-suggestion").click();
|
30
|
+
EOF
|
31
|
+
end
|
32
|
+
|
33
|
+
# just like #fill_in_typeahead_field, but wait for the
|
34
|
+
# form fields to show up on the page too
|
35
|
+
def fill_in_solr_document_block_typeahead_field(opts)
|
36
|
+
fill_in_typeahead_field(opts)
|
37
|
+
expect(page).to have_css('li[data-resource-id="' + opts[:with] + '"]')
|
38
|
+
end
|
39
|
+
|
40
|
+
def add_widget(type)
|
41
|
+
click_add_widget
|
42
|
+
|
43
|
+
# click the item + image widget
|
44
|
+
expect(page).to have_css("button[data-type='#{type}']")
|
45
|
+
find("button[data-type='#{type}']").click
|
46
|
+
end
|
47
|
+
|
48
|
+
def click_add_widget
|
49
|
+
unless all('.st-block-replacer').present?
|
50
|
+
expect(page).to have_css('.st-block-addition')
|
51
|
+
first('.st-block-addition').click
|
52
|
+
end
|
53
|
+
expect(page).to have_css('.st-block-replacer')
|
54
|
+
first('.st-block-replacer').click
|
55
|
+
end
|
56
|
+
|
57
|
+
def save_page
|
58
|
+
page.execute_script <<-EOF
|
59
|
+
SirTrevor.getInstance().onFormSubmit();
|
60
|
+
EOF
|
61
|
+
click_button('Save changes')
|
62
|
+
# verify that the page was created
|
63
|
+
expect(page).not_to have_selector('.alert-danger')
|
64
|
+
expect(page).to have_selector('.alert-info', text: 'page was successfully updated')
|
65
|
+
end
|
66
|
+
|
67
|
+
RSpec::Matchers.define :have_breadcrumbs do |*expected|
|
68
|
+
match do |actual|
|
69
|
+
errors = []
|
70
|
+
errors << 'Unable to find breadcrumbs' unless actual.has_css? '.breadcrumb'
|
71
|
+
|
72
|
+
breadcrumbs = expected.dup
|
73
|
+
|
74
|
+
actual.within('.breadcrumb') do
|
75
|
+
last = breadcrumbs.pop
|
76
|
+
breadcrumbs.each do |e|
|
77
|
+
errors << "Unable to find breadcrumb #{e}" unless actual.has_link? e
|
78
|
+
end
|
79
|
+
|
80
|
+
errors << "Unable to find breadcrumb #{last}" unless actual.has_content? last
|
81
|
+
errors << "Expected #{last} not to be a link" if actual.has_link? last
|
82
|
+
end
|
83
|
+
|
84
|
+
errors.empty?
|
85
|
+
end
|
86
|
+
|
87
|
+
failure_message do |actual|
|
88
|
+
"expected that #{actual.all('.breadcrumb li').map(&:text).join(' / ')} would include #{expected.join(' / ')}"
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ControllerLevelHelpers
|
4
|
+
def search_state
|
5
|
+
@search_state ||= Blacklight::SearchState.new(params, blacklight_config)
|
6
|
+
end
|
7
|
+
|
8
|
+
def current_site
|
9
|
+
Spotlight::Site.instance
|
10
|
+
end
|
11
|
+
|
12
|
+
def blacklight_configuration_context
|
13
|
+
@blacklight_configuration_context ||= Blacklight::Configuration::Context.new(controller)
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize_controller_helpers(helper)
|
17
|
+
helper.extend ControllerLevelHelpers
|
18
|
+
initialize_routing_helpers(helper)
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize_routing_helpers(helper)
|
22
|
+
helper.class.include ::Rails.application.routes.url_helpers
|
23
|
+
helper.class.include ::Rails.application.routes.mounted_helpers if ::Rails.application.routes.respond_to?(:mounted_helpers)
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'fixtures/iiif_responses'
|
4
|
+
module StubIiifResponse
|
5
|
+
def stub_iiif_response_for_url(url, response)
|
6
|
+
allow(Spotlight::Resources::IiifService).to receive(:iiif_response).with(url).and_return(response)
|
7
|
+
end
|
8
|
+
|
9
|
+
def stub_default_collection
|
10
|
+
allow_any_instance_of(Spotlight::Resources::IiifHarvester).to receive_messages(url_is_iiif?: true)
|
11
|
+
stub_iiif_response_for_url('uri://for-top-level-collection', complex_collection)
|
12
|
+
stub_iiif_response_for_url('uri://for-child-collection1', child_collection1)
|
13
|
+
stub_iiif_response_for_url('uri://for-child-collection2', child_collection2)
|
14
|
+
stub_iiif_response_for_url('uri://for-child-collection3', child_collection3)
|
15
|
+
|
16
|
+
stub_iiif_response_for_url('uri://for-manifest1', test_manifest1)
|
17
|
+
stub_iiif_response_for_url('uri://for-manifest2', test_manifest2)
|
18
|
+
stub_iiif_response_for_url('uri://for-manifest3', test_manifest3)
|
19
|
+
stub_iiif_response_for_url('uri://for-manifest4', test_manifest4)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
RSpec.configure do |config|
|
24
|
+
config.include IiifResponses
|
25
|
+
config.include StubIiifResponse
|
26
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Spotlight
|
4
|
+
module TestViewHelpers
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
before do
|
9
|
+
view.send(:extend, Spotlight::RenderingHelper)
|
10
|
+
view.send(:extend, Spotlight::MainAppHelpers)
|
11
|
+
view.send(:extend, Spotlight::CrudLinkHelpers)
|
12
|
+
view.send(:extend, Spotlight::TitleHelper)
|
13
|
+
view.send(:extend, Spotlight::NavbarHelper)
|
14
|
+
view.send(:extend, Spotlight::CropHelper)
|
15
|
+
view.send(:extend, Spotlight::PagesHelper)
|
16
|
+
view.send(:extend, Blacklight::ComponentHelperBehavior)
|
17
|
+
view.send(:extend, BreadcrumbsOnRails::ActionController::HelperMethods)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight-spotlight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.2.
|
4
|
+
version: 3.4.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
@@ -1604,6 +1604,13 @@ files:
|
|
1604
1604
|
- spec/fixtures/updated-bulk-update-template-no-cols.csv
|
1605
1605
|
- spec/fixtures/updated-bulk-update-template-w-tags.csv
|
1606
1606
|
- spec/fixtures/updated-bulk-update-template.csv
|
1607
|
+
- spec/support/controllers/engine_helpers.rb
|
1608
|
+
- spec/support/disable_friendly_id_deprecation_warnings.rb
|
1609
|
+
- spec/support/features/capybara_default_max_wait_metadata_helper.rb
|
1610
|
+
- spec/support/features/test_features_helpers.rb
|
1611
|
+
- spec/support/helpers/controller_level_helpers.rb
|
1612
|
+
- spec/support/stub_iiif_response.rb
|
1613
|
+
- spec/support/views/test_view_helpers.rb
|
1607
1614
|
- vendor/assets/images/sir-trevor-icons.svg
|
1608
1615
|
- vendor/assets/javascripts/Leaflet.Editable.js
|
1609
1616
|
- vendor/assets/javascripts/MutationObserver.js
|