blacklight 4.7.0 → 4.8.0

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 (97) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +13 -12
  4. data/Gemfile +37 -2
  5. data/VERSION +1 -1
  6. data/app/assets/stylesheets/blacklight/{_blacklight_base.css.scss → _blacklight_base.scss} +0 -0
  7. data/app/assets/stylesheets/blacklight/{_bookmark.css.scss → _bookmark.scss} +0 -0
  8. data/app/assets/stylesheets/blacklight/{_catalog.css.scss → _catalog.scss} +0 -0
  9. data/app/assets/stylesheets/blacklight/{_dropdown.css.scss → _dropdown.scss} +0 -0
  10. data/app/assets/stylesheets/blacklight/{_facets.css.scss → _facets.scss} +0 -0
  11. data/app/assets/stylesheets/blacklight/{_footer.css.scss → _footer.scss} +0 -0
  12. data/app/assets/stylesheets/blacklight/{_group.css.scss → _group.scss} +0 -0
  13. data/app/assets/stylesheets/blacklight/{_header.css.scss → _header.scss} +0 -0
  14. data/app/assets/stylesheets/blacklight/{_layout.css.scss → _layout.scss} +0 -0
  15. data/app/assets/stylesheets/blacklight/{_mixins.css.scss → _mixins.scss} +0 -0
  16. data/app/assets/stylesheets/blacklight/{_modal.css.scss → _modal.scss} +0 -0
  17. data/app/assets/stylesheets/blacklight/{_print.css.scss → _print.scss} +0 -0
  18. data/app/assets/stylesheets/blacklight/{_responsive.css.scss → _responsive.scss} +0 -0
  19. data/app/assets/stylesheets/blacklight/{_search_history.css.scss → _search_history.scss} +0 -0
  20. data/app/assets/stylesheets/blacklight/{blacklight.css.scss → blacklight.scss} +0 -0
  21. data/app/assets/stylesheets/blacklight/{blacklight_defaults.css.scss → blacklight_defaults.scss} +0 -0
  22. data/app/assets/stylesheets/blacklight/responsive_partials/{_catalog.css.scss → _catalog.scss} +0 -0
  23. data/app/assets/stylesheets/blacklight/responsive_partials/{_facets.css.scss → _facets.scss} +0 -0
  24. data/app/assets/stylesheets/blacklight/responsive_partials/{_header.css.scss → _header.scss} +0 -0
  25. data/app/helpers/blacklight/blacklight_helper_behavior.rb +2 -2
  26. data/app/helpers/blacklight/catalog_helper_behavior.rb +1 -1
  27. data/app/helpers/blacklight/facets_helper_behavior.rb +1 -0
  28. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +2 -2
  29. data/blacklight.gemspec +5 -6
  30. data/lib/blacklight/catalog.rb +1 -1
  31. data/lib/blacklight/catalog/search_context.rb +6 -6
  32. data/lib/blacklight/solr/document.rb +29 -21
  33. data/lib/blacklight/solr_helper.rb +6 -4
  34. data/lib/generators/blacklight/templates/{blacklight.css.scss → blacklight.scss} +0 -0
  35. data/spec/controllers/application_controller_spec.rb +3 -3
  36. data/spec/controllers/bookmarks_controller_spec.rb +11 -11
  37. data/spec/controllers/catalog_controller_spec.rb +117 -117
  38. data/spec/controllers/search_history_controller_spec.rb +8 -8
  39. data/spec/features/alternate_controller_spec.rb +7 -5
  40. data/spec/features/record_view_spec.rb +4 -1
  41. data/spec/features/search_filters_spec.rb +37 -24
  42. data/spec/features/search_pagination_spec.rb +11 -7
  43. data/spec/features/search_results_spec.rb +22 -14
  44. data/spec/features/search_sort_spec.rb +3 -1
  45. data/spec/features/search_spec.rb +6 -0
  46. data/spec/helpers/blacklight_helper_spec.rb +175 -166
  47. data/spec/helpers/catalog_helper_spec.rb +59 -59
  48. data/spec/helpers/facets_helper_spec.rb +118 -118
  49. data/spec/helpers/hash_as_hidden_fields_spec.rb +14 -8
  50. data/spec/helpers/html_head_helper_spec.rb +51 -45
  51. data/spec/helpers/render_constraints_helper_spec.rb +5 -6
  52. data/spec/helpers/search_history_constraints_helper_spec.rb +21 -21
  53. data/spec/lib/blacklight/solr_response/group_response_spec.rb +2 -2
  54. data/spec/lib/blacklight_configurable_spec.rb +16 -16
  55. data/spec/lib/blacklight_configuration_spec.rb +132 -132
  56. data/spec/lib/blacklight_email_spec.rb +4 -4
  57. data/spec/lib/blacklight_sms_spec.rb +4 -4
  58. data/spec/lib/blacklight_solr_document_dublin_core_spec.rb +6 -6
  59. data/spec/lib/blacklight_solr_document_marc_spec.rb +3 -3
  60. data/spec/lib/blacklight_solr_document_more_like_this_spec.rb +4 -4
  61. data/spec/lib/blacklight_solr_document_spec.rb +36 -36
  62. data/spec/lib/blacklight_solr_response_spec.rb +42 -42
  63. data/spec/lib/blacklight_spec.rb +5 -5
  64. data/spec/lib/blacklight_user_spec.rb +5 -5
  65. data/spec/lib/facet_paginator_spec.rb +12 -12
  66. data/spec/lib/marc_export_spec.rb +746 -746
  67. data/spec/lib/search_fields_spec.rb +13 -13
  68. data/spec/lib/solr_helper_spec.rb +255 -250
  69. data/spec/lib/tasks/blacklight_task_spec.rb +1 -1
  70. data/spec/lib/tasks/solr_marc_task_spec.rb +6 -6
  71. data/spec/lib/utils_spec.rb +11 -11
  72. data/spec/models/bookmark_spec.rb +7 -6
  73. data/spec/models/record_mailer_spec.rb +16 -16
  74. data/spec/models/search_spec.rb +8 -8
  75. data/spec/models/solr_document_spec.rb +7 -7
  76. data/spec/requests/alternate_controller_spec.rb +3 -3
  77. data/spec/routing/catalog_routing_spec.rb +10 -15
  78. data/spec/spec_helper.rb +6 -4
  79. data/spec/support/assert_difference.rb +2 -2
  80. data/spec/support/features.rb +11 -0
  81. data/spec/support/features/session_helpers.rb +3 -3
  82. data/spec/support/include_text.rb +2 -2
  83. data/spec/test_app_templates/Gemfile.extra +2 -15
  84. data/spec/test_app_templates/lib/generators/test_app_generator.rb +17 -6
  85. data/spec/views/catalog/_constraints.html.erb_spec.rb +7 -7
  86. data/spec/views/catalog/_constraints_element.html.erb_spec.rb +12 -12
  87. data/spec/views/catalog/_document.html.erb_spec.rb +1 -1
  88. data/spec/views/catalog/_facets.html.erb_spec.rb +13 -13
  89. data/spec/views/catalog/_index_default.erb_spec.rb +20 -20
  90. data/spec/views/catalog/_show_default.erb_spec.rb +20 -20
  91. data/spec/views/catalog/_show_sidebar.erb_spec.rb +6 -6
  92. data/spec/views/catalog/_thumbnail_default.erb_spec.rb +3 -3
  93. data/spec/views/catalog/index.atom.builder_spec.rb +28 -28
  94. data/spec/views/catalog/index.html.erb_spec.rb +6 -6
  95. metadata +35 -57
  96. data/gemfiles/rails3.gemfile +0 -25
  97. data/gemfiles/rails4.gemfile +0 -24
@@ -8,17 +8,17 @@ describe "Blacklight::Solr::Document::Email" do
8
8
  it "should only return values that are available in the field semantics" do
9
9
  doc = SolrDocument.new({:id=>"1234", :title_display=>"My Title"})
10
10
  email_body = doc.to_email_text
11
- email_body.should match(/Title: My Title/)
12
- email_body.should_not match(/Author/)
11
+ expect(email_body).to match(/Title: My Title/)
12
+ expect(email_body).not_to match(/Author/)
13
13
  end
14
14
  it "should handle multi-values fields correctly" do
15
15
  doc = SolrDocument.new({:id=>"1234", :title_display=>["My Title", "My Alt. Title"]})
16
16
  email_body = doc.to_email_text
17
- email_body.should match(/Title: My Title My Alt. Title/)
17
+ expect(email_body).to match(/Title: My Title My Alt. Title/)
18
18
  end
19
19
  it "should return nil if there are no valid field semantics to build the email body from" do
20
20
  doc = SolrDocument.new({:id=>"1234"})
21
- doc.to_email_text.should be_nil
21
+ expect(doc.to_email_text).to be_nil
22
22
  end
23
23
  end
24
24
 
@@ -8,17 +8,17 @@ describe "Blacklight::Solr::Document::Email" do
8
8
  it "should only return values that are available in the field semantics" do
9
9
  doc = SolrDocument.new({:id=>"1234", :title_display=>"My Title", :author_display=>"Joe Schmoe"})
10
10
  sms_text = doc.to_sms_text
11
- sms_text.should match(/My Title by Joe Schmoe/)
11
+ expect(sms_text).to match(/My Title by Joe Schmoe/)
12
12
  end
13
13
  it "should handle multi-values fields correctly and only take the first" do
14
14
  doc = SolrDocument.new({:id=>"1234", :title_display=>["My Title", "My Alt. Title"]})
15
15
  sms_text = doc.to_sms_text
16
- sms_text.should match(/My Title/)
17
- sms_text.should_not match(/My Alt\. Title/)
16
+ expect(sms_text).to match(/My Title/)
17
+ expect(sms_text).not_to match(/My Alt\. Title/)
18
18
  end
19
19
  it "should return nil if there are no valid field semantics to build the email body from" do
20
20
  doc = SolrDocument.new({:id=>"1234"})
21
- doc.to_sms_text.should be_nil
21
+ expect(doc.to_sms_text).to be_nil
22
22
  end
23
23
  end
24
24
 
@@ -16,27 +16,27 @@ describe "Blacklight::Solr::Document::DublinCore" do
16
16
 
17
17
  it "should register all its export formats" do
18
18
  document = @mock_class.new
19
- Set.new(document.export_formats.keys).should be_superset(Set.new([:oai_dc_xml,:dc_xml, :xml]))
19
+ expect(Set.new(document.export_formats.keys)).to be_superset(Set.new([:oai_dc_xml,:dc_xml, :xml]))
20
20
  end
21
21
 
22
22
  it "should export oai_dc with the proper namespaces" do
23
23
  document = @mock_class.new
24
- document.export_as_oai_dc_xml.should match 'xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"'
24
+ expect(document.export_as_oai_dc_xml).to match 'xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"'
25
25
 
26
26
  end
27
27
 
28
28
  it "should include 'dc:'-prefixed semantic fields" do
29
29
  data = {'id'=>'123456','title_display'=>['654321'] }
30
30
  document = @mock_class.new(data)
31
- document.export_as_oai_dc_xml.should match 'xmlns:dc="http://purl.org/dc/elements/1.1/"'
32
- document.export_as_oai_dc_xml.should match '<dc:title>654321</dc:title>'
31
+ expect(document.export_as_oai_dc_xml).to match 'xmlns:dc="http://purl.org/dc/elements/1.1/"'
32
+ expect(document.export_as_oai_dc_xml).to match '<dc:title>654321</dc:title>'
33
33
  end
34
34
 
35
35
  it "should work with multi-value fields" do
36
36
  data = {'id'=>'123456','title_display'=>['654321', '987'] }
37
37
  document = @mock_class.new(data)
38
- document.export_as_oai_dc_xml.should match '<dc:title>654321</dc:title>'
39
- document.export_as_oai_dc_xml.should match '<dc:title>987</dc:title></oai_dc:dc>'
38
+ expect(document.export_as_oai_dc_xml).to match '<dc:title>654321</dc:title>'
39
+ expect(document.export_as_oai_dc_xml).to match '<dc:title>987</dc:title></oai_dc:dc>'
40
40
  end
41
41
  end
42
42
 
@@ -17,7 +17,7 @@ describe "Blacklight::Solr::Document::Marc" do
17
17
  end
18
18
  it "should read and parse a marc binary file" do
19
19
  document = @mock_class.new(:marc => sample_marc_binary )
20
- document.to_marc.should == marc_from_string(:binary => sample_marc_binary )
20
+ expect(document.to_marc).to eq(marc_from_string(:binary => sample_marc_binary ))
21
21
  end
22
22
  end
23
23
 
@@ -27,13 +27,13 @@ describe "Blacklight::Solr::Document::Marc" do
27
27
  end
28
28
  it "should read and parse a marc xml file" do
29
29
  document = @mock_class.new(:marc => sample_marc_xml)
30
- document.to_marc.should == marc_from_string(:xml => sample_marc_xml)
30
+ expect(document.to_marc).to eq(marc_from_string(:xml => sample_marc_xml))
31
31
  end
32
32
  end
33
33
 
34
34
  it "should register all its export formats" do
35
35
  document = @mock_class.new
36
- Set.new(document.export_formats.keys).should be_superset(Set.new([:marc, :marcxml, :openurl_ctx_kev, :refworks_marc_txt, :endnote, :xml]))
36
+ expect(Set.new(document.export_formats.keys)).to be_superset(Set.new([:marc, :marcxml, :openurl_ctx_kev, :refworks_marc_txt, :endnote, :xml]))
37
37
  end
38
38
 
39
39
 
@@ -10,9 +10,9 @@ describe Blacklight::Solr::Document::MoreLikeThis do
10
10
  it "should pluck the MoreLikeThis results from the Solr Response" do
11
11
  mock_solr_response = double(:more_like => [{'id' => 'abc'}])
12
12
  result = @mock_class.new({:id => '123'}, mock_solr_response).more_like_this
13
- result.should have(1).item
14
- result.first.should be_a_kind_of(SolrDocument)
15
- result.first.id.should == 'abc'
16
- result.first.solr_response.should == mock_solr_response
13
+ expect(result.size).to eq(1)
14
+ expect(result.first).to be_a_kind_of(SolrDocument)
15
+ expect(result.first.id).to eq('abc')
16
+ expect(result.first.solr_response).to eq(mock_solr_response)
17
17
  end
18
18
  end
@@ -23,13 +23,13 @@ describe "Blacklight::Solr::Document" do
23
23
  it 'should create a doc with hashy methods' do
24
24
  doc = SolrDocument.new({'id'=>'SP2514N','inStock'=>true,'manu'=>'Samsung Electronics Co. Ltd.','name'=>'Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133','popularity'=>6,'price'=>92.0,'sku'=>'SP2514N','timestamp'=>'2009-03-20T14:42:49.795Z','cat'=>['electronics','hard drive'],'spell'=>['Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133'],'features'=>['7200RPM, 8MB cache, IDE Ultra ATA-133','NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor']})
25
25
 
26
- doc.has?(:cat, /^elec/).should == true
27
- doc.has?(:cat, 'elec').should_not == true
28
- doc.has?(:cat, 'electronics').should == true
26
+ expect(doc.has?(:cat, /^elec/)).to eq(true)
27
+ expect(doc.has?(:cat, 'elec')).not_to eq(true)
28
+ expect(doc.has?(:cat, 'electronics')).to eq(true)
29
29
 
30
- doc.get(:cat).should == 'electronics, hard drive'
31
- doc.get(:xyz).should == nil
32
- doc.get(:xyz, :default=>'def').should == 'def'
30
+ expect(doc.get(:cat)).to eq('electronics, hard drive')
31
+ expect(doc.get(:xyz)).to eq(nil)
32
+ expect(doc.get(:xyz, :default=>'def')).to eq('def')
33
33
  end
34
34
  end
35
35
 
@@ -44,7 +44,7 @@ describe "Blacklight::Solr::Document" do
44
44
  end
45
45
  it "should use a configuration-defined document unique key" do
46
46
  @document = MockDocument.new :id => 'asdf', :my_unique_key => '1234'
47
- @document.id.should == '1234'
47
+ expect(@document.id).to eq('1234')
48
48
  end
49
49
  end
50
50
 
@@ -57,54 +57,54 @@ describe "Blacklight::Solr::Document" do
57
57
  it "should let you register an extension" do
58
58
  MockDocument.use_extension(MockExtension) { |doc| true }
59
59
 
60
- MockDocument.registered_extensions.find {|a| a[:module_obj] == MockExtension}.should_not be_nil
60
+ expect(MockDocument.registered_extensions.find {|a| a[:module_obj] == MockExtension}).not_to be_nil
61
61
  end
62
62
  it "should let you register an extension with a nil condition proc" do
63
63
  MockDocument.use_extension(MockExtension) { |doc| true }
64
- MockDocument.registered_extensions.find {|a| a[:module_obj] == MockExtension}.should_not be_nil
64
+ expect(MockDocument.registered_extensions.find {|a| a[:module_obj] == MockExtension}).not_to be_nil
65
65
  end
66
66
  it "should apply an extension whose condition is met" do
67
67
  MockDocument.use_extension(MockExtension) {|doc| true}
68
68
  doc = MockDocument.new()
69
69
 
70
- doc.methods.find {|name| name.to_s == "my_extension_method"}.should_not be_nil
71
- doc.my_extension_method.to_s.should == "my_extension_results"
70
+ expect(doc.methods.find {|name| name.to_s == "my_extension_method"}).not_to be_nil
71
+ expect(doc.my_extension_method.to_s).to eq("my_extension_results")
72
72
  end
73
73
  it "should apply an extension based on a Solr field" do
74
74
  MockDocument.use_extension(MockExtension) {|doc| doc.key?(:required_key)}
75
75
 
76
76
  with_extension = MockDocument.new(:required_key => "value")
77
- with_extension.my_extension_method.to_s.should == "my_extension_results"
77
+ expect(with_extension.my_extension_method.to_s).to eq("my_extension_results")
78
78
 
79
79
  without_extension = MockDocument.new(:other_key => "value")
80
- without_extension.methods.find {|name| name.to_s == "my_extension_method"}.should be_nil
80
+ expect(without_extension.methods.find {|name| name.to_s == "my_extension_method"}).to be_nil
81
81
 
82
82
  end
83
83
  it "should not apply an extension whose condition is not met" do
84
84
  MockDocument.use_extension(MockExtension) {|doc| false}
85
85
  doc = MockDocument.new()
86
86
 
87
- doc.methods.find {|name| name.to_s == "my_extension_method"}.should be_nil
87
+ expect(doc.methods.find {|name| name.to_s == "my_extension_method"}).to be_nil
88
88
  end
89
89
  it "should treat a nil condition as always applyable" do
90
90
  MockDocument.use_extension(MockExtension)
91
91
 
92
92
  doc = MockDocument.new()
93
93
 
94
- doc.methods.find {|name | name.to_s =="my_extension_method"}.should_not be_nil
95
- doc.my_extension_method.should == "my_extension_results"
94
+ expect(doc.methods.find {|name | name.to_s =="my_extension_method"}).not_to be_nil
95
+ expect(doc.my_extension_method).to eq("my_extension_results")
96
96
  end
97
97
  it "should let last extension applied override earlier extensions" do
98
98
  MockDocument.use_extension(MockExtension)
99
99
  MockDocument.use_extension(MockSecondExtension)
100
100
 
101
- MockDocument.new().my_extension_method.to_s.should == "override"
101
+ expect(MockDocument.new().my_extension_method.to_s).to eq("override")
102
102
  end
103
103
 
104
104
  describe "extension_parameters class-level hash" do
105
105
  it "should provide an extension_parameters hash at the class level" do
106
106
  MockDocument.extension_parameters[:key] = "value"
107
- MockDocument.extension_parameters[:key].should == "value"
107
+ expect(MockDocument.extension_parameters[:key]).to eq("value")
108
108
  end
109
109
 
110
110
  it "extension_parameters should not be shared between classes" do
@@ -118,7 +118,7 @@ describe "Blacklight::Solr::Document" do
118
118
  class_one.extension_parameters[:key] = "class_one_value"
119
119
  class_two.extension_parameters[:key] = "class_two_value"
120
120
 
121
- class_one.extension_parameters[:key].should == "class_one_value"
121
+ expect(class_one.extension_parameters[:key]).to eq("class_one_value")
122
122
  end
123
123
  end
124
124
 
@@ -136,14 +136,14 @@ describe "Blacklight::Solr::Document" do
136
136
  it "reports it's exportable formats properly" do
137
137
  doc = MockDocument.new
138
138
  doc.will_export_as(:marc, "application/marc" )
139
- doc.export_formats.should have_key(:marc)
140
- doc.export_formats[:marc][:content_type].should == "application/marc"
139
+ expect(doc.export_formats).to have_key(:marc)
140
+ expect(doc.export_formats[:marc][:content_type]).to eq("application/marc")
141
141
  end
142
142
 
143
143
  it "looks up content-type from Mime::Type if not given in arg" do
144
144
  doc = MockDocument.new
145
145
  doc.will_export_as(:html)
146
- doc.export_formats.should have_key(:html)
146
+ expect(doc.export_formats).to have_key(:html)
147
147
  end
148
148
 
149
149
  context "format not registered with Mime::Type" do
@@ -154,17 +154,17 @@ describe "Blacklight::Solr::Document" do
154
154
  # registration in an after, sorry.
155
155
  end
156
156
  it "registers format" do
157
- defined?("Mime::MOCK2").should be_true
157
+ expect(defined?("Mime::MOCK2")).to be_truthy
158
158
  end
159
159
  it "registers as alias only" do
160
- Mime::Type.lookup("application/mock2").should_not equal(Mime::Type.lookup_by_extension("mock2"))
160
+ expect(Mime::Type.lookup("application/mock2")).not_to equal(Mime::Type.lookup_by_extension("mock2"))
161
161
  end
162
162
  end
163
163
 
164
164
  it "export_as(:format) by calling export_as_format" do
165
165
  doc = MockDocument.new
166
166
  doc.will_export_as(:marc, "application/marc")
167
- doc.export_as(:marc).should == "fake_marc"
167
+ expect(doc.export_as(:marc)).to eq("fake_marc")
168
168
  end
169
169
  end
170
170
 
@@ -183,17 +183,17 @@ describe "Blacklight::Solr::Document" do
183
183
  end
184
184
 
185
185
  it "should return complete dictionary based on config'd fields" do
186
- @doc1.to_semantic_values.should == {:title => ["doc1 title"], :something => ["val1", "val2"]}
186
+ expect(@doc1.to_semantic_values).to eq({:title => ["doc1 title"], :something => ["val1", "val2"]})
187
187
  end
188
188
  it "should return empty array for a key without a value" do
189
- @doc1.to_semantic_values[:author].should == []
190
- @doc1.to_semantic_values[:nonexistent_token].should == []
189
+ expect(@doc1.to_semantic_values[:author]).to eq([])
190
+ expect(@doc1.to_semantic_values[:nonexistent_token]).to eq([])
191
191
  end
192
192
  it "should return an array even for a single-value field" do
193
- @doc1.to_semantic_values[:title].should be_kind_of(Array)
193
+ expect(@doc1.to_semantic_values[:title]).to be_kind_of(Array)
194
194
  end
195
195
  it "should return complete array for a multi-value field" do
196
- @doc1.to_semantic_values[:something].should == ["val1", "val2"]
196
+ expect(@doc1.to_semantic_values[:something]).to eq(["val1", "val2"])
197
197
  end
198
198
 
199
199
  end
@@ -207,27 +207,27 @@ describe "Blacklight::Solr::Document" do
207
207
 
208
208
  describe "#has_highlight_field?" do
209
209
  it "should be true if the highlight field is in the solr response" do
210
- @document.should have_highlight_field 'title_text'
211
- @document.should have_highlight_field :title_text
210
+ expect(@document).to have_highlight_field 'title_text'
211
+ expect(@document).to have_highlight_field :title_text
212
212
  end
213
213
 
214
214
  it "should be false if the highlight field isn't in the solr response" do
215
- @document.should_not have_highlight_field 'nonexisting_field'
215
+ expect(@document).not_to have_highlight_field 'nonexisting_field'
216
216
  end
217
217
  end
218
218
 
219
219
  describe "#highlight_field" do
220
220
  it "should return a value" do
221
- @document.highlight_field('title_text').should include('doc <em>1</em>')
221
+ expect(@document.highlight_field('title_text')).to include('doc <em>1</em>')
222
222
  end
223
223
 
224
224
 
225
225
  it "should return a value that is html safe" do
226
- @document.highlight_field('title_text').first.should be_html_safe
226
+ expect(@document.highlight_field('title_text').first).to be_html_safe
227
227
  end
228
228
 
229
229
  it "should return nil when the field doesn't exist" do
230
- @document.highlight_field('nonexisting_field').should be_nil
230
+ expect(@document.highlight_field('nonexisting_field')).to be_nil
231
231
  end
232
232
  end
233
233
  end
@@ -11,47 +11,47 @@ describe Blacklight::SolrResponse do
11
11
  let(:r) { create_response }
12
12
 
13
13
  it 'should create a valid response' do
14
- r.should respond_to(:header)
14
+ expect(r).to respond_to(:header)
15
15
  end
16
16
 
17
17
  it 'should have accurate pagination numbers' do
18
- r.rows.should == 11
19
- r.total.should == 26
20
- r.start.should == 0
18
+ expect(r.rows).to eq(11)
19
+ expect(r.total).to eq(26)
20
+ expect(r.start).to eq(0)
21
21
  end
22
22
 
23
23
  it 'should create a valid response class' do
24
- r.should respond_to(:response)
25
- r.docs.size.should == 11
26
- r.params[:echoParams].should == 'EXPLICIT'
24
+ expect(r).to respond_to(:response)
25
+ expect(r.docs.size).to eq(11)
26
+ expect(r.params[:echoParams]).to eq('EXPLICIT')
27
27
 
28
- r.should be_a(Blacklight::SolrResponse::Facets)
28
+ expect(r).to be_a(Blacklight::SolrResponse::Facets)
29
29
  end
30
30
 
31
31
  it 'should provide facet helpers' do
32
- r.facets.size.should == 2
32
+ expect(r.facets.size).to eq(2)
33
33
 
34
34
  field_names = r.facets.collect{|facet|facet.name}
35
- field_names.include?('cat').should == true
36
- field_names.include?('manu').should == true
35
+ expect(field_names.include?('cat')).to eq(true)
36
+ expect(field_names.include?('manu')).to eq(true)
37
37
 
38
38
  first_facet = r.facets.select { |x| x.name == 'cat'}.first
39
- first_facet.name.should == 'cat'
39
+ expect(first_facet.name).to eq('cat')
40
40
 
41
- first_facet.items.size.should == 10
41
+ expect(first_facet.items.size).to eq(10)
42
42
 
43
43
  expected = "electronics - 14, memory - 3, card - 2, connector - 2, drive - 2, graphics - 2, hard - 2, monitor - 2, search - 2, software - 2"
44
44
  received = first_facet.items.collect do |item|
45
45
  item.value + ' - ' + item.hits.to_s
46
46
  end.join(', ')
47
47
 
48
- received.should == expected
48
+ expect(received).to eq(expected)
49
49
 
50
50
  r.facets.each do |facet|
51
- facet.respond_to?(:name).should == true
51
+ expect(facet.respond_to?(:name)).to eq(true)
52
52
  facet.items.each do |item|
53
- item.respond_to?(:value).should == true
54
- item.respond_to?(:hits).should == true
53
+ expect(item.respond_to?(:value)).to eq(true)
54
+ expect(item.respond_to?(:hits)).to eq(true)
55
55
  end
56
56
  end
57
57
 
@@ -72,7 +72,7 @@ describe Blacklight::SolrResponse do
72
72
  it "should provide a model name helper" do
73
73
  first_doc_model_name = double(:human => 'xyz')
74
74
 
75
- r.docs.first.stub(:model_name).and_return first_doc_model_name
75
+ allow(r.docs.first).to receive(:model_name).and_return first_doc_model_name
76
76
 
77
77
  expect(r.model_name).to eq first_doc_model_name
78
78
  end
@@ -80,33 +80,33 @@ describe Blacklight::SolrResponse do
80
80
  describe "FacetItem" do
81
81
  it "should work with a field,value tuple" do
82
82
  item = Blacklight::SolrResponse::Facets::FacetItem.new('value', 15)
83
- item.value.should == 'value'
84
- item.hits.should == 15
83
+ expect(item.value).to eq('value')
84
+ expect(item.hits).to eq(15)
85
85
  end
86
86
 
87
87
  it "should work with a field,value + hash triple" do
88
88
  item = Blacklight::SolrResponse::Facets::FacetItem.new('value', 15, :a => 1, :value => 'ignored')
89
- item.value.should == 'value'
90
- item.hits.should == 15
91
- item.a.should == 1
89
+ expect(item.value).to eq('value')
90
+ expect(item.hits).to eq(15)
91
+ expect(item.a).to eq(1)
92
92
  end
93
93
 
94
94
  it "should work like an openstruct" do
95
95
  item = Blacklight::SolrResponse::Facets::FacetItem.new(:value => 'value', :hits => 15)
96
96
 
97
- item.hits.should == 15
98
- item.value.should == 'value'
99
- item.should be_a_kind_of(OpenStruct)
97
+ expect(item.hits).to eq(15)
98
+ expect(item.value).to eq('value')
99
+ expect(item).to be_a_kind_of(OpenStruct)
100
100
  end
101
101
 
102
102
  it "should provide a label accessor" do
103
103
  item = Blacklight::SolrResponse::Facets::FacetItem.new('value', :hits => 15)
104
- item.label.should == 'value'
104
+ expect(item.label).to eq('value')
105
105
  end
106
106
 
107
107
  it "should use a provided label" do
108
108
  item = Blacklight::SolrResponse::Facets::FacetItem.new('value', 15, :label => 'custom label')
109
- item.label.should == 'custom label'
109
+ expect(item.label).to eq('custom label')
110
110
 
111
111
  end
112
112
 
@@ -115,71 +115,71 @@ describe Blacklight::SolrResponse do
115
115
  it 'should return the correct value when calling facet_by_field_name' do
116
116
  r = create_response
117
117
  facet = r.facet_by_field_name('cat')
118
- facet.name.should == 'cat'
118
+ expect(facet.name).to eq('cat')
119
119
  end
120
120
 
121
121
  it 'should provide the responseHeader params' do
122
122
  raw_response = eval(mock_query_response)
123
123
  raw_response['responseHeader']['params']['test'] = :test
124
124
  r = Blacklight::SolrResponse.new(raw_response, raw_response['params'])
125
- r.params['test'].should == :test
125
+ expect(r.params['test']).to eq(:test)
126
126
  end
127
127
 
128
128
  it 'should provide the solr-returned params and "rows" should be 11' do
129
129
  raw_response = eval(mock_query_response)
130
130
  r = Blacklight::SolrResponse.new(raw_response, {})
131
- r.params[:rows].to_s.should == '11'
131
+ expect(r.params[:rows].to_s).to eq('11')
132
132
  end
133
133
 
134
134
  it 'should provide the ruby request params if responseHeader["params"] does not exist' do
135
135
  raw_response = eval(mock_query_response)
136
136
  raw_response.delete 'responseHeader'
137
137
  r = Blacklight::SolrResponse.new(raw_response, :rows => 999)
138
- r.params[:rows].to_s.should == '999'
138
+ expect(r.params[:rows].to_s).to eq('999')
139
139
  end
140
140
 
141
141
  it 'should provide spelling suggestions for regular spellcheck results' do
142
142
  raw_response = eval(mock_response_with_spellcheck)
143
143
  r = Blacklight::SolrResponse.new(raw_response, {})
144
- r.spelling.words.should include("dell")
145
- r.spelling.words.should include("ultrasharp")
144
+ expect(r.spelling.words).to include("dell")
145
+ expect(r.spelling.words).to include("ultrasharp")
146
146
  end
147
147
 
148
148
  it 'should provide spelling suggestions for extended spellcheck results' do
149
149
  raw_response = eval(mock_response_with_spellcheck_extended)
150
150
  r = Blacklight::SolrResponse.new(raw_response, {})
151
- r.spelling.words.should include("dell")
152
- r.spelling.words.should include("ultrasharp")
151
+ expect(r.spelling.words).to include("dell")
152
+ expect(r.spelling.words).to include("ultrasharp")
153
153
  end
154
154
 
155
155
  it 'should provide no spelling suggestions when extended results and suggestion frequency is the same as original query frequency' do
156
156
  raw_response = eval(mock_response_with_spellcheck_same_frequency)
157
157
  r = Blacklight::SolrResponse.new(raw_response, {})
158
- r.spelling.words.should == []
158
+ expect(r.spelling.words).to eq([])
159
159
  end
160
160
 
161
161
  it 'should provide spelling suggestions for a regular spellcheck results with a collation' do
162
162
  raw_response = eval(mock_response_with_spellcheck_collation)
163
163
  r = Blacklight::SolrResponse.new(raw_response, {})
164
- r.spelling.words.should include("dell")
165
- r.spelling.words.should include("ultrasharp")
164
+ expect(r.spelling.words).to include("dell")
165
+ expect(r.spelling.words).to include("ultrasharp")
166
166
  end
167
167
 
168
168
  it 'should provide spelling suggestion collation' do
169
169
  raw_response = eval(mock_response_with_spellcheck_collation)
170
170
  r = Blacklight::SolrResponse.new(raw_response, {})
171
- r.spelling.collation.should == 'dell ultrasharp'
171
+ expect(r.spelling.collation).to eq('dell ultrasharp')
172
172
  end
173
173
 
174
174
  it "should provide MoreLikeThis suggestions" do
175
175
  raw_response = eval(mock_response_with_more_like_this)
176
176
  r = Blacklight::SolrResponse.new(raw_response, {})
177
- r.more_like(double(:id => '79930185')).should have(2).items
177
+ expect(r.more_like(double(:id => '79930185')).size).to eq(2)
178
178
  end
179
179
 
180
180
  it "should be empty when the response has no results" do
181
181
  r = Blacklight::SolrResponse.new({}, {})
182
- r.stub(:total => 0)
182
+ allow(r).to receive_messages(:total => 0)
183
183
  expect(r).to be_empty
184
184
  end
185
185