blacklight 5.5.1 → 5.5.2
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.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/VERSION +1 -1
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +8 -16
- data/app/helpers/blacklight/catalog_helper_behavior.rb +1 -1
- data/app/helpers/blacklight/facets_helper_behavior.rb +1 -1
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +2 -1
- data/app/helpers/blacklight/url_helper_behavior.rb +5 -1
- data/app/views/catalog/_view_type_group.html.erb +1 -1
- data/blacklight.gemspec +2 -1
- data/gemfiles/rails3.gemfile +1 -1
- data/gemfiles/rails4.1.gemfile +1 -1
- data/gemfiles/rails4.gemfile +1 -1
- data/lib/blacklight/catalog.rb +0 -1
- data/lib/blacklight/solr/facet_paginator.rb +22 -10
- data/lib/generators/blacklight/install_generator.rb +1 -1
- data/spec/controllers/bookmarks_controller_spec.rb +6 -6
- data/spec/controllers/catalog_controller_spec.rb +48 -48
- data/spec/features/alternate_controller_spec.rb +3 -3
- data/spec/features/record_view_spec.rb +1 -1
- data/spec/features/search_filters_spec.rb +4 -4
- data/spec/features/search_results_spec.rb +12 -12
- data/spec/helpers/blacklight_helper_spec.rb +83 -83
- data/spec/helpers/catalog_helper_spec.rb +37 -37
- data/spec/helpers/configuration_helper_spec.rb +39 -39
- data/spec/helpers/facets_helper_spec.rb +37 -37
- data/spec/helpers/render_constraints_helper_spec.rb +6 -1
- data/spec/helpers/search_history_constraints_helper_spec.rb +9 -9
- data/spec/helpers/url_helper_spec.rb +49 -39
- data/spec/lib/blacklight/configurable_spec.rb +5 -5
- data/spec/lib/blacklight/configuration_spec.rb +8 -8
- data/spec/lib/blacklight/facet_paginator_spec.rb +25 -0
- data/spec/lib/blacklight/routes_spec.rb +4 -4
- data/spec/lib/blacklight/search_fields_spec.rb +3 -3
- data/spec/lib/blacklight/solr/document_spec.rb +2 -2
- data/spec/lib/blacklight/solr_helper_spec.rb +37 -37
- data/spec/lib/blacklight/solr_response/group_response_spec.rb +1 -1
- data/spec/lib/blacklight/solr_response_spec.rb +31 -31
- data/spec/lib/document_presenter_spec.rb +41 -41
- data/spec/lib/tasks/blacklight_task_spec.rb +1 -1
- data/spec/models/record_mailer_spec.rb +1 -1
- data/spec/models/search_spec.rb +1 -1
- data/spec/routing/catalog_routing_spec.rb +2 -2
- data/spec/spec_helper.rb +1 -0
- data/spec/support/include_text.rb +2 -3
- data/spec/views/catalog/_constraints.html.erb_spec.rb +7 -7
- data/spec/views/catalog/_document.html.erb_spec.rb +4 -4
- data/spec/views/catalog/_facet_layout.html.erb_spec.rb +2 -2
- data/spec/views/catalog/_facets.html.erb_spec.rb +6 -6
- data/spec/views/catalog/_index_default.erb_spec.rb +10 -10
- data/spec/views/catalog/_index_header_default.html.erb_spec.rb +5 -5
- data/spec/views/catalog/_show_default.erb_spec.rb +10 -10
- data/spec/views/catalog/_show_sidebar.erb_spec.rb +5 -5
- data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +1 -1
- data/spec/views/catalog/_thumbnail_default.erb_spec.rb +4 -4
- data/spec/views/catalog/_view_type_group.html.erb_spec.rb +5 -2
- data/spec/views/catalog/facet.html.erb_spec.rb +5 -5
- data/spec/views/catalog/index.atom.builder_spec.rb +2 -2
- data/spec/views/catalog/index.html.erb_spec.rb +5 -5
- data/spec/views/catalog/show.html.erb_spec.rb +8 -8
- data/tasks/blacklight.rake +1 -2
- metadata +18 -4
@@ -11,15 +11,20 @@ describe RenderConstraintsHelper do
|
|
11
11
|
before do
|
12
12
|
# the helper methods below infer paths from the current route
|
13
13
|
controller.request.path_parameters["controller"] = 'catalog'
|
14
|
-
helper.
|
14
|
+
allow(helper).to receive(:search_action_path) do |*args|
|
15
15
|
catalog_index_path *args
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
describe '#render_constraints_query' do
|
20
|
+
let(:my_engine) { double("Engine") }
|
20
21
|
it "should have a link relative to the current url" do
|
21
22
|
expect(helper.render_constraints_query(:q=>'foobar', :f=>{:type=>'journal'})).to have_selector "a[href='/?f%5Btype%5D=journal']"
|
22
23
|
end
|
24
|
+
it "should accept an optional route set" do
|
25
|
+
expect(my_engine).to receive(:url_for).and_return('/?f%5Btype%5D=journal')
|
26
|
+
expect(helper.render_constraints_query(:q=>'foobar', :f=>{:type=>'journal'}, :route_set => my_engine)).to have_selector "a[href='/?f%5Btype%5D=journal']"
|
27
|
+
end
|
23
28
|
end
|
24
29
|
|
25
30
|
describe '#render_filter_element' do
|
@@ -12,14 +12,14 @@ describe SearchHistoryConstraintsHelper do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
before(:each) do
|
15
|
-
helper.
|
15
|
+
allow(helper).to receive(:blacklight_config).and_return(@config)
|
16
16
|
end
|
17
17
|
|
18
18
|
describe "render_search_to_s_*" do
|
19
19
|
describe "render_search_to_s_element" do
|
20
20
|
it "should render basic element" do
|
21
21
|
response = helper.render_search_to_s_element("key", "value")
|
22
|
-
response.
|
22
|
+
expect(response).to have_selector("span.constraint") do |span|
|
23
23
|
expect(span).to have_selector("span.filterName", :content => "key:")
|
24
24
|
expect(span).to have_selector("span.filterValue", :content => "value")
|
25
25
|
end
|
@@ -27,14 +27,14 @@ describe SearchHistoryConstraintsHelper do
|
|
27
27
|
end
|
28
28
|
it "should escape them that need escaping" do
|
29
29
|
response = helper.render_search_to_s_element("key>", "value>")
|
30
|
-
response.
|
31
|
-
span.
|
30
|
+
expect(response).to have_selector("span.constraint") do |span|
|
31
|
+
expect(span).to have_selector("span.filterName") do |s2|
|
32
32
|
# Note: nokogiri's gettext will unescape the inner html
|
33
33
|
# which seems to be what rspecs "contains" method calls on
|
34
34
|
# text nodes - thus the to_s inserted below.
|
35
35
|
expect(s2).to match(/key>:/)
|
36
36
|
end
|
37
|
-
span.
|
37
|
+
expect(span).to have_selector("span.filterValue") do |s3|
|
38
38
|
expect(s3).to match(/value>/)
|
39
39
|
end
|
40
40
|
end
|
@@ -42,7 +42,7 @@ describe SearchHistoryConstraintsHelper do
|
|
42
42
|
end
|
43
43
|
it "should not escape with options set thus" do
|
44
44
|
response = helper.render_search_to_s_element("key>", "value>", :escape_key => false, :escape_value => false)
|
45
|
-
response.
|
45
|
+
expect(response).to have_selector("span.constraint") do |span|
|
46
46
|
expect(span).to have_selector("span.filterName", :content => "key>:")
|
47
47
|
expect(span).to have_selector("span.filterValue", :content => "value>")
|
48
48
|
end
|
@@ -55,9 +55,9 @@ describe SearchHistoryConstraintsHelper do
|
|
55
55
|
@params = {:q => "history", :f => {"some_facet" => ["value1", "value1"], "other_facet" => ["other1"]}}
|
56
56
|
end
|
57
57
|
it "should call lesser methods" do
|
58
|
-
helper.
|
59
|
-
helper.
|
60
|
-
helper.
|
58
|
+
allow(helper).to receive(:blacklight_config).and_return(@config)
|
59
|
+
allow(helper).to receive(:default_search_field).and_return(Blacklight::Configuration::SearchField.new(:key => 'default_search_field', :display_label => 'Default'))
|
60
|
+
allow(helper).to receive(:label_for_search_field).with(nil).and_return('')
|
61
61
|
# API hooks expect this to be so
|
62
62
|
response = helper.render_search_to_s(@params)
|
63
63
|
|
@@ -3,37 +3,36 @@ require 'spec_helper'
|
|
3
3
|
describe BlacklightUrlHelper do
|
4
4
|
|
5
5
|
let(:blacklight_config) do
|
6
|
-
|
6
|
+
Blacklight::Configuration.new.configure do |config|
|
7
7
|
config.index.title_field = 'title_display'
|
8
8
|
config.index.display_type_field = 'format'
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
before
|
13
|
-
helper.
|
12
|
+
before do
|
13
|
+
allow(helper).to receive(:search_action_path) do |*args|
|
14
14
|
catalog_index_url *args
|
15
15
|
end
|
16
16
|
|
17
|
-
helper.
|
18
|
-
helper.
|
19
|
-
helper.
|
17
|
+
allow(helper).to receive_messages(blacklight_config: blacklight_config)
|
18
|
+
allow(helper).to receive_messages(current_search_session: nil)
|
19
|
+
allow(helper).to receive(:search_session).and_return({})
|
20
20
|
end
|
21
21
|
|
22
22
|
describe "url_for_document" do
|
23
23
|
let(:controller_class) { ::CatalogController.new }
|
24
|
+
let(:doc) { SolrDocument.new }
|
24
25
|
|
25
26
|
before do
|
26
|
-
helper.
|
27
|
-
helper.
|
27
|
+
allow(helper).to receive_messages(controller: controller_class)
|
28
|
+
allow(helper).to receive_messages(controller_name: controller_class.controller_name)
|
28
29
|
end
|
29
30
|
|
30
31
|
it "should be a polymorphic routing-ready object" do
|
31
|
-
doc = SolrDocument.new
|
32
32
|
expect(helper.url_for_document(doc)).to eq doc
|
33
33
|
end
|
34
34
|
|
35
35
|
it "should allow for custom show routes" do
|
36
|
-
doc = SolrDocument.new
|
37
36
|
helper.blacklight_config.show.route = { controller: 'catalog' }
|
38
37
|
expect(helper.url_for_document(doc)).to eq({controller: 'catalog', action: :show, id: doc})
|
39
38
|
end
|
@@ -42,7 +41,6 @@ describe BlacklightUrlHelper do
|
|
42
41
|
let(:controller_class) { ::BookmarksController.new }
|
43
42
|
|
44
43
|
it "should use polymorphic routing" do
|
45
|
-
doc = SolrDocument.new
|
46
44
|
expect(helper.url_for_document(doc)).to eq doc
|
47
45
|
end
|
48
46
|
end
|
@@ -53,7 +51,6 @@ describe BlacklightUrlHelper do
|
|
53
51
|
helper.blacklight_config.show.route = { controller: :current }
|
54
52
|
end
|
55
53
|
it "should support the :current controller configuration" do
|
56
|
-
doc = SolrDocument.new
|
57
54
|
expect(helper.url_for_document(doc)).to eq({controller: 'alternate', action: :show, id: doc})
|
58
55
|
end
|
59
56
|
end
|
@@ -61,7 +58,7 @@ describe BlacklightUrlHelper do
|
|
61
58
|
it "should be a polymorphic route if the solr document responds to #to_model with a non-SolrDocument" do
|
62
59
|
some_model = double
|
63
60
|
doc = SolrDocument.new
|
64
|
-
doc.
|
61
|
+
allow(doc).to receive_messages(to_model: some_model)
|
65
62
|
expect(helper.url_for_document(doc)).to eq doc
|
66
63
|
end
|
67
64
|
end
|
@@ -71,7 +68,7 @@ describe BlacklightUrlHelper do
|
|
71
68
|
let(:bookmarks_query_params) {{ :controller=>'bookmarks'}}
|
72
69
|
|
73
70
|
it "should build a link tag to catalog using session[:search] for query params" do
|
74
|
-
helper.
|
71
|
+
allow(helper).to receive(:current_search_session).and_return double(:query_params => query_params)
|
75
72
|
tag = helper.link_back_to_catalog
|
76
73
|
expect(tag).to match /q=query/
|
77
74
|
expect(tag).to match /f=facets/
|
@@ -80,7 +77,7 @@ describe BlacklightUrlHelper do
|
|
80
77
|
end
|
81
78
|
|
82
79
|
it "should build a link tag to bookmarks using session[:search] for query params" do
|
83
|
-
helper.
|
80
|
+
allow(helper).to receive(:current_search_session).and_return double(:query_params => bookmarks_query_params)
|
84
81
|
tag = helper.link_back_to_catalog
|
85
82
|
expect(tag).to match /Back to Bookmarks/
|
86
83
|
expect(tag).to match /\/bookmarks/
|
@@ -89,27 +86,40 @@ describe BlacklightUrlHelper do
|
|
89
86
|
context "with a search context" do
|
90
87
|
|
91
88
|
it "should use the current search session counter and per page information to construct the appropriate pagination context" do
|
92
|
-
helper.
|
93
|
-
helper.
|
89
|
+
allow(helper).to receive_messages(current_search_session: double(query_params: query_params))
|
90
|
+
allow(helper).to receive_messages(search_session: { 'per_page' => 15, 'counter' => 31 })
|
94
91
|
tag = helper.link_back_to_catalog
|
95
92
|
expect(tag).to match /page=3/
|
96
93
|
expect(tag).to match /per_page=15/
|
97
94
|
end
|
98
95
|
|
99
96
|
it "should omit per_page if the value is the same as the default" do
|
100
|
-
helper.
|
101
|
-
helper.
|
97
|
+
allow(helper).to receive_messages(current_search_session: double(query_params: query_params))
|
98
|
+
allow(helper).to receive_messages(search_session: { 'per_page' => 10, 'counter' => 31 })
|
102
99
|
tag = helper.link_back_to_catalog
|
103
100
|
expect(tag).to match /page=4/
|
104
101
|
expect(tag).to_not match /per_page=/
|
105
102
|
end
|
106
103
|
end
|
107
104
|
|
108
|
-
|
105
|
+
context "without current search context" do
|
106
|
+
before do
|
107
|
+
controller.request.assign_parameters(Rails.application.routes, 'catalog', 'show', id: '123')
|
108
|
+
allow(helper).to receive_messages(current_search_session: nil)
|
109
|
+
end
|
110
|
+
|
111
|
+
subject { helper.link_back_to_catalog }
|
112
|
+
|
113
|
+
it "should link to the catalog" do
|
114
|
+
expect(subject).to eq '<a href="/catalog">Back to Search</a>'
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
context "when an alternate scope is passed in" do
|
109
119
|
let(:my_engine) { double("Engine") }
|
110
120
|
|
111
121
|
it "should call url_for on the engine scope" do
|
112
|
-
helper.
|
122
|
+
allow(helper).to receive(:current_search_session).and_return double(:query_params => query_params)
|
113
123
|
expect(my_engine).to receive(:url_for).and_return(url_for(query_params))
|
114
124
|
tag = helper.link_back_to_catalog(route_set: my_engine)
|
115
125
|
expect(tag).to match /Back to Search/
|
@@ -122,28 +132,28 @@ describe BlacklightUrlHelper do
|
|
122
132
|
describe "link_to_query" do
|
123
133
|
it "should build a link tag to catalog using query string (no other params)" do
|
124
134
|
query = "brilliant"
|
125
|
-
helper.
|
135
|
+
allow(helper).to receive_messages(params: {})
|
126
136
|
tag = helper.link_to_query(query)
|
127
137
|
expect(tag).to match /q=#{query}/
|
128
138
|
expect(tag).to match />#{query}<\/a>/
|
129
139
|
end
|
130
140
|
it "should build a link tag to catalog using query string and other existing params" do
|
131
141
|
query = "wonderful"
|
132
|
-
helper.
|
142
|
+
allow(helper).to receive_messages(params: {:qt => "title_search", :per_page => "50"})
|
133
143
|
tag = helper.link_to_query(query)
|
134
144
|
expect(tag).to match /qt=title_search/
|
135
145
|
expect(tag).to match /per_page=50/
|
136
146
|
end
|
137
147
|
it "should ignore existing :page param" do
|
138
148
|
query = "yes"
|
139
|
-
helper.
|
149
|
+
allow(helper).to receive_messages(params: {:page => "2", :qt => "author_search"})
|
140
150
|
tag = helper.link_to_query(query)
|
141
151
|
expect(tag).to match /qt=author_search/
|
142
152
|
expect(tag).to_not match /page/
|
143
153
|
end
|
144
154
|
it "should be html_safe" do
|
145
155
|
query = "brilliant"
|
146
|
-
helper.
|
156
|
+
allow(helper).to receive_messages(params: {:page => "2", :qt => "author_search"})
|
147
157
|
tag = helper.link_to_query(query)
|
148
158
|
expect(tag).to be_html_safe
|
149
159
|
end
|
@@ -164,7 +174,7 @@ describe BlacklightUrlHelper do
|
|
164
174
|
|
165
175
|
describe "params_for_search" do
|
166
176
|
before do
|
167
|
-
helper.
|
177
|
+
allow(helper).to receive_messages(params: { 'default' => 'params'})
|
168
178
|
end
|
169
179
|
|
170
180
|
it "should default to using the controller's params" do
|
@@ -216,7 +226,7 @@ describe BlacklightUrlHelper do
|
|
216
226
|
params[:d] = 'd'
|
217
227
|
end
|
218
228
|
|
219
|
-
result.keys.
|
229
|
+
expect(result.keys).to_not include(:a, :b)
|
220
230
|
expect(result[:c]).to eq 3
|
221
231
|
expect(result[:d]).to eq 'd'
|
222
232
|
end
|
@@ -228,14 +238,14 @@ describe BlacklightUrlHelper do
|
|
228
238
|
|
229
239
|
describe "start_over_path" do
|
230
240
|
it 'should be the catalog path with the current view type' do
|
231
|
-
blacklight_config.
|
232
|
-
helper.
|
241
|
+
allow(blacklight_config).to receive(:view) { { list: nil, abc: nil} }
|
242
|
+
allow(helper).to receive_messages(:blacklight_config => blacklight_config)
|
233
243
|
expect(helper.start_over_path(:view => 'abc')).to eq catalog_index_url(:view => 'abc')
|
234
244
|
end
|
235
245
|
|
236
246
|
it 'should not include the current view type if it is the default' do
|
237
|
-
blacklight_config.
|
238
|
-
helper.
|
247
|
+
allow(blacklight_config).to receive(:view) { { list: nil, asdf: nil} }
|
248
|
+
allow(helper).to receive_messages(:blacklight_config => blacklight_config)
|
239
249
|
expect(helper.start_over_path(:view => 'list')).to eq catalog_index_url
|
240
250
|
end
|
241
251
|
end
|
@@ -306,7 +316,7 @@ describe BlacklightUrlHelper do
|
|
306
316
|
describe "link_to_previous_search" do
|
307
317
|
it "should link to the given search parameters" do
|
308
318
|
params = {}
|
309
|
-
helper.
|
319
|
+
allow(helper).to receive(:render_search_to_s).with(params).and_return "link text"
|
310
320
|
expect(helper.link_to_previous_search({})).to eq helper.link_to("link text", helper.search_action_path)
|
311
321
|
end
|
312
322
|
end
|
@@ -318,7 +328,7 @@ describe BlacklightUrlHelper do
|
|
318
328
|
end
|
319
329
|
|
320
330
|
it "should add facet value for no pre-existing facets" do
|
321
|
-
helper.
|
331
|
+
allow(helper).to receive(:params).and_return(@params_no_existing_facet)
|
322
332
|
|
323
333
|
result_params = helper.add_facet_params("facet_field", "facet_value")
|
324
334
|
expect(result_params[:f]).to be_a_kind_of(Hash)
|
@@ -327,7 +337,7 @@ describe BlacklightUrlHelper do
|
|
327
337
|
end
|
328
338
|
|
329
339
|
it "should add a facet param to existing facet constraints" do
|
330
|
-
helper.
|
340
|
+
allow(helper).to receive(:params).and_return(@params_existing_facets)
|
331
341
|
|
332
342
|
result_params = helper.add_facet_params("facet_field_2", "new_facet_value")
|
333
343
|
|
@@ -345,7 +355,7 @@ describe BlacklightUrlHelper do
|
|
345
355
|
end
|
346
356
|
it "should leave non-facet params alone" do
|
347
357
|
[@params_existing_facets, @params_no_existing_facet].each do |params|
|
348
|
-
helper.
|
358
|
+
allow(helper).to receive(:params).and_return(params)
|
349
359
|
|
350
360
|
result_params = helper.add_facet_params("facet_field_2", "new_facet_value")
|
351
361
|
|
@@ -357,9 +367,9 @@ describe BlacklightUrlHelper do
|
|
357
367
|
end
|
358
368
|
|
359
369
|
it "should replace facets for facets configured as single" do
|
360
|
-
helper.
|
370
|
+
allow(helper).to receive(:facet_configuration_for_field).with('single_value_facet_field').and_return(double(:single => true))
|
361
371
|
params = { :f => { 'single_value_facet_field' => 'other_value'}}
|
362
|
-
helper.
|
372
|
+
allow(helper).to receive(:params).and_return params
|
363
373
|
|
364
374
|
result_params = helper.add_facet_params('single_value_facet_field', 'my_value')
|
365
375
|
|
@@ -403,7 +413,7 @@ describe BlacklightUrlHelper do
|
|
403
413
|
Blacklight::Solr::FacetPaginator.request_keys[:sort] => "index",
|
404
414
|
:id => 'facet_field_name'
|
405
415
|
}
|
406
|
-
helper.
|
416
|
+
allow(helper).to receive(:params).and_return(catalog_facet_params)
|
407
417
|
end
|
408
418
|
it "should not include request parameters used by the facet paginator" do
|
409
419
|
params = helper.add_facet_params_and_redirect("facet_field_2", "facet_value")
|
@@ -427,7 +437,7 @@ describe BlacklightUrlHelper do
|
|
427
437
|
|
428
438
|
describe "#bookmarks_export_url" do
|
429
439
|
it "should be the bookmark url with an encrypted user token" do
|
430
|
-
helper.
|
440
|
+
allow(helper).to receive_messages(encrypt_user_id: 'xyz', current_or_guest_user: double(id: 123))
|
431
441
|
url = helper.bookmarks_export_url(:html)
|
432
442
|
expect(url).to eq helper.bookmarks_url(format: :html, encrypted_user_id: 'xyz')
|
433
443
|
end
|
@@ -18,17 +18,17 @@ describe "Blacklight::Configurable" do
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
it "should inherit the configuration when subclassed" do
|
21
|
-
TestCaseInheritence::Child.blacklight_config.list.
|
21
|
+
expect(TestCaseInheritence::Child.blacklight_config.list).to include(1,2,3)
|
22
22
|
end
|
23
23
|
|
24
24
|
it "inherited version should be a deep copy, not original" do
|
25
|
-
TestCaseInheritence::Child.blacklight_config.
|
25
|
+
expect(TestCaseInheritence::Child.blacklight_config).to_not be(TestCaseInheritence::Parent.blacklight_config)
|
26
26
|
|
27
27
|
TestCaseInheritence::Child.blacklight_config.list << "child_only"
|
28
28
|
|
29
29
|
|
30
|
-
TestCaseInheritence::Child.blacklight_config.list.
|
31
|
-
TestCaseInheritence::Parent.blacklight_config.list.
|
30
|
+
expect(TestCaseInheritence::Child.blacklight_config.list).to include("child_only")
|
31
|
+
expect(TestCaseInheritence::Parent.blacklight_config.list).to_not include("child_only")
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -45,7 +45,7 @@ describe "Blacklight::Configurable" do
|
|
45
45
|
a = Class.new
|
46
46
|
a.send(:include, Blacklight::Configurable)
|
47
47
|
|
48
|
-
a.blacklight_config.default_solr_params.
|
48
|
+
expect(a.blacklight_config.default_solr_params).to be_empty
|
49
49
|
end
|
50
50
|
|
51
51
|
it "should allow the user to provide a default configuration" do
|
@@ -15,7 +15,7 @@ describe "Blacklight::Configuration" do
|
|
15
15
|
|
16
16
|
describe "initialization" do
|
17
17
|
it "should be an OpenStructWithHashAccess" do
|
18
|
-
@config.
|
18
|
+
expect(@config).to be_a_kind_of Blacklight::OpenStructWithHashAccess
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should accept a block for configuration" do
|
@@ -119,7 +119,7 @@ describe "Blacklight::Configuration" do
|
|
119
119
|
|
120
120
|
expect(@config.facet_fields["format"]).to_not be_nil
|
121
121
|
expect(@config.facet_fields["format"]["label"]).to eq "Format"
|
122
|
-
expect(@config.facet_fields["format"]["limit"]).to
|
122
|
+
expect(@config.facet_fields["format"]["limit"]).to be true
|
123
123
|
end
|
124
124
|
|
125
125
|
it "should accept FacetField obj arg" do
|
@@ -136,7 +136,7 @@ describe "Blacklight::Configuration" do
|
|
136
136
|
end
|
137
137
|
|
138
138
|
expect(@config.facet_fields["format"]).to_not be_nil
|
139
|
-
expect(@config.facet_fields["format"].limit).to
|
139
|
+
expect(@config.facet_fields["format"].limit).to be true
|
140
140
|
end
|
141
141
|
|
142
142
|
it "should accept block form" do
|
@@ -175,7 +175,7 @@ describe "Blacklight::Configuration" do
|
|
175
175
|
it "should allow you to not show the facet in the facet bar" do
|
176
176
|
@config.add_facet_field("publication_date", :show=>false)
|
177
177
|
|
178
|
-
expect(@config.facet_fields["publication_date"]['show']).to
|
178
|
+
expect(@config.facet_fields["publication_date"]['show']).to be false
|
179
179
|
end
|
180
180
|
|
181
181
|
it "should raise on nil solr field name" do
|
@@ -183,7 +183,7 @@ describe "Blacklight::Configuration" do
|
|
183
183
|
end
|
184
184
|
|
185
185
|
it "should take wild-carded field names and dereference them to solr fields" do
|
186
|
-
@config.
|
186
|
+
allow(@config).to receive_messages(luke_fields: {
|
187
187
|
"some_field_facet" => {},
|
188
188
|
"another_field_facet" => {},
|
189
189
|
"a_facet_field" => {},
|
@@ -227,7 +227,7 @@ describe "Blacklight::Configuration" do
|
|
227
227
|
end
|
228
228
|
|
229
229
|
it "should take wild-carded field names and dereference them to solr fields" do
|
230
|
-
@config.
|
230
|
+
allow(@config).to receive_messages(luke_fields: {
|
231
231
|
"some_field_display" => {},
|
232
232
|
"another_field_display" => {},
|
233
233
|
"a_facet_field" => {},
|
@@ -272,7 +272,7 @@ describe "Blacklight::Configuration" do
|
|
272
272
|
end
|
273
273
|
|
274
274
|
it "should take wild-carded field names and dereference them to solr fields" do
|
275
|
-
@config.
|
275
|
+
allow(@config).to receive_messages(luke_fields: {
|
276
276
|
"some_field_display" => {},
|
277
277
|
"another_field_display" => {},
|
278
278
|
"a_facet_field" => {},
|
@@ -289,7 +289,7 @@ describe "Blacklight::Configuration" do
|
|
289
289
|
it "should accept hash form" do
|
290
290
|
c = Blacklight::Configuration.new
|
291
291
|
c.add_search_field(:key => "my_search_key")
|
292
|
-
c.search_fields["my_search_key"].
|
292
|
+
expect(c.search_fields["my_search_key"]).to_not be_nil
|
293
293
|
end
|
294
294
|
|
295
295
|
it "should accept two-arg hash form" do
|
@@ -37,6 +37,18 @@ describe 'Blacklight::Solr::FacetPaginator' do
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
+
context 'on the second page of three pages' do
|
41
|
+
subject { Blacklight::Solr::FacetPaginator.new(seven_facet_values, offset: 6, limit: limit) }
|
42
|
+
it { should_not be_first_page }
|
43
|
+
it { should_not be_last_page }
|
44
|
+
its(:current_page) { should eq 2 }
|
45
|
+
its(:prev_page) { should eq 1 }
|
46
|
+
its(:next_page) { should eq 3 }
|
47
|
+
it 'should limit items to limit, if limit is smaller than items.length' do
|
48
|
+
expect(subject.items.size).to eq 6
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
40
52
|
context 'on the first page of one page' do
|
41
53
|
subject { Blacklight::Solr::FacetPaginator.new(six_facet_values, offset: 0, limit: limit) }
|
42
54
|
it { should be_first_page }
|
@@ -65,4 +77,17 @@ describe 'Blacklight::Solr::FacetPaginator' do
|
|
65
77
|
end
|
66
78
|
end
|
67
79
|
|
80
|
+
describe "#as_json" do
|
81
|
+
subject { Blacklight::Solr::FacetPaginator.new([f1], offset: 0, limit: nil).as_json }
|
82
|
+
it "should be well structured" do
|
83
|
+
expect(subject).to eq("items" => [{"hits"=>"792", "value"=>"Book"}], "limit" => 0,
|
84
|
+
"offset" => 0, "sort" => "count")
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe "#total_pages" do
|
89
|
+
# this method is just for API compatability with kaminari 0.16.1
|
90
|
+
subject { Blacklight::Solr::FacetPaginator.new([f1], offset: 0, limit: nil).total_pages }
|
91
|
+
it { should eq -1 }
|
92
|
+
end
|
68
93
|
end
|