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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/VERSION +1 -1
  4. data/app/helpers/blacklight/blacklight_helper_behavior.rb +8 -16
  5. data/app/helpers/blacklight/catalog_helper_behavior.rb +1 -1
  6. data/app/helpers/blacklight/facets_helper_behavior.rb +1 -1
  7. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +2 -1
  8. data/app/helpers/blacklight/url_helper_behavior.rb +5 -1
  9. data/app/views/catalog/_view_type_group.html.erb +1 -1
  10. data/blacklight.gemspec +2 -1
  11. data/gemfiles/rails3.gemfile +1 -1
  12. data/gemfiles/rails4.1.gemfile +1 -1
  13. data/gemfiles/rails4.gemfile +1 -1
  14. data/lib/blacklight/catalog.rb +0 -1
  15. data/lib/blacklight/solr/facet_paginator.rb +22 -10
  16. data/lib/generators/blacklight/install_generator.rb +1 -1
  17. data/spec/controllers/bookmarks_controller_spec.rb +6 -6
  18. data/spec/controllers/catalog_controller_spec.rb +48 -48
  19. data/spec/features/alternate_controller_spec.rb +3 -3
  20. data/spec/features/record_view_spec.rb +1 -1
  21. data/spec/features/search_filters_spec.rb +4 -4
  22. data/spec/features/search_results_spec.rb +12 -12
  23. data/spec/helpers/blacklight_helper_spec.rb +83 -83
  24. data/spec/helpers/catalog_helper_spec.rb +37 -37
  25. data/spec/helpers/configuration_helper_spec.rb +39 -39
  26. data/spec/helpers/facets_helper_spec.rb +37 -37
  27. data/spec/helpers/render_constraints_helper_spec.rb +6 -1
  28. data/spec/helpers/search_history_constraints_helper_spec.rb +9 -9
  29. data/spec/helpers/url_helper_spec.rb +49 -39
  30. data/spec/lib/blacklight/configurable_spec.rb +5 -5
  31. data/spec/lib/blacklight/configuration_spec.rb +8 -8
  32. data/spec/lib/blacklight/facet_paginator_spec.rb +25 -0
  33. data/spec/lib/blacklight/routes_spec.rb +4 -4
  34. data/spec/lib/blacklight/search_fields_spec.rb +3 -3
  35. data/spec/lib/blacklight/solr/document_spec.rb +2 -2
  36. data/spec/lib/blacklight/solr_helper_spec.rb +37 -37
  37. data/spec/lib/blacklight/solr_response/group_response_spec.rb +1 -1
  38. data/spec/lib/blacklight/solr_response_spec.rb +31 -31
  39. data/spec/lib/document_presenter_spec.rb +41 -41
  40. data/spec/lib/tasks/blacklight_task_spec.rb +1 -1
  41. data/spec/models/record_mailer_spec.rb +1 -1
  42. data/spec/models/search_spec.rb +1 -1
  43. data/spec/routing/catalog_routing_spec.rb +2 -2
  44. data/spec/spec_helper.rb +1 -0
  45. data/spec/support/include_text.rb +2 -3
  46. data/spec/views/catalog/_constraints.html.erb_spec.rb +7 -7
  47. data/spec/views/catalog/_document.html.erb_spec.rb +4 -4
  48. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +2 -2
  49. data/spec/views/catalog/_facets.html.erb_spec.rb +6 -6
  50. data/spec/views/catalog/_index_default.erb_spec.rb +10 -10
  51. data/spec/views/catalog/_index_header_default.html.erb_spec.rb +5 -5
  52. data/spec/views/catalog/_show_default.erb_spec.rb +10 -10
  53. data/spec/views/catalog/_show_sidebar.erb_spec.rb +5 -5
  54. data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +1 -1
  55. data/spec/views/catalog/_thumbnail_default.erb_spec.rb +4 -4
  56. data/spec/views/catalog/_view_type_group.html.erb_spec.rb +5 -2
  57. data/spec/views/catalog/facet.html.erb_spec.rb +5 -5
  58. data/spec/views/catalog/index.atom.builder_spec.rb +2 -2
  59. data/spec/views/catalog/index.html.erb_spec.rb +5 -5
  60. data/spec/views/catalog/show.html.erb_spec.rb +8 -8
  61. data/tasks/blacklight.rake +1 -2
  62. metadata +18 -4
@@ -7,8 +7,8 @@ describe Blacklight::Routes do
7
7
  describe "without constraints" do
8
8
  let(:options) { Hash.new }
9
9
  it "should define the resources" do
10
- router.should_receive(:resources).with(:solr_document, {:path=>:records, :controller=>:records, :only=>[:show]})
11
- router.should_receive(:resources).with(:records, :only=>[:show])
10
+ allow(router).to receive(:resources).with(:solr_document, {:path=>:records, :controller=>:records, :only=>[:show]})
11
+ allow(router).to receive(:resources).with(:records, :only=>[:show])
12
12
  subject.solr_document(:records)
13
13
  end
14
14
  end
@@ -16,8 +16,8 @@ describe Blacklight::Routes do
16
16
  describe "with constraints" do
17
17
  let(:options) { { :constraints => {id: /[a-z]+/, format: false } } }
18
18
  it "should define the resources" do
19
- router.should_receive(:resources).with(:solr_document, {:path=>:records, :controller=>:records, :only=>[:show], :constraints=>{:id=>/[a-z]+/, :format=>false} })
20
- router.should_receive(:resources).with(:records, :only=>[:show], :constraints=>{:id=>/[a-z]+/, :format=>false})
19
+ allow(router).to receive(:resources).with(:solr_document, {:path=>:records, :controller=>:records, :only=>[:show], :constraints=>{:id=>/[a-z]+/, :format=>false} })
20
+ allow(router).to receive(:resources).with(:records, :only=>[:show], :constraints=>{:id=>/[a-z]+/, :format=>false})
21
21
  subject.solr_document(:records)
22
22
  end
23
23
  end
@@ -20,7 +20,7 @@ describe Blacklight::SearchFields do
20
20
 
21
21
  before(:each) do
22
22
  @search_field_obj = MockConfig.new
23
- @search_field_obj.stub(:blacklight_config).and_return(@config)
23
+ allow(@search_field_obj).to receive(:blacklight_config).and_return(@config)
24
24
  end
25
25
 
26
26
  it "should return search field list with calculated :label when needed" do
@@ -50,7 +50,7 @@ describe Blacklight::SearchFields do
50
50
  @bad_config = MockConfig.new
51
51
  end
52
52
  it "should raise exception on #search_field_list" do
53
- expect { @bad_config.stub(:blacklight_config).and_return(Blacklight::Configuration.new { |config|
53
+ expect { allow(@bad_config).to receive(:blacklight_config).and_return(Blacklight::Configuration.new { |config|
54
54
  config.add_search_field :label => 'All Fields', :qt => 'all_fields'
55
55
  config.add_search_field 'title', :qt => 'title_search'
56
56
  }) }.to raise_error
@@ -62,7 +62,7 @@ describe Blacklight::SearchFields do
62
62
  @bad_config = MockConfig.new
63
63
  end
64
64
  it "should raise on #search_field_list" do
65
- expect { @bad_config.stub(:blacklight_config).and_return(Blacklight::Configuration.new { |config|
65
+ expect { allow(@bad_config).to receive(:blacklight_config).and_return(Blacklight::Configuration.new { |config|
66
66
  config.add_search_field 'my_key', :label => 'All Fields'
67
67
  config.add_search_field 'my_key', :label => 'title'
68
68
 
@@ -160,7 +160,7 @@ describe "Blacklight::Solr::Document" do
160
160
  # registration in an after, sorry.
161
161
  end
162
162
  it "registers format" do
163
- expect(defined?("Mime::MOCK2")).to be_true
163
+ expect(defined?("Mime::MOCK2")).to be_truthy
164
164
  end
165
165
  it "registers as alias only" do
166
166
  expect(Mime::Type.lookup("application/mock2")).not_to equal Mime::Type.lookup_by_extension("mock2")
@@ -176,7 +176,7 @@ describe "Blacklight::Solr::Document" do
176
176
  it "should know if a document is exportable" do
177
177
  doc = MockDocument.new
178
178
  doc.will_export_as(:marc, "application/marc")
179
- expect(doc.exports_as?(:marc)).to be_true
179
+ expect(doc.exports_as?(:marc)).to be true
180
180
  end
181
181
  end
182
182
 
@@ -55,25 +55,25 @@ describe Blacklight::SolrHelper do
55
55
  describe "#find" do
56
56
  it "should use the configured solr path" do
57
57
  blacklight_config.solr_path = 'xyz'
58
- blacklight_solr.should_receive(:send_and_receive).with('xyz', anything).and_return("{}".to_json)
58
+ allow(blacklight_solr).to receive(:send_and_receive).with('xyz', anything).and_return("{}".to_json)
59
59
  expect(subject.find({})).to be_a_kind_of Blacklight::SolrResponse
60
60
  end
61
61
 
62
62
  it "should override the configured solr path" do
63
63
  blacklight_config.solr_path = 'xyz'
64
- blacklight_solr.should_receive(:send_and_receive).with('abc', anything).and_return("{}".to_json)
64
+ allow(blacklight_solr).to receive(:send_and_receive).with('abc', anything).and_return("{}".to_json)
65
65
  expect(subject.find('abc', {})).to be_a_kind_of Blacklight::SolrResponse
66
66
  end
67
67
 
68
68
  it "should use a default :qt param" do
69
69
  blacklight_config.qt = 'xyz'
70
- blacklight_solr.should_receive(:send_and_receive).with('select', hash_including(params: { qt: 'xyz'})).and_return("{}".to_json)
70
+ allow(blacklight_solr).to receive(:send_and_receive).with('select', hash_including(params: { qt: 'xyz'})).and_return("{}".to_json)
71
71
  expect(subject.find({})).to be_a_kind_of Blacklight::SolrResponse
72
72
  end
73
73
 
74
74
  it "should use the provided :qt param" do
75
75
  blacklight_config.qt = 'xyz'
76
- blacklight_solr.should_receive(:send_and_receive).with('select', hash_including(params: { qt: 'abc'})).and_return("{}".to_json)
76
+ allow(blacklight_solr).to receive(:send_and_receive).with('select', hash_including(params: { qt: 'abc'})).and_return("{}".to_json)
77
77
  expect(subject.find({qt: 'abc'})).to be_a_kind_of Blacklight::SolrResponse
78
78
  end
79
79
 
@@ -82,7 +82,7 @@ describe Blacklight::SolrHelper do
82
82
 
83
83
  it "defaults to get" do
84
84
  expect(blacklight_config.http_method).to eq :get
85
- blacklight_solr.should_receive(:send_and_receive) do |path, params|
85
+ allow(blacklight_solr).to receive(:send_and_receive) do |path, params|
86
86
  expect(path).to eq 'select'
87
87
  expect(params[:method]).to eq :get
88
88
  expect(params[:params]).to include(:q)
@@ -96,7 +96,7 @@ describe Blacklight::SolrHelper do
96
96
 
97
97
  it "keep value set to post" do
98
98
  expect(blacklight_config.http_method).to eq :post
99
- blacklight_solr.should_receive(:send_and_receive) do |path, params|
99
+ allow(blacklight_solr).to receive(:send_and_receive) do |path, params|
100
100
  expect(path).to eq 'select'
101
101
  expect(params[:method]).to eq :post
102
102
  expect(params[:data]).to include(:q)
@@ -121,7 +121,7 @@ describe Blacklight::SolrHelper do
121
121
  it "allows customization of solr_search_params_logic" do
122
122
  # Normally you'd include a new module into (eg) your CatalogController
123
123
  # but a sub-class defininig it directly is simpler for test.
124
- subject.stub(:add_foo_to_solr_params) do |solr_params, user_params|
124
+ allow(subject).to receive(:add_foo_to_solr_params) do |solr_params, user_params|
125
125
  solr_params[:wt] = "TESTING"
126
126
  end
127
127
 
@@ -260,19 +260,19 @@ describe Blacklight::SolrHelper do
260
260
  end
261
261
 
262
262
  it "should pass date-type fields through" do
263
- blacklight_config.facet_fields.stub(:[]).with('facet_name').and_return(double(:date => true, :query => nil, :tag => nil))
263
+ allow(blacklight_config.facet_fields).to receive(:[]).with('facet_name').and_return(double(:date => true, :query => nil, :tag => nil))
264
264
 
265
265
  expect(subject.send(:facet_value_to_fq_string, "facet_name", "2012-01-01")).to eq "facet_name:2012\\-01\\-01"
266
266
  end
267
267
 
268
268
  it "should escape datetime-type fields" do
269
- blacklight_config.facet_fields.stub(:[]).with('facet_name').and_return(double(:date => true, :query => nil, :tag => nil))
269
+ allow(blacklight_config.facet_fields).to receive(:[]).with('facet_name').and_return(double(:date => true, :query => nil, :tag => nil))
270
270
 
271
271
  expect(subject.send(:facet_value_to_fq_string, "facet_name", "2003-04-09T00:00:00Z")).to eq "facet_name:2003\\-04\\-09T00\\:00\\:00Z"
272
272
  end
273
273
 
274
274
  it "should format Date objects correctly" do
275
- blacklight_config.facet_fields.stub(:[]).with('facet_name').and_return(double(:date => nil, :query => nil, :tag => nil))
275
+ allow(blacklight_config.facet_fields).to receive(:[]).with('facet_name').and_return(double(:date => nil, :query => nil, :tag => nil))
276
276
  d = DateTime.parse("2003-04-09T00:00:00")
277
277
  expect(subject.send(:facet_value_to_fq_string, "facet_name", d)).to eq "facet_name:2003\\-04\\-09T00\\:00\\:00Z"
278
278
  end
@@ -282,7 +282,7 @@ describe Blacklight::SolrHelper do
282
282
  end
283
283
 
284
284
  it "should add tag local parameters" do
285
- blacklight_config.facet_fields.stub(:[]).with('facet_name').and_return(double(:query => nil, :tag => 'asdf', :date => nil))
285
+ allow(blacklight_config.facet_fields).to receive(:[]).with('facet_name').and_return(double(:query => nil, :tag => 'asdf', :date => nil))
286
286
 
287
287
  expect(subject.send(:facet_value_to_fq_string, "facet_name", true)).to eq "{!tag=asdf}facet_name:true"
288
288
  expect(subject.send(:facet_value_to_fq_string, "facet_name", "my value")).to eq "{!raw f=facet_name tag=asdf}my value"
@@ -334,7 +334,7 @@ describe Blacklight::SolrHelper do
334
334
 
335
335
  describe "overriding of qt parameter" do
336
336
  it "should return the correct overriden parameter" do
337
- subject.stub(params: { qt: 'overridden' })
337
+ allow(subject).to receive_messages(params: { qt: 'overridden' })
338
338
 
339
339
  expect(subject.solr_search_params[:qt]).to eq "overridden"
340
340
  end
@@ -397,7 +397,7 @@ describe Blacklight::SolrHelper do
397
397
  end
398
398
 
399
399
  it "should add sort parameters" do
400
- expect(solr_parameters[:facet]).to be_true
400
+ expect(solr_parameters[:facet]).to be true
401
401
 
402
402
  expect(solr_parameters[:'facet.field']).to include('test_field')
403
403
  expect(solr_parameters[:'f.test_field.facet.sort']).to eq 'count'
@@ -494,7 +494,7 @@ describe Blacklight::SolrHelper do
494
494
  end
495
495
 
496
496
  before do
497
- subject.stub params: {:search_field => "test_field", :q => "test query", "facet.field" => "extra_facet"}
497
+ allow(subject).to receive_messages params: {:search_field => "test_field", :q => "test query", "facet.field" => "extra_facet"}
498
498
  end
499
499
 
500
500
  it "should merge parameters from search_field definition" do
@@ -579,7 +579,7 @@ describe Blacklight::SolrHelper do
579
579
  end
580
580
 
581
581
  before do
582
- subject.stub params: {:search_field => "custom_author_key", :q => "query"}
582
+ allow(subject).to receive_messages params: {:search_field => "custom_author_key", :q => "query"}
583
583
  end
584
584
 
585
585
  before do
@@ -666,7 +666,7 @@ describe Blacklight::SolrHelper do
666
666
 
667
667
  describe 'if facet_list_limit is defined in controller' do
668
668
  before do
669
- subject.stub facet_list_limit: 1000
669
+ allow(subject).to receive_messages facet_list_limit: 1000
670
670
  end
671
671
  it 'uses controller method for limit' do
672
672
  solr_params = subject.solr_facet_params(@facet_field)
@@ -710,7 +710,7 @@ describe Blacklight::SolrHelper do
710
710
  end
711
711
  describe "for facet limit parameters config ed" do
712
712
  before do
713
- subject.stub params: {:search_field => "test_field", :q => "test query"}
713
+ allow(subject).to receive_messages params: {:search_field => "test_field", :q => "test query"}
714
714
  @generated_params = subject.solr_search_params
715
715
  end
716
716
 
@@ -750,8 +750,8 @@ describe Blacklight::SolrHelper do
750
750
  end
751
751
 
752
752
  it "should use the configured request handler " do
753
- blacklight_config.stub(:default_solr_params).and_return({:qt => 'custom_request_handler'})
754
- blacklight_solr.should_receive(:send_and_receive) do |path, params|
753
+ allow(blacklight_config).to receive(:default_solr_params).and_return({:qt => 'custom_request_handler'})
754
+ allow(blacklight_solr).to receive(:send_and_receive) do |path, params|
755
755
  expect(path).to eq 'select'
756
756
  expect(params[:params]['facet.field']).to eq ["format", "{!ex=pub_date_single}pub_date", "subject_topic_facet", "language_facet", "lc_1letter_facet", "subject_geo_facet", "subject_era_facet"]
757
757
  expect(params[:params]["facet.query"]).to eq ["pub_date:[#{5.years.ago.year} TO *]", "pub_date:[#{10.years.ago.year} TO *]", "pub_date:[#{25.years.ago.year} TO *]"]
@@ -797,7 +797,7 @@ describe Blacklight::SolrHelper do
797
797
  let(:blacklight_config) { copy_of_catalog_config }
798
798
 
799
799
  before do
800
- subject.stub grouped_key_for_results: 'title_sort'
800
+ allow(subject).to receive_messages grouped_key_for_results: 'title_sort'
801
801
  (@solr_response, @document_list) = subject.get_search_results({:q => @all_docs_query}, :group => true, :'group.field' => ['pub_date_sort', 'title_sort'])
802
802
  end
803
803
 
@@ -1048,14 +1048,14 @@ describe Blacklight::SolrHelper do
1048
1048
  end
1049
1049
 
1050
1050
  it "should use a provided document request handler " do
1051
- blacklight_config.stub(:document_solr_request_handler => 'document')
1052
- blacklight_solr.should_receive(:send_and_receive).with('select', kind_of(Hash)).and_return({'response'=>{'docs'=>[]}})
1051
+ allow(blacklight_config).to receive_messages(:document_solr_request_handler => 'document')
1052
+ allow(blacklight_solr).to receive(:send_and_receive).with('select', kind_of(Hash)).and_return({'response'=>{'docs'=>[]}})
1053
1053
  expect { subject.get_solr_response_for_doc_id(@doc_id)}.to raise_error Blacklight::Exceptions::InvalidSolrID
1054
1054
  end
1055
1055
 
1056
1056
  it "should use a provided document solr path " do
1057
- blacklight_config.stub(:document_solr_path => 'get')
1058
- blacklight_solr.should_receive(:send_and_receive).with('get', kind_of(Hash)).and_return({'response'=>{'docs'=>[]}})
1057
+ allow(blacklight_config).to receive_messages(:document_solr_path => 'get')
1058
+ allow(blacklight_solr).to receive(:send_and_receive).with('get', kind_of(Hash)).and_return({'response'=>{'docs'=>[]}})
1059
1059
  expect { subject.get_solr_response_for_doc_id(@doc_id)}.to raise_error Blacklight::Exceptions::InvalidSolrID
1060
1060
  end
1061
1061
 
@@ -1085,7 +1085,7 @@ describe Blacklight::SolrHelper do
1085
1085
  end
1086
1086
 
1087
1087
  it "should use the document_unique_id_param configuration" do
1088
- blacklight_config.stub(document_unique_id_param: :ids)
1088
+ allow(blacklight_config).to receive_messages(document_unique_id_param: :ids)
1089
1089
  doc_params = subject.solr_doc_params('asdfg')
1090
1090
  expect(doc_params[:ids]).to eq 'asdfg'
1091
1091
  end
@@ -1105,7 +1105,7 @@ describe Blacklight::SolrHelper do
1105
1105
  =begin
1106
1106
  # Can't test this properly without updating the "document" request handler in solr
1107
1107
  it "should respect the configuration-supplied unique id" do
1108
- SolrDocument.should_receive(:unique_key).and_return("title_display")
1108
+ allow(SolrDocument).to receive(:unique_key).and_return("title_display")
1109
1109
  @response, @document = @solr_helper.get_solr_response_for_doc_id('"Strong Medicine speaks"')
1110
1110
  @document.id).to eq '"Strong Medicine speaks"'
1111
1111
  @document.get(:id)).to eq 2007020969
@@ -1135,7 +1135,7 @@ describe Blacklight::SolrHelper do
1135
1135
 
1136
1136
  doc2 = get_single_doc_via_search(@all_docs_query, nil, @doc_row, @multi_facets)
1137
1137
  it "should limit search result by facets when supplied" do
1138
- response2.docs.numFound.should_be < response.docs.numFound
1138
+ response2expect(.docs.numFound).to_be < response.docs.numFound
1139
1139
  end
1140
1140
 
1141
1141
  it "should not have facets in the response" do
@@ -1175,7 +1175,7 @@ describe Blacklight::SolrHelper do
1175
1175
  expect(solr_response.spelling.words).to include('political') # more freq
1176
1176
  =begin
1177
1177
  # when we can have multiple suggestions
1178
- solr_response.spelling.words.should_not include('policy') # less freq
1178
+ expect(solr_response.spelling.words).to_not include('policy') # less freq
1179
1179
  solr_response.spelling.words).to include('politics') # more freq
1180
1180
  solr_response.spelling.words).to include('political') # more freq
1181
1181
  =end
@@ -1197,7 +1197,7 @@ describe Blacklight::SolrHelper do
1197
1197
  end
1198
1198
 
1199
1199
  it 'search results for multiple terms query with just-poor-enough-terms should have spelling suggestions for each term' do
1200
- pending
1200
+ skip
1201
1201
  # get_spelling_suggestion("histo politica").should_not be_nil
1202
1202
  end
1203
1203
 
@@ -1215,7 +1215,7 @@ describe Blacklight::SolrHelper do
1215
1215
 
1216
1216
  it "facet_limit_hash should return hash with key being facet_field and value being configured limit" do
1217
1217
  # facet_limit_hash has been removed from solrhelper in refactor. should it go back?
1218
- pending "facet_limit_hash has been removed from solrhelper in refactor. should it go back?"
1218
+ skip "facet_limit_hash has been removed from solrhelper in refactor. should it go back?"
1219
1219
  expect(subject.facet_limit_hash).to eq blacklight_config[:facet][:limits]
1220
1220
  end
1221
1221
  it "should handle no facet_limits in config" do
@@ -1238,14 +1238,14 @@ describe Blacklight::SolrHelper do
1238
1238
  end
1239
1239
  it "should get from @response facet.limit if available" do
1240
1240
  @response = double()
1241
- @response.stub(:facet_by_field_name).with("language_facet").and_return(double(limit: nil))
1241
+ allow(@response).to receive(:facet_by_field_name).with("language_facet").and_return(double(limit: nil))
1242
1242
  subject.instance_variable_set(:@response, @response)
1243
1243
  blacklight_config.facet_fields['language_facet'].limit = 10
1244
1244
  expect(subject.facet_limit_for("language_facet")).to eq 10
1245
1245
  end
1246
1246
  it "should get the limit from the facet field in @response" do
1247
1247
  @response = double()
1248
- @response.stub(:facet_by_field_name).with("language_facet").and_return(double(limit: 16))
1248
+ allow(@response).to receive(:facet_by_field_name).with("language_facet").and_return(double(limit: 16))
1249
1249
  subject.instance_variable_set(:@response, @response)
1250
1250
  expect(subject.facet_limit_for("language_facet")).to eq 15
1251
1251
  end
@@ -1268,20 +1268,20 @@ describe Blacklight::SolrHelper do
1268
1268
  describe "#get_solr_response_for_field_values" do
1269
1269
  before do
1270
1270
  @mock_response = double()
1271
- @mock_response.stub(documents: [])
1271
+ allow(@mock_response).to receive_messages(documents: [])
1272
1272
  end
1273
1273
  it "should contruct a solr query based on the field and value pair" do
1274
- subject.should_receive(:find).with(hash_including(:q => "field_name:(value)")).and_return(@mock_response)
1274
+ allow(subject).to receive(:find).with(hash_including(:q => "field_name:(value)")).and_return(@mock_response)
1275
1275
  subject.get_solr_response_for_field_values('field_name', 'value')
1276
1276
  end
1277
1277
 
1278
1278
  it "should OR multiple values together" do
1279
- subject.should_receive(:find).with(hash_including(:q => "field_name:(a OR b)")).and_return(@mock_response)
1279
+ allow(subject).to receive(:find).with(hash_including(:q => "field_name:(a OR b)")).and_return(@mock_response)
1280
1280
  subject.get_solr_response_for_field_values('field_name', ['a', 'b'])
1281
1281
  end
1282
1282
 
1283
1283
  it "should escape crazy identifiers" do
1284
- subject.should_receive(:find).with(hash_including(:q => "field_name:(\"h://\\\"\\\'\")")).and_return(@mock_response)
1284
+ allow(subject).to receive(:find).with(hash_including(:q => "field_name:(\"h://\\\"\\\'\")")).and_return(@mock_response)
1285
1285
  subject.get_solr_response_for_field_values('field_name', 'h://"\'')
1286
1286
  end
1287
1287
  end
@@ -1294,7 +1294,7 @@ describe Blacklight::SolrHelper do
1294
1294
  # more like this
1295
1295
  # nearby on shelf
1296
1296
  it "should raise a Blacklight exception if RSolr can't connect to the Solr instance" do
1297
- blacklight_solr.stub(:send_and_receive).and_raise(Errno::ECONNREFUSED)
1297
+ allow(blacklight_solr).to receive(:send_and_receive).and_raise(Errno::ECONNREFUSED)
1298
1298
  expect { subject.find(:a => 123) }.to raise_exception(/Unable to connect to Solr instance/)
1299
1299
  end
1300
1300
 
@@ -12,7 +12,7 @@ describe Blacklight::SolrResponse::GroupResponse do
12
12
 
13
13
  describe "groups" do
14
14
  it "should return an array of Groups" do
15
- response.grouped.should be_a Array
15
+ expect(response.grouped).to be_a Array
16
16
 
17
17
  expect(group.groups).to have(2).items
18
18
  group.groups.each do |group|
@@ -28,16 +28,16 @@ describe Blacklight::SolrResponse do
28
28
  end
29
29
 
30
30
  it 'should provide facet helpers' do
31
- r.facets.size.should == 2
31
+ expect(r.facets.size).to eq 2
32
32
 
33
33
  field_names = r.facets.collect{|facet|facet.name}
34
- field_names.include?('cat').should == true
35
- field_names.include?('manu').should == true
34
+ expect(field_names.include?('cat')).to be true
35
+ expect(field_names.include?('manu')).to be true
36
36
 
37
37
  first_facet = r.facets.select { |x| x.name == 'cat'}.first
38
- first_facet.name.should == 'cat'
38
+ expect(first_facet.name).to eq 'cat'
39
39
 
40
- first_facet.items.size.should == 10
40
+ expect(first_facet.items.size).to eq 10
41
41
 
42
42
  expected = "electronics - 14, memory - 3, card - 2, connector - 2, drive - 2, graphics - 2, hard - 2, monitor - 2, search - 2, software - 2"
43
43
  received = first_facet.items.collect do |item|
@@ -73,7 +73,7 @@ describe Blacklight::SolrResponse do
73
73
  it "should provide a model name helper" do
74
74
  first_doc_model_name = double(:human => 'xyz')
75
75
 
76
- r.docs.first.stub(:model_name).and_return first_doc_model_name
76
+ allow(r.docs.first).to receive(:model_name).and_return first_doc_model_name
77
77
 
78
78
  expect(r.model_name).to eq first_doc_model_name
79
79
  end
@@ -81,33 +81,33 @@ describe Blacklight::SolrResponse do
81
81
  describe "FacetItem" do
82
82
  it "should work with a field,value tuple" do
83
83
  item = Blacklight::SolrResponse::Facets::FacetItem.new('value', 15)
84
- item.value.should == 'value'
85
- item.hits.should == 15
84
+ expect(item.value).to eq 'value'
85
+ expect(item.hits).to eq 15
86
86
  end
87
87
 
88
88
  it "should work with a field,value + hash triple" do
89
89
  item = Blacklight::SolrResponse::Facets::FacetItem.new('value', 15, :a => 1, :value => 'ignored')
90
- item.value.should == 'value'
91
- item.hits.should == 15
92
- item.a.should == 1
90
+ expect(item.value).to eq 'value'
91
+ expect(item.hits).to eq 15
92
+ expect(item.a).to eq 1
93
93
  end
94
94
 
95
95
  it "should work like an openstruct" do
96
96
  item = Blacklight::SolrResponse::Facets::FacetItem.new(:value => 'value', :hits => 15)
97
97
 
98
- item.hits.should == 15
99
- item.value.should == 'value'
100
- item.should be_a_kind_of(OpenStruct)
98
+ expect(item.hits).to eq 15
99
+ expect(item.value).to eq 'value'
100
+ expect(item).to be_a_kind_of(OpenStruct)
101
101
  end
102
102
 
103
103
  it "should provide a label accessor" do
104
104
  item = Blacklight::SolrResponse::Facets::FacetItem.new('value', :hits => 15)
105
- item.label.should == 'value'
105
+ expect(item.label).to eq 'value'
106
106
  end
107
107
 
108
108
  it "should use a provided label" do
109
109
  item = Blacklight::SolrResponse::Facets::FacetItem.new('value', 15, :label => 'custom label')
110
- item.label.should == 'custom label'
110
+ expect(item.label).to eq 'custom label'
111
111
 
112
112
  end
113
113
 
@@ -116,78 +116,78 @@ describe Blacklight::SolrResponse do
116
116
  it 'should return the correct value when calling facet_by_field_name' do
117
117
  r = create_response
118
118
  facet = r.facet_by_field_name('cat')
119
- facet.name.should == 'cat'
119
+ expect(facet.name).to eq 'cat'
120
120
  end
121
121
 
122
122
  it 'should provide the responseHeader params' do
123
123
  raw_response = eval(mock_query_response)
124
124
  raw_response['responseHeader']['params']['test'] = :test
125
125
  r = Blacklight::SolrResponse.new(raw_response, raw_response['params'])
126
- r.params['test'].should == :test
126
+ expect(r.params['test']).to eq :test
127
127
  end
128
128
 
129
129
  it 'should provide the solr-returned params and "rows" should be 11' do
130
130
  raw_response = eval(mock_query_response)
131
131
  r = Blacklight::SolrResponse.new(raw_response, {})
132
- r.params[:rows].to_s.should == '11'
132
+ expect(r.params[:rows].to_s).to eq '11'
133
133
  end
134
134
 
135
135
  it 'should provide the ruby request params if responseHeader["params"] does not exist' do
136
136
  raw_response = eval(mock_query_response)
137
137
  raw_response.delete 'responseHeader'
138
138
  r = Blacklight::SolrResponse.new(raw_response, :rows => 999)
139
- r.params[:rows].to_s.should == '999'
139
+ expect(r.params[:rows].to_s).to eq '999'
140
140
  end
141
141
 
142
142
  it 'should provide spelling suggestions for regular spellcheck results' do
143
143
  raw_response = eval(mock_response_with_spellcheck)
144
144
  r = Blacklight::SolrResponse.new(raw_response, {})
145
- r.spelling.words.should include("dell")
146
- r.spelling.words.should include("ultrasharp")
145
+ expect(r.spelling.words).to include("dell")
146
+ expect(r.spelling.words).to include("ultrasharp")
147
147
  end
148
148
 
149
149
  it 'should provide spelling suggestions for extended spellcheck results' do
150
150
  raw_response = eval(mock_response_with_spellcheck_extended)
151
151
  r = Blacklight::SolrResponse.new(raw_response, {})
152
- r.spelling.words.should include("dell")
153
- r.spelling.words.should include("ultrasharp")
152
+ expect(r.spelling.words).to include("dell")
153
+ expect(r.spelling.words).to include("ultrasharp")
154
154
  end
155
155
 
156
156
  it 'should provide no spelling suggestions when extended results and suggestion frequency is the same as original query frequency' do
157
157
  raw_response = eval(mock_response_with_spellcheck_same_frequency)
158
158
  r = Blacklight::SolrResponse.new(raw_response, {})
159
- r.spelling.words.should == []
159
+ expect(r.spelling.words).to eq []
160
160
  end
161
161
 
162
162
  it 'should provide spelling suggestions for a regular spellcheck results with a collation' do
163
163
  raw_response = eval(mock_response_with_spellcheck_collation)
164
164
  r = Blacklight::SolrResponse.new(raw_response, {})
165
- r.spelling.words.should include("dell")
166
- r.spelling.words.should include("ultrasharp")
165
+ expect(r.spelling.words).to include("dell")
166
+ expect(r.spelling.words).to include("ultrasharp")
167
167
  end
168
168
 
169
169
  it 'should provide spelling suggestion collation' do
170
170
  raw_response = eval(mock_response_with_spellcheck_collation)
171
171
  r = Blacklight::SolrResponse.new(raw_response, {})
172
- r.spelling.collation.should == 'dell ultrasharp'
172
+ expect(r.spelling.collation).to eq 'dell ultrasharp'
173
173
  end
174
174
 
175
175
  it "should provide MoreLikeThis suggestions" do
176
176
  raw_response = eval(mock_response_with_more_like_this)
177
177
  r = Blacklight::SolrResponse.new(raw_response, {})
178
- r.more_like(double(:id => '79930185')).should have(2).items
178
+ expect(r.more_like(double(:id => '79930185'))).to have(2).items
179
179
  end
180
180
 
181
181
  it "should be empty when the response has no results" do
182
182
  r = Blacklight::SolrResponse.new({}, {})
183
- r.stub(:total => 0)
183
+ allow(r).to receive_messages(:total => 0)
184
184
  expect(r).to be_empty
185
185
  end
186
186
 
187
187
  describe "#export_formats" do
188
188
  it "should collect the unique export formats for the current response" do
189
189
  r = Blacklight::SolrResponse.new({}, {})
190
- r.stub(documents: [double(:export_formats => { a: 1, b: 2}), double(:export_formats => { b: 1, c: 2})])
190
+ allow(r).to receive_messages(documents: [double(:export_formats => { a: 1, b: 2}), double(:export_formats => { b: 1, c: 2})])
191
191
  expect(r.export_formats).to include :a, :b
192
192
  end
193
193
  end