blacklight 5.0.0.pre1 → 5.0.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +0 -4
  3. data/VERSION +1 -1
  4. data/app/assets/stylesheets/blacklight/_bookmark.css.scss +4 -0
  5. data/app/assets/stylesheets/blacklight/_catalog.css.scss +9 -13
  6. data/app/helpers/blacklight/blacklight_helper_behavior.rb +15 -9
  7. data/app/helpers/blacklight/catalog_helper_behavior.rb +8 -25
  8. data/app/helpers/blacklight/facets_helper_behavior.rb +1 -1
  9. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +1 -1
  10. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +2 -2
  11. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +1 -1
  12. data/app/views/bookmarks/index.html.erb +1 -1
  13. data/app/views/catalog/_did_you_mean.html.erb +1 -1
  14. data/app/views/catalog/_document.html.erb +4 -10
  15. data/app/views/catalog/{_document_header.html.erb → _index_header_default.html.erb} +6 -3
  16. data/app/views/catalog/_paginate_compact.html.erb +5 -0
  17. data/app/views/catalog/_show_header_default.html.erb +2 -0
  18. data/app/views/catalog/index.html.erb +1 -1
  19. data/app/views/catalog/show.html.erb +4 -10
  20. data/lib/blacklight.rb +0 -1
  21. data/lib/blacklight/configuration.rb +2 -2
  22. data/lib/blacklight/controller.rb +0 -1
  23. data/lib/blacklight/solr/document.rb +2 -0
  24. data/lib/blacklight/solr/document/schema_org.rb +7 -0
  25. data/lib/blacklight/solr_response.rb +4 -0
  26. data/lib/blacklight/user.rb +0 -6
  27. data/spec/controllers/application_controller_spec.rb +1 -2
  28. data/spec/controllers/bookmarks_controller_spec.rb +8 -9
  29. data/spec/controllers/catalog_controller_spec.rb +72 -73
  30. data/spec/controllers/saved_searches_controller_spec.rb +1 -2
  31. data/spec/controllers/search_history_controller_spec.rb +9 -10
  32. data/spec/features/search_pagination_spec.rb +1 -0
  33. data/spec/features/search_results_spec.rb +1 -0
  34. data/spec/features/search_spec.rb +1 -0
  35. data/spec/helpers/blacklight_helper_spec.rb +103 -93
  36. data/spec/helpers/catalog_helper_spec.rb +34 -21
  37. data/spec/helpers/facets_helper_spec.rb +41 -41
  38. data/spec/helpers/hash_as_hidden_fields_spec.rb +8 -9
  39. data/spec/helpers/render_constraints_helper_spec.rb +3 -3
  40. data/spec/helpers/search_history_constraints_helper_spec.rb +13 -14
  41. data/spec/lib/{blacklight_configurable_spec.rb → blacklight/configurable_spec.rb} +12 -14
  42. data/spec/lib/{blacklight_configuration_spec.rb → blacklight/configuration_spec.rb} +67 -69
  43. data/spec/lib/{facet_paginator_spec.rb → blacklight/facet_paginator_spec.rb} +13 -16
  44. data/spec/lib/{search_fields_spec.rb → blacklight/search_fields_spec.rb} +14 -15
  45. data/spec/lib/{blacklight_solr_document_dublin_core_spec.rb → blacklight/solr/document/dublin_core_spec.rb} +7 -8
  46. data/spec/lib/{blacklight_email_spec.rb → blacklight/solr/document/email_spec.rb} +5 -6
  47. data/spec/lib/{blacklight_solr_document_more_like_this_spec.rb → blacklight/solr/document/more_like_this_spec.rb} +5 -5
  48. data/spec/lib/{blacklight_sms_spec.rb → blacklight/solr/document/sms_spec.rb} +5 -6
  49. data/spec/lib/{blacklight_solr_document_spec.rb → blacklight/solr/document_spec.rb} +37 -39
  50. data/spec/lib/{solr_helper_spec.rb → blacklight/solr_helper_spec.rb} +183 -183
  51. data/spec/lib/{blacklight_solr_response_spec.rb → blacklight/solr_response_spec.rb} +20 -16
  52. data/spec/lib/{blacklight_user_spec.rb → blacklight/user_spec.rb} +3 -4
  53. data/spec/lib/blacklight_spec.rb +6 -7
  54. data/spec/lib/tasks/blacklight_task_spec.rb +2 -3
  55. data/spec/lib/utils_spec.rb +13 -14
  56. data/spec/models/bookmark_spec.rb +4 -4
  57. data/spec/models/record_mailer_spec.rb +15 -15
  58. data/spec/models/search_spec.rb +7 -7
  59. data/spec/models/solr_document_spec.rb +4 -4
  60. data/spec/routing/catalog_routing_spec.rb +12 -12
  61. data/spec/spec_helper.rb +1 -3
  62. data/spec/test_app_templates/Gemfile.extra +1 -2
  63. data/spec/views/catalog/_constraints_element.html.erb_spec.rb +12 -13
  64. data/spec/views/catalog/_document.html.erb_spec.rb +19 -2
  65. data/spec/views/catalog/_document_list.html.erb_spec.rb +0 -1
  66. data/spec/views/catalog/_facets.html.erb_spec.rb +5 -5
  67. data/spec/views/catalog/_index_default.erb_spec.rb +10 -11
  68. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +45 -0
  69. data/spec/views/catalog/_search_header.erb_spec.rb +0 -1
  70. data/spec/views/catalog/_show_default.erb_spec.rb +10 -11
  71. data/spec/views/catalog/_show_sidebar.erb_spec.rb +2 -3
  72. data/spec/views/catalog/index.atom.builder_spec.rb +26 -27
  73. data/spec/views/catalog/index.html.erb_spec.rb +1 -1
  74. data/spec/views/catalog/show.html.erb_spec.rb +56 -0
  75. data/tasks/blacklight.rake +1 -1
  76. metadata +65 -64
  77. data/lib/blacklight/legacy_controller_methods.rb +0 -26
  78. data/spec/rcov.opts +0 -3
  79. data/spec/support/assert_difference.rb +0 -17
@@ -85,6 +85,10 @@ class Blacklight::SolrResponse < HashWithIndifferentAccess
85
85
  def start
86
86
  response[:start].to_s.to_i
87
87
  end
88
+
89
+ def empty?
90
+ total == 0
91
+ end
88
92
 
89
93
  end
90
94
  end
@@ -12,12 +12,6 @@ module Blacklight::User
12
12
  end
13
13
  end
14
14
 
15
- # This is left for backwards-compatibility
16
- # Remove this in Blacklight 5.x
17
- module InstanceMethods
18
- include Blacklight::User
19
- end
20
-
21
15
  def has_bookmarks?
22
16
  bookmarks.any?
23
17
  end
@@ -1,4 +1,3 @@
1
- # -*- encoding : utf-8 -*-
2
1
  require 'spec_helper'
3
2
 
4
3
  describe ApplicationController do
@@ -7,7 +6,7 @@ describe ApplicationController do
7
6
  describe "#blacklight_config" do
8
7
 
9
8
  it "should provide a default blacklight_config everywhere" do
10
- controller.blacklight_config.should == CatalogController.blacklight_config
9
+ expect(controller.blacklight_config).to eq CatalogController.blacklight_config
11
10
  end
12
11
  end
13
12
 
@@ -1,5 +1,4 @@
1
- # -*- encoding : utf-8 -*-
2
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
1
+ require 'spec_helper'
3
2
 
4
3
  describe BookmarksController do
5
4
  include Devise::TestHelpers
@@ -8,8 +7,8 @@ describe BookmarksController do
8
7
  describe "update" do
9
8
  it "has a 204 status code when creating a new one" do
10
9
  xhr :put, :update, :id => '2007020969', :format => :js
11
- response.should be_success
12
- response.code.should == "204"
10
+ expect(response).to be_success
11
+ expect(response.code).to eq "204"
13
12
  end
14
13
 
15
14
  it "has a 500 status code when fails is success" do
@@ -17,15 +16,15 @@ describe BookmarksController do
17
16
  @controller.stub_chain(:current_or_guest_user, :persisted?).and_return(true)
18
17
  @controller.stub_chain(:current_or_guest_user, :bookmarks, :create).and_return(false)
19
18
  xhr :put, :update, :id => 'iamabooboo', :format => :js
20
- response.code.should == "500"
19
+ expect(response.code).to eq "500"
21
20
  end
22
21
  end
23
22
 
24
23
  describe "delete" do
25
24
  it "has a 204 status code when delete is success" do
26
25
  xhr :delete, :destroy, :id => '2007020969', :format => :js
27
- response.should be_success
28
- response.code.should == "204"
26
+ expect(response).to be_success
27
+ expect(response.code).to eq "204"
29
28
  end
30
29
 
31
30
  it "has a 500 status code when delete is not success" do
@@ -34,8 +33,8 @@ describe BookmarksController do
34
33
  @controller.stub_chain(:current_or_guest_user, :bookmarks, :delete).and_return(false)
35
34
 
36
35
  xhr :delete, :destroy, :id => 'pleasekillme', :format => :js
37
- #
38
- response.code.should == "500"
36
+
37
+ expect(response.code).to eq "500"
39
38
  end
40
39
  end
41
40
 
@@ -1,5 +1,4 @@
1
- # -*- encoding : utf-8 -*-
2
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
1
+ require 'spec_helper'
3
2
 
4
3
  describe CatalogController do
5
4
  include Devise::TestHelpers
@@ -24,47 +23,47 @@ describe CatalogController do
24
23
  controller.should_receive(:get_search_results)
25
24
  session[:history] = []
26
25
  get :index
27
- session[:history].length.should == 0
26
+ expect(session[:history]).to be_empty
28
27
  end
29
28
 
30
29
  # check each user manipulated parameter
31
30
  it "should have docs and facets for query with results", :integration => true do
32
31
  get :index, :q => @user_query
33
- assigns_response.docs.size.should > 1
32
+ expect(assigns_response.docs).to_not be_empty
34
33
  assert_facets_have_values(assigns_response.facets)
35
34
  end
36
35
  it "should have docs and facets for existing facet value", :integration => true do
37
36
  get :index, :f => @facet_query
38
- assigns_response.docs.size.should > 1
37
+ expect(assigns_response.docs).to_not be_empty
39
38
  assert_facets_have_values(assigns_response.facets)
40
39
  end
41
40
  it "should have docs and facets for non-default results per page", :integration => true do
42
41
  num_per_page = 7
43
42
  get :index, :per_page => num_per_page
44
- assigns_response.docs.size.should == num_per_page
43
+ expect(assigns_response.docs).to have(num_per_page).items
45
44
  assert_facets_have_values(assigns_response.facets)
46
45
  end
47
46
 
48
47
  it "should have docs and facets for second page", :integration => true do
49
48
  page = 2
50
49
  get :index, :page => page
51
- assigns_response.docs.size.should > 1
52
- assigns_response.params[:start].to_i.should == (page-1) * @controller.blacklight_config[:default_solr_params][:rows]
50
+ expect(assigns_response.docs).to_not be_empty
51
+ expect(assigns_response.params[:start].to_i).to eq (page-1) * @controller.blacklight_config[:default_solr_params][:rows]
53
52
  assert_facets_have_values(assigns_response.facets)
54
53
  end
55
54
 
56
55
  it "should have no docs or facet values for query without results", :integration => true do
57
56
  get :index, :q => @no_docs_query
58
57
 
59
- assigns_response.docs.size.should == 0
58
+ expect(assigns_response.docs).to be_empty
60
59
  assigns_response.facets.each do |facet|
61
- facet.items.size.should == 0
60
+ expect(facet.items).to be_empty
62
61
  end
63
62
  end
64
63
 
65
64
  it "should have a spelling suggestion for an appropriately poor query", :integration => true do
66
65
  get :index, :q => 'boo'
67
- assigns_response.spelling.words.should_not be_nil
66
+ expect(assigns_response.spelling.words).to_not be_nil
68
67
  end
69
68
 
70
69
  describe "session" do
@@ -73,13 +72,13 @@ describe CatalogController do
73
72
  end
74
73
  it "should include :search key with hash" do
75
74
  get :index
76
- session[:search].should_not be_nil
77
- session[:search].should be_kind_of(Hash)
75
+ expect(session[:search]).to_not be_nil
76
+ expect(session[:search]).to be_kind_of(Hash)
78
77
  end
79
78
  it "should include search hash with key :q" do
80
79
  get :index, :q => @user_query
81
- session[:search].should_not be_nil
82
- session[:search].keys.should include(:id)
80
+ expect(session[:search]).to_not be_nil
81
+ expect(session[:search].keys).to include :id
83
82
 
84
83
  search = Search.find(session[:search][:id])
85
84
  expect(search.query_params[:q]).to eq @user_query
@@ -90,7 +89,7 @@ describe CatalogController do
90
89
  describe "for default query" do
91
90
  it "should get documents when no query", :integration => true do
92
91
  get :index
93
- assigns_response.docs.size.should > 1
92
+ expect(assigns_response.docs).to_not be_empty
94
93
  end
95
94
  it "should get facets when no query", :integration => true do
96
95
  get :index
@@ -101,27 +100,27 @@ describe CatalogController do
101
100
  it "should render index.html.erb" do
102
101
  controller.stub(:get_search_results)
103
102
  get :index
104
- response.should render_template(:index)
103
+ expect(response).to render_template(:index)
105
104
  end
106
105
 
107
106
  # NOTE: status code is always 200 in isolation mode ...
108
107
  it "HTTP status code for GET should be 200", :integration => true do
109
108
  get :index
110
- response.should be_success
109
+ expect(response).to be_success
111
110
  end
112
111
  end
113
112
 
114
113
  describe "with format :rss" do
115
114
  it "should get the feed", :integration => true do
116
115
  get :index, :format => 'rss'
117
- response.should be_success
116
+ expect(response).to be_success
118
117
  end
119
118
  end
120
119
 
121
120
  describe "with format :json" do
122
121
  before do
123
122
  get :index, :format => 'json'
124
- response.should be_success
123
+ expect(response).to be_success
125
124
  end
126
125
  let(:json) { JSON.parse(response.body)['response'] }
127
126
  let(:pages) { json["pages"] }
@@ -129,29 +128,29 @@ describe CatalogController do
129
128
  let(:facets) { json["facets"] }
130
129
 
131
130
  it "should get the pages" do
132
- pages["total_count"].should == 30
133
- pages["current_page"].should == 1
134
- pages["total_pages"].should == 3
131
+ expect(pages["total_count"]).to eq 30
132
+ expect(pages["current_page"]).to eq 1
133
+ expect(pages["total_pages"]).to eq 3
135
134
  end
136
135
 
137
136
  it "should get the documents" do
138
- docs.size.should == 10
137
+ expect(docs).to have(10).documents
139
138
  expect(docs.first.keys).to match_array(["published_display", "author_display", "lc_callnum_display", "pub_date", "subtitle_display", "format", "material_type_display", "title_display", "id", "subject_topic_facet", "language_facet", "score"])
140
139
  end
141
140
 
142
141
  it "should get the facets" do
143
- facets.length.should == 9
144
- facets.first.should == {"name"=>"format", "label" => "Format", "items"=>[{"value"=>"Book", "hits"=>30, "label"=>"Book"}]}
142
+ expect(facets).to have(9).facets
143
+ expect(facets.first).to eq({"name"=>"format", "label" => "Format", "items"=>[{"value"=>"Book", "hits"=>30, "label"=>"Book"}]})
145
144
  end
146
145
 
147
146
  describe "facets" do
148
147
  let(:query_facet_items) { facets.last['items'] }
149
148
  let(:regular_facet_items) { facets.first['items'] }
150
149
  it "should have items with labels and values" do
151
- query_facet_items.first['label'].should == 'within 10 Years'
152
- query_facet_items.first['value'].should == 'years_10'
153
- regular_facet_items.first['label'].should == "Book"
154
- regular_facet_items.first['value'].should == "Book"
150
+ expect(query_facet_items.first['label']).to eq 'within 10 Years'
151
+ expect(query_facet_items.first['value']).to eq 'years_10'
152
+ expect(regular_facet_items.first['label']).to eq "Book"
153
+ expect(regular_facet_items.first['value']).to eq "Book"
155
154
  end
156
155
  end
157
156
  end
@@ -163,7 +162,7 @@ describe CatalogController do
163
162
 
164
163
  it "should set counter value into session[:search]" do
165
164
  put :update, :id => doc_id, :counter => 3
166
- session[:search][:counter].should == "3"
165
+ expect(session[:search][:counter]).to eq "3"
167
166
  end
168
167
 
169
168
  it "should redirect to show action for doc id" do
@@ -173,7 +172,7 @@ describe CatalogController do
173
172
 
174
173
  it "HTTP status code for redirect should be 303" do
175
174
  put :update, :id => doc_id, :counter => 3
176
- response.status.should == 303
175
+ expect(response.status).to eq 303
177
176
  end
178
177
  end
179
178
 
@@ -185,14 +184,14 @@ describe CatalogController do
185
184
  describe "with format :html" do
186
185
  it "should get document", :integration => true do
187
186
  get :show, :id => doc_id
188
- assigns[:document].should_not be_nil
187
+ expect(assigns[:document]).to_not be_nil
189
188
  end
190
189
  end
191
190
 
192
191
  describe "with format :json" do
193
192
  it "should get the feed" do
194
193
  get :show, id: doc_id, format: 'json'
195
- response.should be_success
194
+ expect(response).to be_success
196
195
  json = JSON.parse response.body
197
196
  expect(json["response"]["document"].keys).to match_array(["author_t", "opensearch_display", "marc_display", "published_display", "author_display", "lc_callnum_display", "title_t", "pub_date", "pub_date_sort", "subtitle_display", "format", "url_suppl_display", "material_type_display", "title_display", "subject_addl_t", "subject_t", "isbn_t", "id", "title_addl_t", "subject_geo_facet", "subject_topic_facet", "author_addl_t", "language_facet", "subtitle_t", "timestamp"])
198
197
  end
@@ -214,30 +213,30 @@ describe CatalogController do
214
213
  it "should set previous document if counter present in session" do
215
214
  session[:search] = @search_session.merge(:counter => 2)
216
215
  get :show, :id => doc_id
217
- assigns[:previous_document].should_not be_nil
216
+ expect(assigns[:previous_document]).to_not be_nil
218
217
  end
219
218
  it "should not set previous or next document if session is blank" do
220
219
  get :show, :id => doc_id
221
- assigns[:previous_document].should be_nil
222
- assigns[:next_document].should be_nil
220
+ expect(assigns[:previous_document]).to be_nil
221
+ expect(assigns[:next_document]).to be_nil
223
222
  end
224
223
  it "should not set previous or next document if session[:search][:counter] is nil" do
225
224
  session[:search] = {}
226
225
  get :show, :id => doc_id
227
- assigns[:previous_document].should be_nil
228
- assigns[:next_document].should be_nil
226
+ expect(assigns[:previous_document]).to be_nil
227
+ expect(assigns[:next_document]).to be_nil
229
228
  end
230
229
  it "should set next document if counter present in session" do
231
230
  session[:search] = @search_session.merge(:counter => 2)
232
231
  get :show, :id => doc_id
233
- assigns[:next_document].should_not be_nil
232
+ expect(assigns[:next_document]).to_not be_nil
234
233
  end
235
234
  end
236
235
 
237
236
  # NOTE: status code is always 200 in isolation mode ...
238
237
  it "HTTP status code for GET should be 200", :integration => true do
239
238
  get :show, :id => doc_id
240
- response.should be_success
239
+ expect(response).to be_success
241
240
  end
242
241
  it "should render show.html.erb" do
243
242
  @mock_response = double()
@@ -262,7 +261,7 @@ describe CatalogController do
262
261
  @document = assigns[:document]
263
262
  end
264
263
  it "should be a SolrDocument" do
265
- @document.should be_instance_of(SolrDocument)
264
+ expect(@document).to be_instance_of(SolrDocument)
266
265
  end
267
266
  end
268
267
 
@@ -302,8 +301,8 @@ describe CatalogController do
302
301
 
303
302
  it "should respond to an extension-registered format properly" do
304
303
  get :show, :id => doc_id, :format => "mock" # This no longer works: :format => "mock"
305
- response.should be_success
306
- response.body.should =~ /mock_export/
304
+ expect(response).to be_success
305
+ expect(response.body).to match /mock_export/
307
306
  end
308
307
 
309
308
 
@@ -326,14 +325,14 @@ describe CatalogController do
326
325
  end
327
326
  it "should return an opensearch description" do
328
327
  get :opensearch, :format => 'xml'
329
- response.should be_success
328
+ expect(response).to be_success
330
329
  end
331
330
  it "should return valid JSON" do
332
331
  get :opensearch,:format => 'json', :q => "a"
333
- response.should be_success
332
+ expect(response).to be_success
334
333
  end
335
334
  end
336
- #=end
335
+
337
336
  describe "email/sms" do
338
337
  doc_id = '2007020969'
339
338
  before do
@@ -352,15 +351,15 @@ describe CatalogController do
352
351
  describe "email" do
353
352
  it "should give error if no TO paramater" do
354
353
  post :email, :id => doc_id
355
- request.flash[:error].should == "You must enter a recipient in order to send this message"
354
+ expect(request.flash[:error]).to eq "You must enter a recipient in order to send this message"
356
355
  end
357
356
  it "should give an error if the email address is not valid" do
358
357
  post :email, :id => doc_id, :to => 'test_bad_email'
359
- request.flash[:error].should == "You must enter a valid email address"
358
+ expect(request.flash[:error]).to eq "You must enter a valid email address"
360
359
  end
361
360
  it "should not give error if no Message paramater is set" do
362
361
  post :email, :id => doc_id, :to => 'test_email@projectblacklight.org'
363
- request.flash[:error].should be_nil
362
+ expect(request.flash[:error]).to be_nil
364
363
  end
365
364
  it "should redirect back to the record upon success" do
366
365
  mock_mailer = double
@@ -368,8 +367,8 @@ describe CatalogController do
368
367
  RecordMailer.should_receive(:email_record).with(anything, { :to => 'test_email@projectblacklight.org', :message => 'xyz' }, hash_including(:host => 'test.host')).and_return mock_mailer
369
368
 
370
369
  post :email, :id => doc_id, :to => 'test_email@projectblacklight.org', :message => 'xyz'
371
- request.flash[:error].should be_nil
372
- request.should redirect_to(catalog_path(doc_id))
370
+ expect(request.flash[:error]).to be_nil
371
+ expect(request).to redirect_to(catalog_path(doc_id))
373
372
  end
374
373
 
375
374
  it "should render email_sent for XHR requests" do
@@ -381,24 +380,24 @@ describe CatalogController do
381
380
  describe "sms" do
382
381
  it "should give error if no phone number is given" do
383
382
  post :sms, :id => doc_id, :carrier => 'att'
384
- request.flash[:error].should == "You must enter a recipient's phone number in order to send this message"
383
+ expect(request.flash[:error]).to eq "You must enter a recipient's phone number in order to send this message"
385
384
  end
386
385
  it "should give an error when a carrier is not provided" do
387
386
  post :sms, :id => doc_id, :to => '5555555555', :carrier => ''
388
- request.flash[:error].should == "You must select a carrier"
387
+ expect(request.flash[:error]).to eq "You must select a carrier"
389
388
  end
390
389
  it "should give an error when the phone number is not 10 digits" do
391
390
  post :sms, :id => doc_id, :to => '555555555', :carrier => 'txt.att.net'
392
- request.flash[:error].should == "You must enter a valid 10 digit phone number"
391
+ expect(request.flash[:error]).to eq "You must enter a valid 10 digit phone number"
393
392
  end
394
393
  it "should give an error when the carrier is not in our list of carriers" do
395
394
  post :sms, :id => doc_id, :to => '5555555555', :carrier => 'no-such-carrier'
396
- request.flash[:error].should == "You must enter a valid carrier"
395
+ expect(request.flash[:error]).to eq "You must enter a valid carrier"
397
396
  end
398
397
  it "should allow punctuation in phone number" do
399
398
  post :sms, :id => doc_id, :to => '(555) 555-5555', :carrier => 'txt.att.net'
400
- request.flash[:error].should be_nil
401
- request.should redirect_to(catalog_path(doc_id))
399
+ expect(request.flash[:error]).to be_nil
400
+ expect(request).to redirect_to(catalog_path(doc_id))
402
401
  end
403
402
  it "should redirect back to the record upon success" do
404
403
  post :sms, :id => doc_id, :to => '5555555555', :carrier => 'txt.att.net'
@@ -422,9 +421,9 @@ describe CatalogController do
422
421
  controller.stub(:find => @mock_response,
423
422
  :get_single_doc_via_search => @mock_document)
424
423
  get :show, :id=>"987654321"
425
- request.flash[:notice].should == "Sorry, you have requested a record that doesn't exist."
426
- response.should render_template('index')
427
- response.status.should == 404
424
+ expect(request.flash[:notice]).to eq "Sorry, you have requested a record that doesn't exist."
425
+ expect(response).to render_template('index')
426
+ expect(response.status).to eq 404
428
427
  end
429
428
  it "should redirect the user to the root url for a bad search" do
430
429
  req = {}
@@ -434,10 +433,10 @@ describe CatalogController do
434
433
  controller.logger.should_receive(:error).with(fake_error)
435
434
  get :index, :q=>"+"
436
435
 
437
- response.redirect_url.should == root_url
438
- request.flash[:notice].should == "Sorry, I don't understand your search."
439
- response.should_not be_success
440
- response.status.should == 302
436
+ expect(response.redirect_url).to eq root_url
437
+ expect(request.flash[:notice]).to eq "Sorry, I don't understand your search."
438
+ expect(response).to_not be_success
439
+ expect(response.status).to eq 302
441
440
  end
442
441
  it "should return status 500 if the catalog path is raising an exception" do
443
442
 
@@ -469,7 +468,7 @@ describe CatalogController do
469
468
 
470
469
  it "should not show user util links" do
471
470
  get :index
472
- response.body.should_not =~ /Login/
471
+ expect(response.body).to_not match /Login/
473
472
  end
474
473
  end
475
474
 
@@ -477,22 +476,22 @@ describe CatalogController do
477
476
  describe "requesting js" do
478
477
  it "should be successful" do
479
478
  xhr :get, :facet, id: 'format'
480
- response.should be_successful
479
+ expect(response).to be_successful
481
480
  end
482
481
  end
483
482
  describe "requesting html" do
484
483
  it "should be successful" do
485
484
  get :facet, id: 'format'
486
- response.should be_successful
487
- assigns[:pagination].should be_kind_of Blacklight::Solr::FacetPaginator
485
+ expect(response).to be_successful
486
+ expect(assigns[:pagination]).to be_kind_of Blacklight::Solr::FacetPaginator
488
487
  end
489
488
  end
490
489
  describe "requesting json" do
491
490
  it "should be successful" do
492
491
  get :facet, id: 'format', format: 'json'
493
- response.should be_successful
492
+ expect(response).to be_successful
494
493
  json = JSON.parse(response.body)
495
- json["response"]["facets"]["items"].first["value"].should == 'Book'
494
+ expect(json["response"]["facets"]["items"].first["value"]).to eq 'Book'
496
495
  end
497
496
  end
498
497
  end
@@ -591,10 +590,10 @@ end
591
590
 
592
591
  # there must be at least one facet, and each facet must have at least one value
593
592
  def assert_facets_have_values(facets)
594
- facets.size.should > 1
593
+ expect(facets).to_not be_empty
595
594
  # should have at least one value for each facet
596
595
  facets.each do |facet|
597
- facet.items.size.should >= 1
596
+ expect(facet.items).to have_at_least(1).item
598
597
  end
599
598
  end
600
599