blacklight 4.2.2 → 4.3.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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -3
  3. data/Gemfile +6 -0
  4. data/VERSION +1 -1
  5. data/app/assets/stylesheets/blacklight/_catalog.css.scss +2 -2
  6. data/app/assets/stylesheets/blacklight/_header.css.scss +15 -31
  7. data/app/assets/stylesheets/blacklight/_modal.css.scss +4 -0
  8. data/app/helpers/blacklight/blacklight_helper_behavior.rb +8 -3
  9. data/app/helpers/blacklight/facets_helper_behavior.rb +1 -1
  10. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +5 -4
  11. data/app/views/catalog/_home.html.erb +1 -5
  12. data/app/views/catalog/show.html.erb +2 -3
  13. data/app/views/search_history/index.html.erb +2 -6
  14. data/blacklight.gemspec +1 -1
  15. data/gemfiles/rails3.gemfile +6 -1
  16. data/gemfiles/rails4.gemfile +5 -0
  17. data/lib/blacklight/catalog.rb +4 -8
  18. data/lib/blacklight/configuration/facet_field.rb +1 -1
  19. data/lib/blacklight/configuration/search_field.rb +2 -2
  20. data/lib/blacklight/configuration/solr_field.rb +11 -2
  21. data/lib/blacklight/configuration/sort_field.rb +1 -1
  22. data/lib/generators/blacklight/blacklight_generator.rb +3 -7
  23. data/lib/generators/blacklight/templates/config/solr.yml +1 -1
  24. data/lib/solrmarc.log.1 +854 -0
  25. data/spec/controllers/bookmarks_controller_spec.rb +1 -1
  26. data/spec/controllers/catalog_controller_spec.rb +20 -20
  27. data/spec/helpers/blacklight_helper_spec.rb +44 -31
  28. data/spec/helpers/catalog_helper_spec.rb +5 -5
  29. data/spec/helpers/facets_helper_spec.rb +48 -48
  30. data/spec/helpers/search_history_constraints_helper_spec.rb +14 -3
  31. data/spec/lib/blacklight_solr_document_more_like_this_spec.rb +1 -1
  32. data/spec/lib/blacklight_solr_response_spec.rb +1 -1
  33. data/spec/lib/search_fields_spec.rb +1 -1
  34. data/spec/lib/solr_helper_spec.rb +4 -4
  35. data/spec/models/solr_docment_spec.rb +1 -1
  36. data/spec/test_app_templates/Gemfile.extra +4 -11
  37. data/spec/test_app_templates/lib/generators/test_app_generator.rb +2 -2
  38. data/spec/test_app_templates/lib/tasks/blacklight_test_app.rake +22 -0
  39. data/spec/views/catalog/_facets.html.erb_spec.rb +6 -6
  40. data/spec/views/catalog/_index_default.erb_spec.rb +11 -13
  41. data/spec/views/catalog/_show_default.erb_spec.rb +11 -13
  42. data/spec/views/catalog/index.atom.builder_spec.rb +2 -2
  43. data/tasks/blacklight.rake +7 -4
  44. metadata +7 -6
  45. data/spec/test_app_templates/lib/tasks/rspec.rake +0 -8
@@ -29,7 +29,7 @@ describe BookmarksController do
29
29
  end
30
30
 
31
31
  it "has a 500 status code when delete is not success" do
32
- bm = mock(Bookmark)
32
+ bm = double(Bookmark)
33
33
  @controller.stub_chain(:current_or_guest_user, :existing_bookmark_for).and_return(bm)
34
34
  @controller.stub_chain(:current_or_guest_user, :bookmarks, :delete).and_return(false)
35
35
 
@@ -166,8 +166,8 @@ describe CatalogController do
166
166
 
167
167
  describe "previous/next documents" do
168
168
  before do
169
- @mock_response = mock()
170
- @mock_document = mock()
169
+ @mock_response = double()
170
+ @mock_document = double()
171
171
  @mock_document.stub(:export_formats => {})
172
172
  controller.stub(:get_solr_response_for_doc_id => [@mock_response, @mock_document],
173
173
  :get_single_doc_via_search => @mock_document)
@@ -212,8 +212,8 @@ describe CatalogController do
212
212
  response.should be_success
213
213
  end
214
214
  it "should render show.html.erb" do
215
- @mock_response = mock()
216
- @mock_document = mock()
215
+ @mock_response = double()
216
+ @mock_document = double()
217
217
  @mock_document.stub(:export_formats => {})
218
218
  controller.stub(:get_solr_response_for_doc_id => [@mock_response, @mock_document],
219
219
  :get_single_doc_via_search => @mock_document)
@@ -224,7 +224,7 @@ describe CatalogController do
224
224
  describe "@document" do
225
225
  before do
226
226
  @mock_response.stub(:docs => [{ :id => 'my_fake_doc' }])
227
- @mock_document = mock()
227
+ @mock_document = double()
228
228
  controller.stub(:find => @mock_response,
229
229
  :get_single_doc_via_search => @mock_document)
230
230
  end
@@ -250,7 +250,7 @@ describe CatalogController do
250
250
  end
251
251
  before do
252
252
  @mock_response.stub(:docs => [{ :id => 'my_fake_doc' }])
253
- @mock_document = mock()
253
+ @mock_document = double()
254
254
  controller.stub(:find => @mock_response,
255
255
  :get_single_doc_via_search => @mock_document)
256
256
 
@@ -262,7 +262,7 @@ describe CatalogController do
262
262
 
263
263
  # Rails3 needs this to propertly setup a new mime type and
264
264
  # render the results.
265
- ActionController.add_renderer :mock do |template, options|
265
+ ActionController.add_renderer :double do |template, options|
266
266
  send_data "mock_export", :type => Mime::MOCK
267
267
  end
268
268
  Mime::Type.register "application/mock", :mock
@@ -286,10 +286,10 @@ describe CatalogController do
286
286
 
287
287
  describe "opensearch" do
288
288
  before do
289
- @mock_response = mock()
290
- @mock_document = mock()
289
+ @mock_response = double()
290
+ @mock_document = double()
291
291
  @mock_response.stub(:docs => [{ :id => 'my_fake_doc' }, { :id => 'my_other_doc'}])
292
- @mock_document = mock()
292
+ @mock_document = double()
293
293
  controller.stub(:find => @mock_response,
294
294
  :get_single_doc_via_search => @mock_document)
295
295
  end
@@ -306,10 +306,10 @@ describe CatalogController do
306
306
  describe "email/sms" do
307
307
  doc_id = '2007020969'
308
308
  before do
309
- @mock_response = mock()
310
- @mock_document = mock()
309
+ @mock_response = double()
310
+ @mock_document = double()
311
311
  @mock_response.stub(:docs => [{ :id => 'my_fake_doc' }, { :id => 'my_other_doc'}])
312
- @mock_document = mock()
312
+ @mock_document = double()
313
313
  controller.stub(:find => @mock_response,
314
314
  :get_single_doc_via_search => @mock_document)
315
315
  end
@@ -365,14 +365,14 @@ describe CatalogController do
365
365
 
366
366
  describe "errors" do
367
367
  it "should return status 404 for a record that doesn't exist" do
368
- @mock_response = mock()
368
+ @mock_response = double()
369
369
  @mock_response.stub(:docs => [])
370
- @mock_document = mock()
370
+ @mock_document = double()
371
371
  controller.stub(:find => @mock_response,
372
372
  :get_single_doc_via_search => @mock_document)
373
373
  get :show, :id=>"987654321"
374
374
  request.flash[:notice].should == "Sorry, you have requested a record that doesn't exist."
375
- response.should_not be_success
375
+ response.should render_template('index')
376
376
  response.status.should == 404
377
377
  end
378
378
  it "should redirect the user to the root url for a bad search" do
@@ -394,7 +394,7 @@ describe CatalogController do
394
394
  res = {}
395
395
  fake_error = RSolr::Error::Http.new(req, res)
396
396
  controller.stub(:get_search_results) { |*args| raise fake_error }
397
- controller.flash.stub!(:sweep)
397
+ controller.flash.stub(:sweep)
398
398
  controller.stub(:flash).and_return(:notice => I18n.t('blacklight.search.errors.request_error'))
399
399
  expect {
400
400
  get :index, :q=>"+"
@@ -408,10 +408,10 @@ describe CatalogController do
408
408
 
409
409
  before do
410
410
  controller.stub(:has_user_authentication_provider?) { false }
411
- @mock_response = mock()
412
- @mock_document = mock()
411
+ @mock_response = double()
412
+ @mock_document = double()
413
413
  @mock_response.stub(:docs => [], :total => 1, :facets => [], :facet_queries => {}, :facet_by_field_name => nil)
414
- @mock_document = mock()
414
+ @mock_document = double()
415
415
  controller.stub(:find => @mock_response,
416
416
  :get_single_doc_via_search => @mock_document)
417
417
  end
@@ -235,17 +235,17 @@ describe BlacklightHelper do
235
235
 
236
236
  describe "render body class" do
237
237
  it "should include a serialization of the current controller name" do
238
- @controller = mock("controller")
239
- @controller.should_receive(:controller_name).any_number_of_times.and_return("123456")
240
- @controller.should_receive(:action_name).any_number_of_times.and_return("abcdef")
238
+ @controller = double("controller")
239
+ @controller.stub(:controller_name).and_return("123456")
240
+ @controller.stub(:action_name).and_return("abcdef")
241
241
 
242
242
  render_body_class.split(' ').should include('blacklight-123456')
243
243
  end
244
244
 
245
245
  it "should include a serialization of the current action name" do
246
- @controller = mock("controller")
247
- @controller.should_receive(:controller_name).any_number_of_times.and_return("123456")
248
- @controller.should_receive(:action_name).any_number_of_times.and_return("abcdef")
246
+ @controller = double("controller")
247
+ @controller.stub(:controller_name).and_return("123456")
248
+ @controller.stub(:action_name).and_return("abcdef")
249
249
 
250
250
  render_body_class.split(' ').should include('blacklight-123456-abcdef')
251
251
  end
@@ -305,20 +305,16 @@ describe BlacklightHelper do
305
305
  describe "render_document_index" do
306
306
  it "should render the document_list" do
307
307
  @document_list = ['a', 'b']
308
- self.stub!(:document_index_view_type) { "gallery" }
309
308
  self.should_receive(:render).with(hash_including(:partial => 'document_gallery'))
310
- render_document_index
309
+ render_document_index_with_view 'gallery', @document_list
311
310
  end
312
311
 
313
312
  it "should fall back on more specific templates" do
314
- @document_list = ['a', 'b']
315
- self.stub!(:document_index_view_type) { "gallery" }
316
-
317
313
  ex = ActionView::MissingTemplate.new [], '', '', '',''
318
314
  self.should_receive(:render).with(hash_including(:partial => 'document_gallery')).and_raise(ex)
319
315
  self.should_receive(:render).with(hash_including(:partial => 'catalog/document_gallery')).and_raise(ex)
320
316
  self.should_receive(:render).with(hash_including(:partial => 'catalog/document_list'))
321
- render_document_index
317
+ render_document_index_with_view 'gallery', @document_list
322
318
  end
323
319
  end
324
320
 
@@ -416,7 +412,7 @@ describe BlacklightHelper do
416
412
  @doc_id = "MOCK_ID1"
417
413
  @document = MockDocumentAppHelper.new(:id => @doc_id)
418
414
  render_params = {:controller => "controller", :action => "action"}
419
- helper.stub!(:params).and_return(render_params)
415
+ helper.stub(:params).and_return(render_params)
420
416
  end
421
417
  it "generates <link rel=alternate> tags" do
422
418
 
@@ -489,37 +485,46 @@ describe BlacklightHelper do
489
485
  end
490
486
 
491
487
  it "should check for an explicit value" do
492
- doc = mock()
488
+ doc = double()
493
489
  doc.should_not_receive(:get).with('asdf', :sep => nil)
494
490
  value = helper.render_index_field_value :value => 'asdf', :document => doc, :field => 'asdf'
495
491
  value.should == 'asdf'
496
492
  end
497
493
 
498
494
  it "should check for a helper method to call" do
499
- doc = mock()
495
+ doc = double()
500
496
  doc.should_not_receive(:get).with('asdf', :sep => nil)
501
497
  helper.stub(:render_asdf_index_field).and_return('custom asdf value')
502
498
  value = helper.render_index_field_value :document => doc, :field => 'asdf'
503
499
  value.should == 'custom asdf value'
504
500
  end
505
501
 
502
+ it "should gracefully handle when no highlight field is available" do
503
+ doc = double()
504
+ doc.should_not_receive(:get)
505
+ doc.should_receive(:has_highlight_field?).and_return(false)
506
+ value = helper.render_index_field_value :document => doc, :field => 'highlight'
507
+ value.should be_blank
508
+ end
509
+
506
510
  it "should check for a highlighted field" do
507
- doc = mock()
511
+ doc = double()
508
512
  doc.should_not_receive(:get)
513
+ doc.should_receive(:has_highlight_field?).and_return(true)
509
514
  doc.should_receive(:highlight_field).with('highlight').and_return(['<em>highlight</em>'.html_safe])
510
515
  value = helper.render_index_field_value :document => doc, :field => 'highlight'
511
516
  value.should == '<em>highlight</em>'
512
517
  end
513
518
 
514
519
  it "should check the document field value" do
515
- doc = mock()
520
+ doc = double()
516
521
  doc.should_receive(:get).with('qwer', :sep => nil).and_return('document qwer value')
517
522
  value = helper.render_index_field_value :document => doc, :field => 'qwer'
518
523
  value.should == 'document qwer value'
519
524
  end
520
525
 
521
526
  it "should work with index fields that aren't explicitly defined" do
522
- doc = mock()
527
+ doc = double()
523
528
  doc.should_receive(:get).with('mnbv', :sep => nil).and_return('document mnbv value')
524
529
  value = helper.render_index_field_value :document => doc, :field => 'mnbv'
525
530
  value.should == 'document mnbv value'
@@ -538,7 +543,7 @@ describe BlacklightHelper do
538
543
  end
539
544
 
540
545
  it "should check for an explicit value" do
541
- doc = mock()
546
+ doc = double()
542
547
  doc.should_not_receive(:get).with('asdf', :sep => nil)
543
548
  helper.should_not_receive(:render_asdf_document_show_field)
544
549
  value = helper.render_document_show_field_value :value => 'asdf', :document => doc, :field => 'asdf'
@@ -546,17 +551,25 @@ describe BlacklightHelper do
546
551
  end
547
552
 
548
553
  it "should check for a helper method to call" do
549
- doc = mock()
554
+ doc = double()
550
555
  doc.should_not_receive(:get).with('asdf', :sep => nil)
551
556
  helper.stub(:render_asdf_document_show_field).and_return('custom asdf value')
552
557
  value = helper.render_document_show_field_value :document => doc, :field => 'asdf'
553
558
  value.should == 'custom asdf value'
554
559
  end
555
560
 
561
+ it "should gracefully handle when no highlight field is available" do
562
+ doc = double()
563
+ doc.should_not_receive(:get)
564
+ doc.should_receive(:has_highlight_field?).and_return(false)
565
+ value = helper.render_document_show_field_value :document => doc, :field => 'highlight'
566
+ value.should be_blank
567
+ end
556
568
 
557
569
  it "should check for a highlighted field" do
558
- doc = mock()
570
+ doc = double()
559
571
  doc.should_not_receive(:get)
572
+ doc.should_receive(:has_highlight_field?).and_return(true)
560
573
  doc.should_receive(:highlight_field).with('highlight').and_return(['<em>highlight</em>'.html_safe])
561
574
  value = helper.render_document_show_field_value :document => doc, :field => 'highlight'
562
575
  value.should == '<em>highlight</em>'
@@ -564,14 +577,14 @@ describe BlacklightHelper do
564
577
 
565
578
 
566
579
  it "should check the document field value" do
567
- doc = mock()
580
+ doc = double()
568
581
  doc.should_receive(:get).with('qwer', :sep => nil).and_return('document qwer value')
569
582
  value = helper.render_document_show_field_value :document => doc, :field => 'qwer'
570
583
  value.should == 'document qwer value'
571
584
  end
572
585
 
573
586
  it "should work with show fields that aren't explicitly defined" do
574
- doc = mock()
587
+ doc = double()
575
588
  doc.should_receive(:get).with('mnbv', :sep => nil).and_return('document mnbv value')
576
589
  value = helper.render_document_show_field_value :document => doc, :field => 'mnbv'
577
590
  value.should == 'document mnbv value'
@@ -580,17 +593,17 @@ describe BlacklightHelper do
580
593
 
581
594
  describe "#should_render_index_field?" do
582
595
  it "should if the document has the field value" do
583
- doc = mock()
596
+ doc = double()
584
597
  doc.stub(:has?).with('asdf').and_return(true)
585
- field_config = mock(:field => 'asdf')
598
+ field_config = double(:field => 'asdf')
586
599
  helper.should_render_index_field?(doc, field_config).should == true
587
600
  end
588
601
 
589
602
  it "should if the document has a highlight field value" do
590
- doc = mock()
603
+ doc = double()
591
604
  doc.stub(:has?).with('asdf').and_return(false)
592
605
  doc.stub(:has_highlight_field?).with('asdf').and_return(true)
593
- field_config = mock(:field => 'asdf', :highlight => true)
606
+ field_config = double(:field => 'asdf', :highlight => true)
594
607
  helper.should_render_index_field?(doc, field_config).should == true
595
608
  end
596
609
  end
@@ -598,17 +611,17 @@ describe BlacklightHelper do
598
611
 
599
612
  describe "#should_render_show_field?" do
600
613
  it "should if the document has the field value" do
601
- doc = mock()
614
+ doc = double()
602
615
  doc.stub(:has?).with('asdf').and_return(true)
603
- field_config = mock(:field => 'asdf')
616
+ field_config = double(:field => 'asdf')
604
617
  helper.should_render_show_field?(doc, field_config).should == true
605
618
  end
606
619
 
607
620
  it "should if the document has a highlight field value" do
608
- doc = mock()
621
+ doc = double()
609
622
  doc.stub(:has?).with('asdf').and_return(false)
610
623
  doc.stub(:has_highlight_field?).with('asdf').and_return(true)
611
- field_config = mock(:field => 'asdf', :highlight => true)
624
+ field_config = double(:field => 'asdf', :highlight => true)
612
625
  helper.should_render_show_field?(doc, field_config).should == true
613
626
  end
614
627
  end
@@ -10,11 +10,11 @@ describe CatalogHelper do
10
10
  total = args[:total]
11
11
  start = (current_page - 1) * per_page
12
12
 
13
- mock_response = mock("Blacklight::SolrResponse")
14
- mock_response.stub!(:total).and_return(total)
15
- mock_response.stub!(:rows).and_return(per_page)
16
- mock_response.stub!(:start).and_return(start)
17
- mock_response.stub!(:docs).and_return((1..total).to_a.slice(start, per_page))
13
+ mock_response = double("Blacklight::SolrResponse")
14
+ mock_response.stub(:total).and_return(total)
15
+ mock_response.stub(:rows).and_return(per_page)
16
+ mock_response.stub(:start).and_return(start)
17
+ mock_response.stub(:docs).and_return((1..total).to_a.slice(start, per_page))
18
18
 
19
19
  mock_response
20
20
  end
@@ -9,9 +9,9 @@ describe FacetsHelper do
9
9
  describe "has_facet_values?" do
10
10
  it "should be true if there are any facets to display" do
11
11
 
12
- a = mock(:items => [1,2])
13
- b = mock(:items => ['b','c'])
14
- empty = mock(:items => [])
12
+ a = double(:items => [1,2])
13
+ b = double(:items => ['b','c'])
14
+ empty = double(:items => [])
15
15
 
16
16
  fields = [a,b,empty]
17
17
  helper.has_facet_values?(fields).should be_true
@@ -19,7 +19,7 @@ describe FacetsHelper do
19
19
 
20
20
  it "should be false if all facets are empty" do
21
21
 
22
- empty = mock(:items => [])
22
+ empty = double(:items => [])
23
23
 
24
24
  fields = [empty]
25
25
  helper.has_facet_values?(fields).should_not be_true
@@ -36,34 +36,34 @@ describe FacetsHelper do
36
36
  helper.stub(:blacklight_config => @config)
37
37
  end
38
38
  it "should render facets with items" do
39
- a = mock(:items => [1,2], :name=>'basic_field')
39
+ a = double(:items => [1,2], :name=>'basic_field')
40
40
  helper.should_render_facet?(a).should == true
41
41
  end
42
42
  it "should not render facets without items" do
43
- empty = mock(:items => [], :name=>'basic_field')
43
+ empty = double(:items => [], :name=>'basic_field')
44
44
  helper.should_render_facet?(empty).should == false
45
45
  end
46
46
 
47
47
  it "should not render facets where show is set to false" do
48
- a = mock(:items => [1,2], :name=>'no_show')
48
+ a = double(:items => [1,2], :name=>'no_show')
49
49
  helper.should_render_facet?(a).should == false
50
50
  end
51
51
  end
52
52
 
53
53
  describe "facet_by_field_name" do
54
54
  it "should retrieve the facet from the response given a string" do
55
- facet_config = mock(:query => nil)
56
- facet_field = mock()
55
+ facet_config = double(:query => nil)
56
+ facet_field = double()
57
57
  helper.should_receive(:facet_configuration_for_field).with(anything()).and_return(facet_config)
58
58
 
59
- @response = mock()
59
+ @response = double()
60
60
  @response.should_receive(:facet_by_field_name).with('a').and_return(facet_field)
61
61
 
62
62
  helper.facet_by_field_name('a').should == facet_field
63
63
  end
64
64
 
65
65
  it "should also work for facet query fields" do
66
- facet_config = mock(:query => {})
66
+ facet_config = double(:query => {})
67
67
  helper.should_receive(:facet_configuration_for_field).with('a_query_facet_field').and_return(facet_config)
68
68
  helper.should_receive(:create_rsolr_facet_field_response_for_query_facet_field).with('a_query_facet_field', facet_config)
69
69
 
@@ -72,7 +72,7 @@ describe FacetsHelper do
72
72
 
73
73
  describe "query facets" do
74
74
  let(:facet_config) {
75
- mock(
75
+ double(
76
76
  :query => {
77
77
  'a_simple_query' => { :fq => 'field:search', :label => 'A Human Readable label'},
78
78
  'another_query' => { :fq => 'field:different_search', :label => 'Label'},
@@ -84,7 +84,7 @@ describe FacetsHelper do
84
84
  before(:each) do
85
85
  helper.should_receive(:facet_configuration_for_field).with(anything()).and_return(facet_config)
86
86
 
87
- @response = mock(:facet_queries => {
87
+ @response = double(:facet_queries => {
88
88
  'field:search' => 10,
89
89
  'field:different_search' => 2,
90
90
  'field:not_appearing_in_the_config' => 50,
@@ -92,7 +92,7 @@ describe FacetsHelper do
92
92
  })
93
93
  end
94
94
 
95
- it"should convert the query facets into a mock RSolr FacetField" do
95
+ it"should convert the query facets into a double RSolr FacetField" do
96
96
  field = helper.facet_by_field_name('my_query_facet_field')
97
97
  field.should be_a_kind_of Blacklight::SolrResponse::Facets::FacetField
98
98
 
@@ -110,16 +110,16 @@ describe FacetsHelper do
110
110
 
111
111
  describe "pivot facets" do
112
112
  let(:facet_config) {
113
- mock(:pivot => ['field_a', 'field_b'])
113
+ double(:pivot => ['field_a', 'field_b'])
114
114
  }
115
115
 
116
116
  before(:each) do
117
117
  helper.should_receive(:facet_configuration_for_field).with(anything()).and_return(facet_config)
118
118
 
119
- @response = mock(:facet_pivot => { 'field_a,field_b' => [{:field => 'field_a', :value => 'a', :count => 10, :pivot => [{:field => 'field_b', :value => 'b', :count => 2}]}]})
119
+ @response = double(:facet_pivot => { 'field_a,field_b' => [{:field => 'field_a', :value => 'a', :count => 10, :pivot => [{:field => 'field_b', :value => 'b', :count => 2}]}]})
120
120
  end
121
121
 
122
- it "should convert the pivot facet into a mock RSolr FacetField" do
122
+ it "should convert the pivot facet into a double RSolr FacetField" do
123
123
  field = helper.facet_by_field_name('my_pivot_facet_field')
124
124
  field.should be_a_kind_of Blacklight::SolrResponse::Facets::FacetField
125
125
 
@@ -138,9 +138,9 @@ describe FacetsHelper do
138
138
 
139
139
  describe "render_facet_partials" do
140
140
  it "should try to render all provided facets " do
141
- a = mock(:items => [1,2])
142
- b = mock(:items => ['b','c'])
143
- empty = mock(:items => [])
141
+ a = double(:items => [1,2])
142
+ b = double(:items => ['b','c'])
143
+ empty = double(:items => [])
144
144
 
145
145
  fields = [a,b,empty]
146
146
 
@@ -152,8 +152,8 @@ describe FacetsHelper do
152
152
  end
153
153
 
154
154
  it "should default to the configured facets" do
155
- a = mock(:items => [1,2])
156
- b = mock(:items => ['b','c'])
155
+ a = double(:items => [1,2])
156
+ b = double(:items => ['b','c'])
157
157
  helper.should_receive(:facet_field_names) { [a,b] }
158
158
 
159
159
  helper.should_receive(:render_facet_limit).with(a, {})
@@ -175,11 +175,11 @@ describe FacetsHelper do
175
175
  end
176
176
 
177
177
  helper.stub(:blacklight_config => @config)
178
- @response = mock()
178
+ @response = double()
179
179
  end
180
180
 
181
181
  it "should set basic local variables" do
182
- @mock_facet = mock(:name => 'basic_field', :items => [1,2,3])
182
+ @mock_facet = double(:name => 'basic_field', :items => [1,2,3])
183
183
  helper.should_receive(:render).with(hash_including(:partial => 'facet_limit',
184
184
  :locals => {
185
185
  :solr_field => 'basic_field',
@@ -197,37 +197,37 @@ describe FacetsHelper do
197
197
  end
198
198
 
199
199
  it "should render a facet _not_ declared in the configuration" do
200
- @mock_facet = mock(:name => 'asdf', :items => [1,2,3])
200
+ @mock_facet = double(:name => 'asdf', :items => [1,2,3])
201
201
  helper.should_receive(:render).with(hash_including(:partial => 'facet_limit'))
202
202
  helper.render_facet_limit(@mock_facet)
203
203
  end
204
204
 
205
205
  it "should get the partial name from the configuration" do
206
- @mock_facet = mock(:name => 'my_facet_field_with_custom_partial', :items => [1,2,3])
206
+ @mock_facet = double(:name => 'my_facet_field_with_custom_partial', :items => [1,2,3])
207
207
  helper.should_receive(:render).with(hash_including(:partial => 'custom_facet_partial'))
208
208
  helper.render_facet_limit(@mock_facet)
209
209
  end
210
210
 
211
211
  it "should use a partial layout for rendering the facet frame" do
212
- @mock_facet = mock(:name => 'my_facet_field_with_custom_partial', :items => [1,2,3])
212
+ @mock_facet = double(:name => 'my_facet_field_with_custom_partial', :items => [1,2,3])
213
213
  helper.should_receive(:render).with(hash_including(:layout => 'facet_layout'))
214
214
  helper.render_facet_limit(@mock_facet)
215
215
  end
216
216
 
217
217
  it "should allow the caller to opt-out of facet layouts" do
218
- @mock_facet = mock(:name => 'my_facet_field_with_custom_partial', :items => [1,2,3])
218
+ @mock_facet = double(:name => 'my_facet_field_with_custom_partial', :items => [1,2,3])
219
219
  helper.should_receive(:render).with(hash_including(:layout => nil))
220
220
  helper.render_facet_limit(@mock_facet, :layout => nil)
221
221
  end
222
222
 
223
223
  it "should render the facet_pivot partial for pivot facets" do
224
- @mock_facet = mock(:name => 'pivot_facet_field', :items => [1,2,3])
224
+ @mock_facet = double(:name => 'pivot_facet_field', :items => [1,2,3])
225
225
  helper.should_receive(:render).with(hash_including(:partial => 'facet_pivot'))
226
226
  helper.render_facet_limit(@mock_facet)
227
227
  end
228
228
 
229
229
  it "should let you override the rendered partial for pivot facets" do
230
- @mock_facet = mock(:name => 'my_pivot_facet_field_with_custom_partial', :items => [1,2,3])
230
+ @mock_facet = double(:name => 'my_pivot_facet_field_with_custom_partial', :items => [1,2,3])
231
231
  helper.should_receive(:render).with(hash_including(:partial => 'custom_facet_partial'))
232
232
  helper.render_facet_limit(@mock_facet)
233
233
  end
@@ -240,7 +240,7 @@ describe FacetsHelper do
240
240
  end
241
241
 
242
242
  it "should add facet value for no pre-existing facets" do
243
- helper.stub!(:params).and_return(@params_no_existing_facet)
243
+ helper.stub(:params).and_return(@params_no_existing_facet)
244
244
 
245
245
  result_params = helper.add_facet_params("facet_field", "facet_value")
246
246
  result_params[:f].should be_a_kind_of(Hash)
@@ -249,7 +249,7 @@ describe FacetsHelper do
249
249
  end
250
250
 
251
251
  it "should add a facet param to existing facet constraints" do
252
- helper.stub!(:params).and_return(@params_existing_facets)
252
+ helper.stub(:params).and_return(@params_existing_facets)
253
253
 
254
254
  result_params = helper.add_facet_params("facet_field_2", "new_facet_value")
255
255
 
@@ -267,7 +267,7 @@ describe FacetsHelper do
267
267
  end
268
268
  it "should leave non-facet params alone" do
269
269
  [@params_existing_facets, @params_no_existing_facet].each do |params|
270
- helper.stub!(:params).and_return(params)
270
+ helper.stub(:params).and_return(params)
271
271
 
272
272
  result_params = helper.add_facet_params("facet_field_2", "new_facet_value")
273
273
 
@@ -279,9 +279,9 @@ describe FacetsHelper do
279
279
  end
280
280
 
281
281
  it "should replace facets for facets configured as single" do
282
- helper.should_receive(:facet_configuration_for_field).with('single_value_facet_field').and_return(mock(:single => true))
282
+ helper.should_receive(:facet_configuration_for_field).with('single_value_facet_field').and_return(double(:single => true))
283
283
  params = { :f => { 'single_value_facet_field' => 'other_value'}}
284
- helper.stub!(:params).and_return params
284
+ helper.stub(:params).and_return params
285
285
 
286
286
  result_params = helper.add_facet_params('single_value_facet_field', 'my_value')
287
287
 
@@ -292,14 +292,14 @@ describe FacetsHelper do
292
292
 
293
293
  it "should accept a FacetItem instead of a plain facet value" do
294
294
 
295
- result_params = helper.add_facet_params('facet_field_1', mock(:value => 123))
295
+ result_params = helper.add_facet_params('facet_field_1', double(:value => 123))
296
296
 
297
297
  result_params[:f]['facet_field_1'].should include(123)
298
298
  end
299
299
 
300
300
  it "should defer to the field set on a FacetItem" do
301
301
 
302
- result_params = helper.add_facet_params('facet_field_1', mock(:field => 'facet_field_2', :value => 123))
302
+ result_params = helper.add_facet_params('facet_field_1', double(:field => 'facet_field_2', :value => 123))
303
303
 
304
304
  result_params[:f]['facet_field_1'].should be_blank
305
305
  result_params[:f]['facet_field_2'].should include(123)
@@ -307,7 +307,7 @@ describe FacetsHelper do
307
307
 
308
308
  it "should add any extra fq parameters from the FacetItem" do
309
309
 
310
- result_params = helper.add_facet_params('facet_field_1', mock(:value => 123, :fq => {'facet_field_2' => 'abc'}))
310
+ result_params = helper.add_facet_params('facet_field_1', double(:value => 123, :fq => {'facet_field_2' => 'abc'}))
311
311
 
312
312
  result_params[:f]['facet_field_1'].should include(123)
313
313
  result_params[:f]['facet_field_2'].should include('abc')
@@ -325,7 +325,7 @@ describe FacetsHelper do
325
325
  Blacklight::Solr::FacetPaginator.request_keys[:sort] => "index",
326
326
  :id => 'facet_field_name'
327
327
  }
328
- helper.stub!(:params).and_return(catalog_facet_params)
328
+ helper.stub(:params).and_return(catalog_facet_params)
329
329
  end
330
330
  it "should redirect to 'index' action" do
331
331
  params = helper.add_facet_params_and_redirect("facet_field_2", "facet_value")
@@ -366,31 +366,31 @@ describe FacetsHelper do
366
366
 
367
367
  describe "render_facet_value" do
368
368
  it "should use facet_display_value" do
369
- helper.stub(:facet_configuration_for_field).with('simple_field').and_return(mock(:query => nil, :date => nil, :helper_method => nil, :single => false))
369
+ helper.stub(:facet_configuration_for_field).with('simple_field').and_return(double(:query => nil, :date => nil, :helper_method => nil, :single => false))
370
370
 
371
371
  helper.should_receive(:facet_display_value).and_return('Z')
372
372
  helper.should_receive(:add_facet_params_and_redirect).and_return('link')
373
- helper.render_facet_value('simple_field', mock(:value => 'A', :hits => 10)).should == (helper.link_to("Z", "link", :class => "facet_select") + " " + (helper.content_tag :span, 10, :class => 'count')).html_safe
373
+ helper.render_facet_value('simple_field', double(:value => 'A', :hits => 10)).should == (helper.link_to("Z", "link", :class => "facet_select") + " " + (helper.content_tag :span, 10, :class => 'count')).html_safe
374
374
  end
375
375
 
376
376
 
377
377
  it "should suppress the link" do
378
- helper.stub(:facet_configuration_for_field).with('simple_field').and_return(mock(:query => nil, :date => nil, :helper_method => nil, :single => false))
378
+ helper.stub(:facet_configuration_for_field).with('simple_field').and_return(double(:query => nil, :date => nil, :helper_method => nil, :single => false))
379
379
 
380
380
  helper.should_receive(:facet_display_value).and_return('Z')
381
381
  helper.should_receive(:add_facet_params_and_redirect).and_return('link')
382
- helper.render_facet_value('simple_field', mock(:value => 'A', :hits => 10), :suppress_link => true).should == "Z <span class=\"count\">10</span>"
382
+ helper.render_facet_value('simple_field', double(:value => 'A', :hits => 10), :suppress_link => true).should == "Z <span class=\"count\">10</span>"
383
383
  end
384
384
  end
385
385
 
386
386
  describe "#facet_display_value" do
387
387
  it "should just be the facet value for an ordinary facet" do
388
- helper.stub(:facet_configuration_for_field).with('simple_field').and_return(mock(:query => nil, :date => nil, :helper_method => nil))
388
+ helper.stub(:facet_configuration_for_field).with('simple_field').and_return(double(:query => nil, :date => nil, :helper_method => nil))
389
389
  helper.facet_display_value('simple_field', 'asdf').should == 'asdf'
390
390
  end
391
391
 
392
392
  it "should allow you to pass in a :helper_method argument to the configuration" do
393
- helper.stub(:facet_configuration_for_field).with('helper_field').and_return(mock(:query => nil, :date => nil, :helper_method => :my_facet_value_renderer))
393
+ helper.stub(:facet_configuration_for_field).with('helper_field').and_return(double(:query => nil, :date => nil, :helper_method => :my_facet_value_renderer))
394
394
 
395
395
  helper.should_receive(:my_facet_value_renderer).with('qwerty').and_return('abc')
396
396
 
@@ -398,17 +398,17 @@ describe FacetsHelper do
398
398
  end
399
399
 
400
400
  it "should extract the configuration label for a query facet" do
401
- helper.stub(:facet_configuration_for_field).with('query_facet').and_return(mock(:query => { 'query_key' => { :label => 'XYZ'}}, :date => nil, :helper_method => nil))
401
+ helper.stub(:facet_configuration_for_field).with('query_facet').and_return(double(:query => { 'query_key' => { :label => 'XYZ'}}, :date => nil, :helper_method => nil))
402
402
  helper.facet_display_value('query_facet', 'query_key').should == 'XYZ'
403
403
  end
404
404
 
405
405
  it "should localize the label for date-type facets" do
406
- helper.stub(:facet_configuration_for_field).with('date_facet').and_return(mock('date' => true, :query => nil, :helper_method => nil))
406
+ helper.stub(:facet_configuration_for_field).with('date_facet').and_return(double('date' => true, :query => nil, :helper_method => nil))
407
407
  helper.facet_display_value('date_facet', '2012-01-01').should == 'Sun, 01 Jan 2012 00:00:00 +0000'
408
408
  end
409
409
 
410
410
  it "should localize the label for date-type facets with the supplied localization options" do
411
- helper.stub(:facet_configuration_for_field).with('date_facet').and_return(mock('date' => { :format => :short }, :query => nil, :helper_method => nil))
411
+ helper.stub(:facet_configuration_for_field).with('date_facet').and_return(double('date' => { :format => :short }, :query => nil, :helper_method => nil))
412
412
  helper.facet_display_value('date_facet', '2012-01-01').should == '01 Jan 00:00'
413
413
  end
414
414
  end