blacklight 5.0.0.pre1 → 5.0.0.pre2

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 (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