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
@@ -15,26 +15,26 @@ describe SearchHistoryController do
15
15
  session[:history] = [@one.id, @three.id]
16
16
  get :index
17
17
  @searches = assigns(:searches)
18
- @searches.length.should == 2
19
- @searches.should include(@one)
20
- @searches.should include(@three)
21
- @searches.should_not include(@two)
18
+ expect(@searches.length).to eq(2)
19
+ expect(@searches).to include(@one)
20
+ expect(@searches).to include(@three)
21
+ expect(@searches).not_to include(@two)
22
22
  end
23
23
 
24
24
  it "should tolerate bad ids in session" do
25
25
  session[:history] = [@one.id, @three.id, "NOT_IN_DB"]
26
26
  get :index
27
27
  @searches = assigns(:searches)
28
- @searches.length.should == 2
29
- @searches.should include(@one)
30
- @searches.should include(@three)
28
+ expect(@searches.length).to eq(2)
29
+ expect(@searches).to include(@one)
30
+ expect(@searches).to include(@three)
31
31
  end
32
32
 
33
33
  it "should not fetch any searches if there is no history" do
34
34
  session[:history] = []
35
35
  get :index
36
36
  @searches = assigns(:searches)
37
- @searches.length.should == 0
37
+ expect(@searches.length).to eq(0)
38
38
  end
39
39
  end
40
40
 
@@ -3,17 +3,19 @@ require 'spec_helper'
3
3
  describe "Alternate Controller Behaviors" do
4
4
  it "should have the correct per-page form" do
5
5
  visit alternate_index_path
6
- page.should have_selector("form[action='#{alternate_index_path}']")
6
+ expect(page).to have_selector("form[action='#{alternate_index_path}']")
7
7
  fill_in "q", :with=>"history"
8
8
  click_button 'search'
9
9
  expect(current_path).to match /#{alternate_index_path}/
10
- click_on '10 per page'
10
+ within ("#per_page-dropdown") do
11
+ click_link '20 per page'
12
+ end
11
13
  expect(current_path).to match /#{alternate_index_path}/
12
14
  end
13
15
 
14
16
  it "should have the correct search field form" do
15
17
  visit alternate_index_path
16
- page.should have_selector("form[action='#{alternate_index_path}']")
18
+ expect(page).to have_selector("form[action='#{alternate_index_path}']")
17
19
  fill_in "q", :with=>"history"
18
20
  click_button 'search'
19
21
  expect(current_path).to match /#{alternate_index_path}/
@@ -23,7 +25,7 @@ describe "Alternate Controller Behaviors" do
23
25
 
24
26
  it "should display document thumbnails" do
25
27
  visit alternate_index_path
26
- page.should have_selector("form[action='#{alternate_index_path}']")
28
+ expect(page).to have_selector("form[action='#{alternate_index_path}']")
27
29
  fill_in "q", :with=>"history"
28
30
  click_button 'search'
29
31
  expect(page).to have_selector ".document-thumbnail"
@@ -31,4 +33,4 @@ describe "Alternate Controller Behaviors" do
31
33
  expect(page).to have_selector ".document-thumbnail a img"
32
34
 
33
35
  end
34
- end
36
+ end
@@ -14,7 +14,10 @@ describe "Record View" do
14
14
  expect(page).to have_content "Book"
15
15
  expect(page).to have_content "Call number:"
16
16
  expect(page).to have_content "E99.D2 H437 2008"
17
+ tmp_value = Capybara.ignore_hidden_elements
18
+ Capybara.ignore_hidden_elements = false
17
19
  expect(page).to have_selector("link[rel=alternate]")
20
+ Capybara.ignore_hidden_elements = tmp_value
18
21
 
19
22
  end
20
23
 
@@ -31,7 +34,7 @@ describe "Record View" do
31
34
  end
32
35
  it "should not display 404" do
33
36
  visit catalog_path('this_id_does_not_exist')
34
- page.driver.status_code.should == 404
37
+ expect(page.driver.status_code).to eq(404)
35
38
  expect(page).to have_content "Sorry, you have requested a record that doesn't exist."
36
39
  end
37
40
  end
@@ -3,11 +3,13 @@ require 'spec_helper'
3
3
  describe "Facets" do
4
4
  it "should work without a search term" do
5
5
  visit root_path
6
- click_link "Tibetan"
7
- within ("#sortAndPerPage") do
6
+ within 'div.blacklight-language_facet' do
7
+ click_link "Tibetan"
8
+ end
9
+ within "#sortAndPerPage" do
8
10
  expect(page).to have_content "1 - 6 of 6"
9
11
  end
10
- within(".blacklight-language_facet") do
12
+ within("div.blacklight-language_facet") do
11
13
  expect(page).to have_selector("span.selected", :text => "Tibetan 6")
12
14
  end
13
15
 
@@ -15,10 +17,10 @@ describe "Facets" do
15
17
  within ("#sortAndPerPage") do
16
18
  expect(page).to have_content "1 - 2 of 2"
17
19
  end
18
- within(".blacklight-language_facet") do
20
+ within("div.blacklight-language_facet") do
19
21
  expect(page).to have_selector("span.selected", :text => "Tibetan 2")
20
22
  end
21
- within(".blacklight-subject_geo_facet") do
23
+ within(".blacklight-subject_geo_facet") do
22
24
  expect(page).to have_selector("span.selected", :text => "India 2")
23
25
  end
24
26
  end
@@ -31,11 +33,13 @@ describe "Facets" do
31
33
  expect(page).to have_content "1 - 9 of 9"
32
34
  end
33
35
 
34
- click_link "Tibetan"
36
+ within "div.blacklight-language_facet" do
37
+ click_link "Tibetan"
38
+ end
35
39
  within ("#sortAndPerPage") do
36
40
  expect(page).to have_content "1 - 2 of 2"
37
41
  end
38
- within(".blacklight-language_facet") do
42
+ within("div.blacklight-language_facet") do
39
43
  expect(page).to have_selector("span.selected", :text => "Tibetan 2")
40
44
  end
41
45
  within "#appliedParams" do
@@ -48,21 +52,23 @@ describe "Facets" do
48
52
  within ("#sortAndPerPage") do
49
53
  expect(page).to have_content "1 entry found"
50
54
  end
51
- within(".blacklight-language_facet") do
55
+ within("div.blacklight-language_facet") do
52
56
  expect(page).to have_selector("span.selected", :text => "Tibetan 1")
53
57
  end
54
- within(".blacklight-pub_date") do
58
+ within(".blacklight-pub_date") do
55
59
  expect(page).to have_selector("span.selected", :text => "2004 1")
56
60
  end
57
61
  end
58
62
 
59
63
  it "should allow removing filters" do
60
64
  visit root_path
61
- click_link "Tibetan"
62
- within(".blacklight-language_facet") do
65
+ within "div.blacklight-language_facet" do
66
+ click_link "Tibetan"
67
+ end
68
+ within("div.blacklight-language_facet") do
63
69
  expect(page).to have_selector("span.selected", :text => "Tibetan 6")
64
70
  end
65
- within(".blacklight-language_facet") do
71
+ within("div.blacklight-language_facet") do
66
72
  click_link 'remove'
67
73
  end
68
74
  expect(page).to_not have_link 'remove'
@@ -73,26 +79,28 @@ describe "Facets" do
73
79
  visit root_path
74
80
  fill_in "q", with: 'history'
75
81
  click_button 'search'
76
- click_link 'Tibetan'
77
- within(".blacklight-language_facet") do
82
+ within "div.blacklight-language_facet" do
83
+ click_link "Tibetan"
84
+ end
85
+ within("div.blacklight-language_facet") do
78
86
  expect(page).to have_selector("span.selected", :text => "Tibetan 2")
79
87
  end
80
88
 
81
89
  click_link '2004'
82
90
 
83
- within(".blacklight-language_facet") do
91
+ within("div.blacklight-language_facet") do
84
92
  expect(page).to have_selector("span.selected", :text => "Tibetan 1")
85
93
  end
86
- within(".blacklight-pub_date") do
94
+ within(".blacklight-pub_date") do
87
95
  expect(page).to have_selector("span.selected", :text => "2004 1")
88
96
  end
89
97
  fill_in "q", with: 'china'
90
98
  click_button 'search'
91
99
 
92
- within(".blacklight-language_facet") do
100
+ within("div.blacklight-language_facet") do
93
101
  expect(page).to have_selector("span.selected", :text => "Tibetan 1")
94
102
  end
95
- within(".blacklight-pub_date") do
103
+ within(".blacklight-pub_date") do
96
104
  expect(page).to have_selector("span.selected", :text => "2004 1")
97
105
  end
98
106
  end
@@ -101,12 +109,14 @@ describe "Facets" do
101
109
  visit root_path
102
110
  fill_in "q", with: 'history'
103
111
  click_button 'search'
104
- click_link 'Tibetan'
105
- within(".blacklight-language_facet") do
112
+ within("div.blacklight-language_facet") do
113
+ click_link 'Tibetan'
114
+ end
115
+ within("div.blacklight-language_facet") do
106
116
  expect(page).to have_selector("span.selected", :text => "Tibetan 2")
107
117
  end
108
118
  click_link 'title'
109
- within(".blacklight-language_facet") do
119
+ within("div.blacklight-language_facet") do
110
120
  expect(page).to have_selector("span.selected", :text => "Tibetan 2")
111
121
  end
112
122
  within "#appliedParams" do
@@ -119,14 +129,17 @@ describe "Facets" do
119
129
  visit root_path
120
130
  fill_in "q", with: 'history'
121
131
  click_button 'search'
122
- click_link 'Tibetan'
123
- within(".blacklight-language_facet") do
132
+
133
+ within("div.blacklight-language_facet") do
134
+ click_link 'Tibetan'
135
+ end
136
+ within("div.blacklight-language_facet") do
124
137
  expect(page).to have_selector("span.selected", :text => "Tibetan 2")
125
138
  end
126
139
  within '#per_page-dropdown' do
127
140
  click_link '20'
128
141
  end
129
- within(".blacklight-language_facet") do
142
+ within("div.blacklight-language_facet") do
130
143
  expect(page).to have_selector("span.selected", :text => "Tibetan 2")
131
144
  end
132
145
  within "#appliedParams" do
@@ -16,12 +16,14 @@ describe "Search Pagination" do
16
16
  end
17
17
 
18
18
  end
19
- click_link "Next »"
20
- within ("#sortAndPerPage") do
19
+ within '#sortAndPerPage' do
20
+ click_link "Next »"
21
+ end
22
+ within "#sortAndPerPage" do
21
23
  expect(page).to have_content "11 - 20 of "
24
+ click_link "« Previous"
22
25
  end
23
- click_link "« Previous"
24
- within ("#sortAndPerPage") do
26
+ within "#sortAndPerPage" do
25
27
  expect(page).to have_content "1 - 10 of "
26
28
  end
27
29
  end
@@ -77,14 +79,16 @@ describe "Search Pagination" do
77
79
  visit root_path
78
80
  fill_in "q", with: ''
79
81
  click_button 'search'
80
- click_link "Next »"
81
- within ("#sortAndPerPage") do
82
+ within "#sortAndPerPage" do
83
+ click_link "Next »"
84
+ end
85
+ within "#sortAndPerPage" do
82
86
  expect(page).to have_content "11 - 20 of "
83
87
  end
84
88
  within ("#per_page-dropdown") do
85
89
  click_link '20'
86
90
  end
87
- within ("#sortAndPerPage") do
91
+ within "#sortAndPerPage" do
88
92
  expect(page).to have_content "1 - 20 of "
89
93
  end
90
94
  end
@@ -4,40 +4,43 @@ require 'spec_helper'
4
4
  describe "Search Results" do
5
5
  it "should have for an empty query" do
6
6
  search_for ''
7
- number_of_results_from_page(page).should == 30
8
- page.should have_xpath("//a[contains(@href, #{2007020969})]")
7
+ expect(number_of_results_from_page(page)).to eq(30)
8
+ expect(page).to have_xpath("//a[contains(@href, #{2007020969})]")
9
9
  search_for 'korea'
10
- number_of_results_from_page(page).should == 4
10
+ expect(number_of_results_from_page(page)).to eq(4)
11
11
  end
12
12
 
13
13
  it "should find same result set with or without diacritcs" do
14
14
  search_for 'inmul'
15
- number_of_results_from_page(page).should == 1
16
- page.should have_xpath("//a[contains(@href, #{77826928})]")
15
+ expect(number_of_results_from_page(page)).to eq(1)
16
+ expect(page).to have_xpath("//a[contains(@href, #{77826928})]")
17
17
 
18
18
  search_for 'inmül'
19
- number_of_results_from_page(page).should == 1
19
+ expect(number_of_results_from_page(page)).to eq(1)
20
20
  end
21
21
  it "should find same result set for a case-insensitive query " do
22
22
  search_for 'inmul'
23
- number_of_results_from_page(page).should == 1
24
- page.should have_xpath("//a[contains(@href, #{77826928})]")
23
+ expect(number_of_results_from_page(page)).to eq(1)
24
+ expect(page).to have_xpath("//a[contains(@href, #{77826928})]")
25
25
 
26
26
  search_for 'INMUL'
27
- number_of_results_from_page(page).should == 1
27
+ expect(number_of_results_from_page(page)).to eq(1)
28
28
  end
29
29
 
30
30
  it "should order by relevancy" do
31
31
  search_for "Korea"
32
- position_in_result_page(page, '77826928').should == 1
33
- position_in_result_page(page, '94120425').should == 2
34
-
32
+ expect(position_in_result_page(page, '77826928')).to eq(1)
33
+ expect(position_in_result_page(page, '94120425')).to eq(2)
34
+
35
35
  end
36
36
 
37
37
  it "should have an opensearch description document" do
38
38
  visit root_path
39
+ tmp_value = Capybara.ignore_hidden_elements
40
+ Capybara.ignore_hidden_elements = false
39
41
  page.should have_xpath("//link[contains(@rel, 'search')]")
40
42
  expect(page.find(:xpath, "//link[contains(@rel, 'search')]")[:href]).to eq "http://www.example.com/catalog/opensearch.xml"
43
+ Capybara.ignore_hidden_elements = tmp_value
41
44
  end
42
45
 
43
46
  it "should provide search hints if there are no results" do
@@ -46,6 +49,7 @@ describe "Search Results" do
46
49
  end
47
50
 
48
51
  it "should pass the current search id through", :js => true do
52
+ pending
49
53
  visit root_path
50
54
  fill_in "q", with: ''
51
55
  click_button 'search'
@@ -79,7 +83,7 @@ def position_in_result_page(page, id)
79
83
  end
80
84
  i.to_i
81
85
  end
82
-
86
+
83
87
  def number_of_results_for_query(query)
84
88
  visit root_path
85
89
  fill_in "q", :with => query
@@ -88,5 +92,9 @@ def number_of_results_for_query(query)
88
92
  end
89
93
 
90
94
  def number_of_results_from_page(page)
91
- page.find("meta[name=totalResults]")['content'].to_i rescue 0
95
+ tmp_value = Capybara.ignore_hidden_elements
96
+ Capybara.ignore_hidden_elements = false
97
+ val = page.find("meta[name=totalResults]")['content'].to_i rescue 0
98
+ Capybara.ignore_hidden_elements = tmp_value
99
+ val
92
100
  end
@@ -3,7 +3,9 @@ require 'spec_helper'
3
3
  describe "Search Sort" do
4
4
  it "should sort on facet results with no search terms" do
5
5
  visit root_path
6
- click_link 'English'
6
+ within("div.blacklight-language_facet") do
7
+ click_link 'English'
8
+ end
7
9
  expect(page).to have_content 'Sort by relevance'
8
10
  click_link 'title'
9
11
  expect(page).to have_content 'Sort by title'
@@ -15,7 +15,10 @@ describe "Search Page" do
15
15
  expect(page).to_not have_selector("#startOverLink")
16
16
 
17
17
  expect(page).to have_content "Welcome!"
18
+ tmp_value = Capybara.ignore_hidden_elements
19
+ Capybara.ignore_hidden_elements = false
18
20
  expect(page).to have_selector("link[rel=stylesheet]")
21
+ Capybara.ignore_hidden_elements = tmp_value
19
22
  end
20
23
 
21
24
  it "should do searches across all fields" do
@@ -24,6 +27,8 @@ describe "Search Page" do
24
27
  select 'All Fields', from: 'search_field'
25
28
  click_button 'search'
26
29
 
30
+ tmp_value = Capybara.ignore_hidden_elements
31
+ Capybara.ignore_hidden_elements = false
27
32
  expect(page).to have_selector("link[rel=alternate][type='application/rss+xml']")
28
33
  expect(page).to have_selector("link[rel=alternate][type='application/atom+xml']")
29
34
 
@@ -31,6 +36,7 @@ describe "Search Page" do
31
36
  expect(page).to have_selector("meta[name=totalResults]")
32
37
  expect(page).to have_selector("meta[name=startIndex]")
33
38
  expect(page).to have_selector("meta[name=itemsPerPage]")
39
+ Capybara.ignore_hidden_elements = tmp_value
34
40
 
35
41
  within "#appliedParams" do
36
42
  expect(page).to have_content "You searched for:"
@@ -1,7 +1,7 @@
1
1
  #ste -*- encoding : utf-8 -*-
2
2
  # -*- coding: UTF-8 -*-
3
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
4
- require 'marc'
3
+ require 'spec_helper'
4
+
5
5
  def exportable_record
6
6
  "<record>
7
7
  <leader>01828cjm a2200409 a 4500</leader>
@@ -82,7 +82,7 @@ describe BlacklightHelper do
82
82
  end
83
83
 
84
84
  before(:each) do
85
- helper.stub(:search_action_url) do |*args|
85
+ allow(helper).to receive(:search_action_url) do |*args|
86
86
  catalog_index_url *args
87
87
  end
88
88
  end
@@ -95,21 +95,21 @@ describe BlacklightHelper do
95
95
  describe "#index_field_names" do
96
96
  it "should warn" do
97
97
  expect(Blacklight::BlacklightHelperBehavior.deprecation_behavior.first).to receive(:call)
98
- helper.stub(:index_fields => {})
98
+ allow(helper).to receive_messages(:index_fields => {})
99
99
  helper.index_field_names
100
100
  end
101
101
  end
102
102
  describe "#index_field_labels" do
103
103
  it "should warn" do
104
104
  expect(Blacklight::BlacklightHelperBehavior.deprecation_behavior.first).to receive(:call)
105
- helper.stub(:index_fields => {})
105
+ allow(helper).to receive_messages(:index_fields => {})
106
106
  helper.index_field_labels
107
107
  end
108
108
  end
109
109
  describe "#document_show_field_labels" do
110
110
  it "should warn" do
111
111
  expect(Blacklight::BlacklightHelperBehavior.deprecation_behavior.first).to receive(:call)
112
- helper.stub(:document_show_fields => {})
112
+ allow(helper).to receive_messages(:document_show_fields => {})
113
113
  helper.document_show_field_labels
114
114
  end
115
115
  end
@@ -117,7 +117,7 @@ describe BlacklightHelper do
117
117
  describe "#render_document_list_partial" do
118
118
  it "should warn" do
119
119
  expect(Blacklight::BlacklightHelperBehavior.deprecation_behavior.first).to receive(:call)
120
- helper.stub(:render)
120
+ allow(helper).to receive(:render)
121
121
  helper.render_document_list_partial
122
122
  end
123
123
  end
@@ -125,12 +125,12 @@ describe BlacklightHelper do
125
125
 
126
126
  describe "#application_name", :test => true do
127
127
  it "should use the Rails application config application_name if available" do
128
- Rails.application.config.stub(:application_name => 'asdf')
129
- Rails.application.config.should_receive(:respond_to?).with(:application_name).and_return(true)
130
- application_name.should == 'asdf'
128
+ allow(Rails.application.config).to receive_messages(:application_name => 'asdf')
129
+ expect(Rails.application.config).to receive(:respond_to?).with(:application_name).and_return(true)
130
+ expect(application_name).to eq('asdf')
131
131
  end
132
132
  it "should default to 'Blacklight'" do
133
- application_name.should == "Blacklight"
133
+ expect(application_name).to eq("Blacklight")
134
134
  end
135
135
  end
136
136
 
@@ -141,50 +141,50 @@ describe BlacklightHelper do
141
141
  end
142
142
 
143
143
  it "should build a link tag to catalog using session[:search] for query params" do
144
- helper.stub(:current_search_session).and_return double(:query_params => @query_params)
144
+ allow(helper).to receive(:current_search_session).and_return double(:query_params => @query_params)
145
145
  tag = helper.link_back_to_catalog
146
- tag.should =~ /q=query/
147
- tag.should =~ /f=facets/
148
- tag.should =~ /per_page=10/
149
- tag.should =~ /page=2/
146
+ expect(tag).to match(/q=query/)
147
+ expect(tag).to match(/f=facets/)
148
+ expect(tag).to match(/per_page=10/)
149
+ expect(tag).to match(/page=2/)
150
150
  end
151
151
 
152
152
  it "should build a link tag to bookmarks using session[:search] for query params" do
153
- helper.stub(:current_search_session).and_return double(:query_params => @bookmarks_query_params)
153
+ allow(helper).to receive(:current_search_session).and_return double(:query_params => @bookmarks_query_params)
154
154
  tag = helper.link_back_to_catalog
155
- tag.should =~ /Back to Bookmarks/
156
- tag.should =~ /\/bookmarks/
157
- tag.should =~ /page=2/
155
+ expect(tag).to match(/Back to Bookmarks/)
156
+ expect(tag).to match(/\/bookmarks/)
157
+ expect(tag).to match(/page=2/)
158
158
  end
159
159
  end
160
160
 
161
161
  describe "link_to_query" do
162
162
  it "should build a link tag to catalog using query string (no other params)" do
163
163
  query = "brilliant"
164
- self.should_receive(:params).and_return({})
164
+ expect(self).to receive(:params).and_return({})
165
165
  tag = link_to_query(query)
166
- tag.should =~ /q=#{query}/
167
- tag.should =~ />#{query}<\/a>/
166
+ expect(tag).to match(/q=#{query}/)
167
+ expect(tag).to match(/>#{query}<\/a>/)
168
168
  end
169
169
  it "should build a link tag to catalog using query string and other existing params" do
170
170
  query = "wonderful"
171
- self.should_receive(:params).and_return({:qt => "title_search", :per_page => "50"})
171
+ expect(self).to receive(:params).and_return({:qt => "title_search", :per_page => "50"})
172
172
  tag = link_to_query(query)
173
- tag.should =~ /qt=title_search/
174
- tag.should =~ /per_page=50/
173
+ expect(tag).to match(/qt=title_search/)
174
+ expect(tag).to match(/per_page=50/)
175
175
  end
176
176
  it "should ignore existing :page param" do
177
177
  query = "yes"
178
- self.should_receive(:params).and_return({:page => "2", :qt => "author_search"})
178
+ expect(self).to receive(:params).and_return({:page => "2", :qt => "author_search"})
179
179
  tag = link_to_query(query)
180
- tag.should =~ /qt=author_search/
181
- tag.should_not =~ /page/
180
+ expect(tag).to match(/qt=author_search/)
181
+ expect(tag).not_to match(/page/)
182
182
  end
183
183
  it "should be html_safe" do
184
184
  query = "brilliant"
185
- self.should_receive(:params).and_return({:page => "2", :qt => "author_search"})
185
+ expect(self).to receive(:params).and_return({:page => "2", :qt => "author_search"})
186
186
  tag = link_to_query(query)
187
- tag.html_safe?.should == true
187
+ expect(tag.html_safe?).to eq(true)
188
188
  end
189
189
  end
190
190
 
@@ -212,24 +212,24 @@ describe BlacklightHelper do
212
212
 
213
213
  it "should default to using the controller's params" do
214
214
  result = params_for_search
215
- result.should == params
216
- params.object_id.should_not == result.object_id
215
+ expect(result).to eq(params)
216
+ expect(params.object_id).not_to eq(result.object_id)
217
217
  end
218
218
 
219
219
  it "should let you pass in params to use" do
220
220
  source_params = { :q => 'query'}
221
221
  result = params_for_search(source_params, {})
222
- source_params.should == result
223
- source_params.object_id.should_not == result.object_id
222
+ expect(source_params).to eq(result)
223
+ expect(source_params.object_id).not_to eq(result.object_id)
224
224
  end
225
225
 
226
226
  it "should let you pass in params to use (the deprecated way)" do
227
227
  source_params = { :q => 'query'}
228
228
  result = params_for_search(:params => source_params )
229
- source_params.should == result
230
- source_params.object_id.should_not == result.object_id
229
+ expect(source_params).to eq(result)
230
+ expect(source_params.object_id).not_to eq(result.object_id)
231
231
  end
232
-
232
+
233
233
 
234
234
  it "should let you pass in params to merge into the controller's params" do
235
235
  source_params = { :q => 'query'}
@@ -240,32 +240,32 @@ describe BlacklightHelper do
240
240
  it "should not return blacklisted elements" do
241
241
  source_params = { :action => 'action', :controller => 'controller', :id => "id", :commit => 'commit'}
242
242
  result = params_for_search(source_params, {} )
243
- result.keys.should_not include(:action, :controller, :commit, :id)
243
+ expect(result.keys).not_to include(:action, :controller, :commit, :id)
244
244
 
245
245
  end
246
246
 
247
247
  it "should adjust the current page if the per_page changes" do
248
248
  source_params = { :per_page => 20, :page => 5}
249
249
  result = params_for_search(source_params, :per_page => 100)
250
- result[:page].should == 1
250
+ expect(result[:page]).to eq(1)
251
251
  end
252
252
 
253
253
  it "should not adjust the current page if the per_page is the same as it always was" do
254
254
  source_params = { :per_page => 20, :page => 5}
255
255
  result = params_for_search(source_params, :per_page => 20)
256
- result[:page].should == 5
256
+ expect(result[:page]).to eq(5)
257
257
  end
258
258
 
259
259
  it "should adjust the current page if the sort changes" do
260
260
  source_params = { :sort => 'field_a', :page => 5}
261
261
  result = params_for_search(source_params, :sort => 'field_b')
262
- result[:page].should == 1
262
+ expect(result[:page]).to eq(1)
263
263
  end
264
264
 
265
265
  it "should not adjust the current page if the sort is the same as it always was" do
266
266
  source_params = { :sort => 'field_a', :page => 5}
267
267
  result = params_for_search(source_params, :sort => 'field_a')
268
- result[:page].should == 5
268
+ expect(result[:page]).to eq(5)
269
269
  end
270
270
 
271
271
  describe "omit keys parameter" do
@@ -273,33 +273,33 @@ describe BlacklightHelper do
273
273
  source_params = { :a => 1, :b => 2, :c => 3}
274
274
  result = params_for_search(source_params, :omit_keys => [:a, :b] )
275
275
 
276
- result.keys.should_not include(:a, :b)
277
- result[:c].should == 3
276
+ expect(result.keys).not_to include(:a, :b)
277
+ expect(result[:c]).to eq(3)
278
278
  end
279
279
 
280
280
  it "should remove keys if a key/value pair was passed and no values are left for that key" do
281
281
  source_params = { :f => ['a']}
282
282
  result = params_for_search(source_params, :omit_keys => [{:f => 'a' }])
283
- result.keys.should_not include(:f)
283
+ expect(result.keys).not_to include(:f)
284
284
  end
285
285
 
286
286
  it "should only remove keys when a key/value pair is based that are in that pair" do
287
287
 
288
288
  source_params = { :f => ['a', 'b']}
289
289
  result = params_for_search(source_params, :omit_keys => [{:f => 'a' }])
290
- result[:f].should_not include('a')
291
- result[:f].should include('b')
290
+ expect(result[:f]).not_to include('a')
291
+ expect(result[:f]).to include('b')
292
292
  end
293
293
  end
294
294
 
295
295
  describe "params_for_search with a block" do
296
296
  it "should evalute the block and allow it to add or remove keys" do
297
297
  result = params_for_search({:a => 1, :b => 2}, :c => 3) do |params|
298
- params.except! :a, :b
298
+ params.except! :a, :b
299
299
  params[:d] = 'd'
300
300
  end
301
301
 
302
- result.keys.should_not include(:a, :b)
302
+ expect(result.keys).not_to include(:a, :b)
303
303
  expect(result[:c]).to eq 3
304
304
  expect(result[:d]).to eq 'd'
305
305
  end
@@ -315,7 +315,7 @@ describe BlacklightHelper do
315
315
  describe "for default arguments" do
316
316
  it "should default to omitting :page" do
317
317
  Deprecation.silence(Blacklight::BlacklightHelperBehavior) do
318
- search_as_hidden_fields.should_not have_selector("input[name='page']")
318
+ expect(search_as_hidden_fields).not_to have_selector("input[name='page']")
319
319
  end
320
320
  end
321
321
  end
@@ -325,18 +325,18 @@ describe BlacklightHelper do
325
325
  describe "render body class" do
326
326
  it "should include a serialization of the current controller name" do
327
327
  @controller = double("controller")
328
- @controller.stub(:controller_name).and_return("123456")
329
- @controller.stub(:action_name).and_return("abcdef")
328
+ allow(@controller).to receive(:controller_name).and_return("123456")
329
+ allow(@controller).to receive(:action_name).and_return("abcdef")
330
330
 
331
- render_body_class.split(' ').should include('blacklight-123456')
331
+ expect(render_body_class.split(' ')).to include('blacklight-123456')
332
332
  end
333
333
 
334
334
  it "should include a serialization of the current action name" do
335
335
  @controller = double("controller")
336
- @controller.stub(:controller_name).and_return("123456")
337
- @controller.stub(:action_name).and_return("abcdef")
336
+ allow(@controller).to receive(:controller_name).and_return("123456")
337
+ allow(@controller).to receive(:action_name).and_return("abcdef")
338
338
 
339
- render_body_class.split(' ').should include('blacklight-123456-abcdef')
339
+ expect(render_body_class.split(' ')).to include('blacklight-123456-abcdef')
340
340
  end
341
341
  end
342
342
 
@@ -345,12 +345,12 @@ describe BlacklightHelper do
345
345
  it "should consist of the show heading field when available" do
346
346
  @document = SolrDocument.new('title_display' => "A Fake Document")
347
347
 
348
- document_heading.should == "A Fake Document"
348
+ expect(document_heading).to eq("A Fake Document")
349
349
  end
350
350
 
351
351
  it "should fallback on the document id if no title is available" do
352
352
  @document = SolrDocument.new(:id => '123456')
353
- document_heading.should == '123456'
353
+ expect(document_heading).to eq('123456')
354
354
  end
355
355
  end
356
356
 
@@ -358,40 +358,40 @@ describe BlacklightHelper do
358
358
  it "should consist of #document_heading wrapped in a <h1>" do
359
359
  @document = SolrDocument.new('title_display' => "A Fake Document")
360
360
 
361
- render_document_heading.should have_selector("h4", :text => "A Fake Document", :count => 1)
362
- render_document_heading.html_safe?.should == true
361
+ expect(render_document_heading).to have_selector("h4", :text => "A Fake Document", :count => 1)
362
+ expect(render_document_heading.html_safe?).to eq(true)
363
363
  end
364
364
  it "should join the values if it is an array" do
365
365
  @document = SolrDocument.new('title_display' => ["A Fake Document", 'Something Else'])
366
366
 
367
- render_document_heading.should have_selector("h4", :text => "A Fake Document, Something Else", :count => 1)
368
- render_document_heading.html_safe?.should == true
367
+ expect(render_document_heading).to have_selector("h4", :text => "A Fake Document, Something Else", :count => 1)
368
+ expect(render_document_heading.html_safe?).to eq(true)
369
369
  end
370
370
  end
371
371
 
372
372
  describe "document_show_html_title" do
373
373
  it "should join the values if it is an array" do
374
374
  @document = SolrDocument.new('title_display' => ["A Fake Document", 'Something Else'])
375
- document_show_html_title.should == "A Fake Document, Something Else"
375
+ expect(document_show_html_title).to eq("A Fake Document, Something Else")
376
376
  end
377
377
  end
378
378
 
379
379
  describe "document_index_view_type" do
380
380
  it "should default to 'list'" do
381
- document_index_view_type.should == 'list'
381
+ expect(document_index_view_type).to eq('list')
382
382
  end
383
383
 
384
384
  it "should pluck values out of params" do
385
- blacklight_config.stub(:document_index_view_types) { ['list', 'asdf'] }
385
+ allow(blacklight_config).to receive(:document_index_view_types) { ['list', 'asdf'] }
386
386
  params[:view] = 'asdf'
387
- document_index_view_type.should == 'asdf'
387
+ expect(document_index_view_type).to eq('asdf')
388
388
 
389
389
  params[:view] = 'not_in_list'
390
- document_index_view_type.should == 'list'
390
+ expect(document_index_view_type).to eq('list')
391
391
  end
392
392
 
393
393
  it "should pluck values from supplied params" do
394
- blacklight_config.stub(:document_index_view_types) { ['list', 'asdf'] }
394
+ allow(blacklight_config).to receive(:document_index_view_types) { ['list', 'asdf'] }
395
395
  params[:view] = 'asdf'
396
396
  expect(document_index_view_type(:view => 'list')).to eq 'list'
397
397
  end
@@ -399,14 +399,14 @@ describe BlacklightHelper do
399
399
 
400
400
  describe "start_over_path" do
401
401
  it 'should be the catalog path with the current view type' do
402
- blacklight_config.stub(:document_index_view_types) { ['list', 'abc'] }
403
- helper.stub(:blacklight_config => blacklight_config)
402
+ allow(blacklight_config).to receive(:document_index_view_types) { ['list', 'abc'] }
403
+ allow(helper).to receive_messages(:blacklight_config => blacklight_config)
404
404
  expect(helper.start_over_path(:view => 'abc')).to eq catalog_index_url(:view => 'abc')
405
405
  end
406
406
 
407
407
  it 'should not include the current view type if it is the default' do
408
- blacklight_config.stub(:document_index_view_types) { ['list', 'abc'] }
409
- helper.stub(:blacklight_config => blacklight_config)
408
+ allow(blacklight_config).to receive(:document_index_view_types) { ['list', 'abc'] }
409
+ allow(helper).to receive_messages(:blacklight_config => blacklight_config)
410
410
  expect(helper.start_over_path(:view => 'list')).to eq catalog_index_url
411
411
  end
412
412
  end
@@ -414,41 +414,41 @@ describe BlacklightHelper do
414
414
  describe "render_document_index" do
415
415
  it "should render the document_list" do
416
416
  @document_list = ['a', 'b']
417
- self.should_receive(:render).with(hash_including(:partial => 'document_gallery'))
417
+ expect(self).to receive(:render).with(hash_including(:partial => 'document_gallery'))
418
418
  render_document_index_with_view 'gallery', @document_list
419
419
  end
420
420
 
421
421
  it "should fall back on more specific templates" do
422
422
  ex = ActionView::MissingTemplate.new [], '', '', '',''
423
- self.should_receive(:render).with(hash_including(:partial => 'document_gallery')).and_raise(ex)
424
- self.should_receive(:render).with(hash_including(:partial => 'catalog/document_gallery')).and_raise(ex)
425
- self.should_receive(:render).with(hash_including(:partial => 'catalog/document_list'))
423
+ expect(self).to receive(:render).with(hash_including(:partial => 'document_gallery')).and_raise(ex)
424
+ expect(self).to receive(:render).with(hash_including(:partial => 'catalog/document_gallery')).and_raise(ex)
425
+ expect(self).to receive(:render).with(hash_including(:partial => 'catalog/document_list'))
426
426
  render_document_index_with_view 'gallery', @document_list
427
427
  end
428
428
  end
429
429
 
430
430
  describe "document_partial_name" do
431
431
  it "should default to 'default' when a format blank" do
432
- document_partial_name({}).should == "default"
432
+ expect(document_partial_name({})).to eq("default")
433
433
  end
434
434
  it "should handle normal formats correctly" do
435
- document_partial_name({"format" => "myformat"}).should == "myformat"
435
+ expect(document_partial_name({"format" => "myformat"})).to eq("myformat")
436
436
  end
437
437
  it "should handle spaces correctly" do
438
- document_partial_name({"format" => "my format"}).should == "my_format"
438
+ expect(document_partial_name({"format" => "my format"})).to eq("my_format")
439
439
  end
440
440
  it "should handle capitalization correctly" do
441
- document_partial_name({"format" => "MyFormat"}).should == "myformat"
441
+ expect(document_partial_name({"format" => "MyFormat"})).to eq("myformat")
442
442
  end
443
443
  it "should handle puncuation correctly" do
444
- document_partial_name({"format" => "My.Format"}).should == "my_format"
444
+ expect(document_partial_name({"format" => "My.Format"})).to eq("my_format")
445
445
  end
446
446
  it "should handle multi-valued fields correctly" do
447
- document_partial_name({"format" => ["My Format", "My OtherFormat"]}).should == "my_format_my_otherformat"
447
+ expect(document_partial_name({"format" => ["My Format", "My OtherFormat"]})).to eq("my_format_my_otherformat")
448
448
  end
449
449
  it "should remove - characters because they will throw errors" do
450
- document_partial_name({"format" => "My-Format"}).should == "my_format"
451
- document_partial_name({"format" => ["My-Format",["My Other-Format"]]}).should == "my_format_my_other_format"
450
+ expect(document_partial_name({"format" => "My-Format"})).to eq("my_format")
451
+ expect(document_partial_name({"format" => ["My-Format",["My Other-Format"]]})).to eq("my_format_my_other_format")
452
452
  end
453
453
  end
454
454
 
@@ -456,45 +456,45 @@ describe BlacklightHelper do
456
456
  it "should consist of the document title wrapped in a <a>" do
457
457
  data = {'id'=>'123456','title_display'=>['654321'] }
458
458
  @document = SolrDocument.new(data)
459
- link_to_document(@document, { :label => :title_display }).should have_selector("a", :text => '654321', :count => 1)
459
+ expect(link_to_document(@document, { :label => :title_display })).to have_selector("a", :text => '654321', :count => 1)
460
460
  end
461
461
  it "should accept and return a string label" do
462
462
  data = {'id'=>'123456','title_display'=>['654321'] }
463
463
  @document = SolrDocument.new(data)
464
- link_to_document(@document, { :label => "title_display" }).should have_selector("a", :text => 'title_display', :count => 1)
464
+ expect(link_to_document(@document, { :label => "title_display" })).to have_selector("a", :text => 'title_display', :count => 1)
465
465
  end
466
466
 
467
467
  it "should accept and return a Proc" do
468
468
  data = {'id'=>'123456','title_display'=>['654321'] }
469
469
  @document = SolrDocument.new(data)
470
- link_to_document(@document, { :label => Proc.new { |doc, opts| doc.get(:id) + ": " + doc.get(:title_display) } }).should have_selector("a", :text => '123456: 654321', :count => 1)
470
+ expect(link_to_document(@document, { :label => Proc.new { |doc, opts| doc.get(:id) + ": " + doc.get(:title_display) } })).to have_selector("a", :text => '123456: 654321', :count => 1)
471
471
  end
472
472
  it "should return id when label is missing" do
473
473
  data = {'id'=>'123456'}
474
474
  @document = SolrDocument.new(data)
475
- link_to_document(@document, { :label => :title_display }).should have_selector("a", :text => '123456', :count => 1)
475
+ expect(link_to_document(@document, { :label => :title_display })).to have_selector("a", :text => '123456', :count => 1)
476
476
  end
477
477
 
478
478
  it "should be html safe" do
479
479
  data = {'id'=>'123456'}
480
480
  @document = SolrDocument.new(data)
481
- link_to_document(@document, { :label => :title_display }).html_safe?.should == true
481
+ expect(link_to_document(@document, { :label => :title_display }).html_safe?).to eq(true)
482
482
  end
483
483
 
484
484
  it "should convert the counter parameter into a data- attribute" do
485
485
  data = {'id'=>'123456','title_display'=>['654321']}
486
486
  @document = SolrDocument.new(data)
487
- link_to_document(@document, { :label => :title_display, :counter => 5 }).should =~ /data-counter="5"/
487
+ expect(link_to_document(@document, { :label => :title_display, :counter => 5 })).to match(/data-counter="5"/)
488
488
  end
489
489
 
490
490
  it "passes on the title attribute to the link_to_with_data method" do
491
491
  @document = SolrDocument.new('id'=>'123456')
492
- link_to_document(@document,:label=>"Some crazy long label...",:title=>"Some crazy longer label").should match(/title=\"Some crazy longer label\"/)
492
+ expect(link_to_document(@document,:label=>"Some crazy long label...",:title=>"Some crazy longer label")).to match(/title=\"Some crazy longer label\"/)
493
493
  end
494
494
 
495
495
  it "doesn't add an erroneous title attribute if one isn't provided" do
496
496
  @document = SolrDocument.new('id'=>'123456')
497
- link_to_document(@document,:label=>"Some crazy long label...").should_not match(/title=/)
497
+ expect(link_to_document(@document,:label=>"Some crazy long label...")).not_to match(/title=/)
498
498
  end
499
499
  end
500
500
 
@@ -521,35 +521,44 @@ describe BlacklightHelper do
521
521
  @doc_id = "MOCK_ID1"
522
522
  @document = MockDocumentAppHelper.new(:id => @doc_id)
523
523
  render_params = {:controller => "controller", :action => "action"}
524
- helper.stub(:params).and_return(render_params)
524
+ allow(helper).to receive(:params).and_return(render_params)
525
525
  end
526
526
  it "generates <link rel=alternate> tags" do
527
527
 
528
528
  response = render_link_rel_alternates(@document)
529
529
 
530
+ tmp_value = Capybara.ignore_hidden_elements
531
+ Capybara.ignore_hidden_elements = false
530
532
  @document.export_formats.each_pair do |format, spec|
531
- response.should have_selector("link[href$='.#{ format }']") do |matches|
532
- matches.length.should == 1
533
+ expect(response).to have_selector("link[href$='.#{ format }']") do |matches|
534
+ expect(matches.length).to eq(1)
533
535
  tag = matches[0]
534
- tag.attributes["rel"].value.should == "alternate"
535
- tag.attributes["title"].value.should == format.to_s
536
- tag.attributes["href"].value.should === mock_document_app_helper_url(@document, :format =>format)
536
+ expect(tag.attributes["rel"].value).to eq("alternate")
537
+ expect(tag.attributes["title"].value).to eq(format.to_s)
538
+ expect(tag.attributes["href"].value).to be === mock_document_app_helper_url(@document, :format =>format)
537
539
  end
538
540
  end
541
+ Capybara.ignore_hidden_elements = tmp_value
539
542
  end
540
543
  it "respects :unique=>true" do
541
544
  response = render_link_rel_alternates(@document, :unique => true)
545
+ tmp_value = Capybara.ignore_hidden_elements
546
+ Capybara.ignore_hidden_elements = false
542
547
  response.should have_selector("link[type='application/weird']", :count => 1)
548
+ Capybara.ignore_hidden_elements = tmp_value
543
549
  end
544
550
  it "excludes formats from :exclude" do
545
551
  response = render_link_rel_alternates(@document, :exclude => [:weird_dup])
546
552
 
553
+ tmp_value = Capybara.ignore_hidden_elements
554
+ Capybara.ignore_hidden_elements = false
547
555
  response.should_not have_selector("link[href$='.weird_dup']")
556
+ Capybara.ignore_hidden_elements = tmp_value
548
557
  end
549
558
 
550
559
  it "should be html safe" do
551
560
  response = render_link_rel_alternates(@document)
552
- response.html_safe?.should == true
561
+ expect(response.html_safe?).to eq(true)
553
562
  end
554
563
  end
555
564
 
@@ -565,20 +574,20 @@ describe BlacklightHelper do
565
574
  end
566
575
 
567
576
  @document = SolrDocument.new('title_display' => "A Fake Document", 'id'=>'8')
568
- helper.stub(:blacklight_config).and_return(@config)
569
- helper.stub(:has_user_authentication_provider?).and_return(true)
570
- helper.stub(:current_or_guest_user).and_return(User.new)
577
+ allow(helper).to receive(:blacklight_config).and_return(@config)
578
+ allow(helper).to receive(:has_user_authentication_provider?).and_return(true)
579
+ allow(helper).to receive(:current_or_guest_user).and_return(User.new)
571
580
  end
572
581
  describe "render_index_doc_actions" do
573
582
  it "should render partials" do
574
583
  response = helper.render_index_doc_actions(@document)
575
- response.should have_selector(".bookmark_toggle")
584
+ expect(response).to have_selector(".bookmark_toggle")
576
585
  end
577
586
  end
578
587
  describe "render_show_doc_actions" do
579
588
  it "should render partials" do
580
589
  response = helper.render_show_doc_actions(@document)
581
- response.should have_selector(".bookmark_toggle")
590
+ expect(response).to have_selector(".bookmark_toggle")
582
591
  end
583
592
  end
584
593
  end
@@ -592,67 +601,67 @@ describe BlacklightHelper do
592
601
  config.add_index_field 'link_to_search_named', :link_to_search => :some_field
593
602
  config.add_index_field 'highlight', :highlight => true
594
603
  end
595
- helper.stub(:blacklight_config).and_return(@config)
604
+ allow(helper).to receive(:blacklight_config).and_return(@config)
596
605
  end
597
606
 
598
607
  it "should check for an explicit value" do
599
608
  doc = double()
600
- doc.should_not_receive(:get).with('asdf', :sep => nil)
609
+ expect(doc).not_to receive(:get).with('asdf', :sep => nil)
601
610
  value = helper.render_index_field_value :value => 'asdf', :document => doc, :field => 'asdf'
602
- value.should == 'asdf'
611
+ expect(value).to eq('asdf')
603
612
  end
604
613
 
605
614
  it "should check for a helper method to call" do
606
615
  doc = double()
607
- doc.should_not_receive(:get).with('asdf', :sep => nil)
608
- helper.stub(:render_asdf_index_field).and_return('custom asdf value')
616
+ expect(doc).not_to receive(:get).with('asdf', :sep => nil)
617
+ allow(helper).to receive(:render_asdf_index_field).and_return('custom asdf value')
609
618
  value = helper.render_index_field_value :document => doc, :field => 'asdf'
610
- value.should == 'custom asdf value'
619
+ expect(value).to eq('custom asdf value')
611
620
  end
612
621
 
613
622
  it "should check for a link_to_search" do
614
623
  doc = double()
615
- doc.should_receive(:get).with('link_to_search_true', :sep => nil).and_return('x')
624
+ expect(doc).to receive(:get).with('link_to_search_true', :sep => nil).and_return('x')
616
625
  value = helper.render_index_field_value :document => doc, :field => 'link_to_search_true'
617
- value.should == helper.link_to("x", helper.search_action_url(:f => { :link_to_search_true => ['x'] }))
626
+ expect(value).to eq(helper.link_to("x", helper.search_action_url(:f => { :link_to_search_true => ['x'] })))
618
627
  end
619
628
 
620
629
  it "should check for a link_to_search with a field name" do
621
630
  doc = double()
622
- doc.should_receive(:get).with('link_to_search_named', :sep => nil).and_return('x')
631
+ expect(doc).to receive(:get).with('link_to_search_named', :sep => nil).and_return('x')
623
632
  value = helper.render_index_field_value :document => doc, :field => 'link_to_search_named'
624
- value.should == helper.link_to("x", helper.search_action_url(:f => { :some_field => ['x'] }))
633
+ expect(value).to eq(helper.link_to("x", helper.search_action_url(:f => { :some_field => ['x'] })))
625
634
  end
626
635
 
627
636
  it "should gracefully handle when no highlight field is available" do
628
637
  doc = double()
629
- doc.should_not_receive(:get)
630
- doc.should_receive(:has_highlight_field?).and_return(false)
638
+ expect(doc).not_to receive(:get)
639
+ expect(doc).to receive(:has_highlight_field?).and_return(false)
631
640
  value = helper.render_index_field_value :document => doc, :field => 'highlight'
632
- value.should be_blank
641
+ expect(value).to be_blank
633
642
  end
634
643
 
635
644
  it "should check for a highlighted field" do
636
645
  doc = double()
637
- doc.should_not_receive(:get)
638
- doc.should_receive(:has_highlight_field?).and_return(true)
639
- doc.should_receive(:highlight_field).with('highlight').and_return(['<em>highlight</em>'.html_safe])
646
+ expect(doc).not_to receive(:get)
647
+ expect(doc).to receive(:has_highlight_field?).and_return(true)
648
+ expect(doc).to receive(:highlight_field).with('highlight').and_return(['<em>highlight</em>'.html_safe])
640
649
  value = helper.render_index_field_value :document => doc, :field => 'highlight'
641
- value.should == '<em>highlight</em>'
650
+ expect(value).to eq('<em>highlight</em>')
642
651
  end
643
652
 
644
653
  it "should check the document field value" do
645
654
  doc = double()
646
- doc.should_receive(:get).with('qwer', :sep => nil).and_return('document qwer value')
655
+ expect(doc).to receive(:get).with('qwer', :sep => nil).and_return('document qwer value')
647
656
  value = helper.render_index_field_value :document => doc, :field => 'qwer'
648
- value.should == 'document qwer value'
657
+ expect(value).to eq('document qwer value')
649
658
  end
650
659
 
651
660
  it "should work with index fields that aren't explicitly defined" do
652
661
  doc = double()
653
- doc.should_receive(:get).with('mnbv', :sep => nil).and_return('document mnbv value')
662
+ expect(doc).to receive(:get).with('mnbv', :sep => nil).and_return('document mnbv value')
654
663
  value = helper.render_index_field_value :document => doc, :field => 'mnbv'
655
- value.should == 'document mnbv value'
664
+ expect(value).to eq('document mnbv value')
656
665
  end
657
666
  end
658
667
 
@@ -666,86 +675,86 @@ describe BlacklightHelper do
666
675
  config.add_show_field 'link_to_search_named', :link_to_search => :some_field
667
676
  config.add_show_field 'highlight', :highlight => true
668
677
  end
669
- helper.stub(:blacklight_config).and_return(@config)
678
+ allow(helper).to receive(:blacklight_config).and_return(@config)
670
679
  end
671
680
 
672
681
  it "should check for an explicit value" do
673
682
  doc = double()
674
- doc.should_not_receive(:get).with('asdf', :sep => nil)
675
- helper.should_not_receive(:render_asdf_document_show_field)
683
+ expect(doc).not_to receive(:get).with('asdf', :sep => nil)
684
+ expect(helper).not_to receive(:render_asdf_document_show_field)
676
685
  value = helper.render_document_show_field_value :value => 'asdf', :document => doc, :field => 'asdf'
677
- value.should == 'asdf'
686
+ expect(value).to eq('asdf')
678
687
  end
679
688
 
680
689
  it "should check for a helper method to call" do
681
690
  doc = double()
682
- doc.should_not_receive(:get).with('asdf', :sep => nil)
683
- helper.stub(:render_asdf_document_show_field).and_return('custom asdf value')
691
+ expect(doc).not_to receive(:get).with('asdf', :sep => nil)
692
+ allow(helper).to receive(:render_asdf_document_show_field).and_return('custom asdf value')
684
693
  value = helper.render_document_show_field_value :document => doc, :field => 'asdf'
685
- value.should == 'custom asdf value'
694
+ expect(value).to eq('custom asdf value')
686
695
  end
687
696
 
688
697
  it "should check for a link_to_search" do
689
698
  doc = double()
690
- doc.should_receive(:get).with('link_to_search_true', :sep => nil).and_return('x')
699
+ expect(doc).to receive(:get).with('link_to_search_true', :sep => nil).and_return('x')
691
700
  value = helper.render_document_show_field_value :document => doc, :field => 'link_to_search_true'
692
- value.should == helper.link_to("x", helper.search_action_url(:f => { :link_to_search_true => ['x'] }))
701
+ expect(value).to eq(helper.link_to("x", helper.search_action_url(:f => { :link_to_search_true => ['x'] })))
693
702
  end
694
703
 
695
704
  it "should check for a link_to_search with a field name" do
696
705
  doc = double()
697
- doc.should_receive(:get).with('link_to_search_named', :sep => nil).and_return('x')
706
+ expect(doc).to receive(:get).with('link_to_search_named', :sep => nil).and_return('x')
698
707
  value = helper.render_document_show_field_value :document => doc, :field => 'link_to_search_named'
699
- value.should == helper.link_to("x", helper.search_action_url(:f => { :some_field => ['x'] }))
708
+ expect(value).to eq(helper.link_to("x", helper.search_action_url(:f => { :some_field => ['x'] })))
700
709
  end
701
710
 
702
711
  it "should gracefully handle when no highlight field is available" do
703
712
  doc = double()
704
- doc.should_not_receive(:get)
705
- doc.should_receive(:has_highlight_field?).and_return(false)
713
+ expect(doc).not_to receive(:get)
714
+ expect(doc).to receive(:has_highlight_field?).and_return(false)
706
715
  value = helper.render_document_show_field_value :document => doc, :field => 'highlight'
707
- value.should be_blank
716
+ expect(value).to be_blank
708
717
  end
709
718
 
710
719
  it "should check for a highlighted field" do
711
720
  doc = double()
712
- doc.should_not_receive(:get)
713
- doc.should_receive(:has_highlight_field?).and_return(true)
714
- doc.should_receive(:highlight_field).with('highlight').and_return(['<em>highlight</em>'.html_safe])
721
+ expect(doc).not_to receive(:get)
722
+ expect(doc).to receive(:has_highlight_field?).and_return(true)
723
+ expect(doc).to receive(:highlight_field).with('highlight').and_return(['<em>highlight</em>'.html_safe])
715
724
  value = helper.render_document_show_field_value :document => doc, :field => 'highlight'
716
- value.should == '<em>highlight</em>'
725
+ expect(value).to eq('<em>highlight</em>')
717
726
  end
718
727
 
719
728
 
720
729
  it "should check the document field value" do
721
730
  doc = double()
722
- doc.should_receive(:get).with('qwer', :sep => nil).and_return('document qwer value')
731
+ expect(doc).to receive(:get).with('qwer', :sep => nil).and_return('document qwer value')
723
732
  value = helper.render_document_show_field_value :document => doc, :field => 'qwer'
724
- value.should == 'document qwer value'
733
+ expect(value).to eq('document qwer value')
725
734
  end
726
735
 
727
736
  it "should work with show fields that aren't explicitly defined" do
728
737
  doc = double()
729
- doc.should_receive(:get).with('mnbv', :sep => nil).and_return('document mnbv value')
738
+ expect(doc).to receive(:get).with('mnbv', :sep => nil).and_return('document mnbv value')
730
739
  value = helper.render_document_show_field_value :document => doc, :field => 'mnbv'
731
- value.should == 'document mnbv value'
740
+ expect(value).to eq('document mnbv value')
732
741
  end
733
742
  end
734
743
 
735
744
  describe "#should_render_index_field?" do
736
745
  it "should if the document has the field value" do
737
746
  doc = double()
738
- doc.stub(:has?).with('asdf').and_return(true)
747
+ allow(doc).to receive(:has?).with('asdf').and_return(true)
739
748
  field_config = double(:field => 'asdf')
740
- helper.should_render_index_field?(doc, field_config).should == true
749
+ expect(helper.should_render_index_field?(doc, field_config)).to eq(true)
741
750
  end
742
751
 
743
752
  it "should if the document has a highlight field value" do
744
753
  doc = double()
745
- doc.stub(:has?).with('asdf').and_return(false)
746
- doc.stub(:has_highlight_field?).with('asdf').and_return(true)
754
+ allow(doc).to receive(:has?).with('asdf').and_return(false)
755
+ allow(doc).to receive(:has_highlight_field?).with('asdf').and_return(true)
747
756
  field_config = double(:field => 'asdf', :highlight => true)
748
- helper.should_render_index_field?(doc, field_config).should == true
757
+ expect(helper.should_render_index_field?(doc, field_config)).to eq(true)
749
758
  end
750
759
  end
751
760
 
@@ -753,17 +762,17 @@ describe BlacklightHelper do
753
762
  describe "#should_render_show_field?" do
754
763
  it "should if the document has the field value" do
755
764
  doc = double()
756
- doc.stub(:has?).with('asdf').and_return(true)
765
+ allow(doc).to receive(:has?).with('asdf').and_return(true)
757
766
  field_config = double(:field => 'asdf')
758
- helper.should_render_show_field?(doc, field_config).should == true
767
+ expect(helper.should_render_show_field?(doc, field_config)).to eq(true)
759
768
  end
760
769
 
761
770
  it "should if the document has a highlight field value" do
762
771
  doc = double()
763
- doc.stub(:has?).with('asdf').and_return(false)
764
- doc.stub(:has_highlight_field?).with('asdf').and_return(true)
772
+ allow(doc).to receive(:has?).with('asdf').and_return(false)
773
+ allow(doc).to receive(:has_highlight_field?).with('asdf').and_return(true)
765
774
  field_config = double(:field => 'asdf', :highlight => true)
766
- helper.should_render_show_field?(doc, field_config).should == true
775
+ expect(helper.should_render_show_field?(doc, field_config)).to eq(true)
767
776
  end
768
777
  end
769
778
 
@@ -771,13 +780,13 @@ describe BlacklightHelper do
771
780
  describe "render_grouped_response?" do
772
781
  it "should check if the response ivar contains grouped data" do
773
782
  assign(:response, double("SolrResponse", :grouped? => true))
774
- expect(helper.render_grouped_response?).to be_true
783
+ expect(helper.render_grouped_response?).to eq true
775
784
  end
776
785
 
777
786
 
778
787
  it "should check if the response param contains grouped data" do
779
788
  response = double("SolrResponse", :grouped? => true)
780
- expect(helper.render_grouped_response?(response)).to be_true
789
+ expect(helper.render_grouped_response?(response)).to eq true
781
790
  end
782
791
  end
783
792
 
@@ -791,7 +800,7 @@ describe BlacklightHelper do
791
800
  end
792
801
 
793
802
  it "should join values using the field_value_separator" do
794
- helper.stub(:field_value_separator).and_return(" -- ")
803
+ allow(helper).to receive(:field_value_separator).and_return(" -- ")
795
804
  expect(helper.render_field_value(['a', 'b'])).to eq "a -- b"
796
805
  end
797
806
 
@@ -803,28 +812,28 @@ describe BlacklightHelper do
803
812
  describe "link_to_previous_search" do
804
813
  it "should link to the given search parameters" do
805
814
  params = {}
806
- helper.should_receive(:render_search_to_s).with(params).and_return "link text"
815
+ expect(helper).to receive(:render_search_to_s).with(params).and_return "link text"
807
816
  expect(helper.link_to_previous_search({})).to eq helper.link_to("link text", catalog_index_path)
808
817
  end
809
818
  end
810
819
 
811
820
  describe "should_show_spellcheck_suggestions?" do
812
821
  before :each do
813
- helper.stub spell_check_max: 5
822
+ allow(helper).to receive_messages spell_check_max: 5
814
823
  end
815
824
  it "should not show suggestions if there are enough results" do
816
825
  response = double(total: 10)
817
- expect(helper.should_show_spellcheck_suggestions? response).to be_false
826
+ expect(helper.should_show_spellcheck_suggestions? response).to eq false
818
827
  end
819
828
 
820
829
  it "should only show suggestions if there are very few results" do
821
830
  response = double(total: 4, spelling: double(words: [1]))
822
- expect(helper.should_show_spellcheck_suggestions? response).to be_true
831
+ expect(helper.should_show_spellcheck_suggestions? response).to eq true
823
832
  end
824
833
 
825
834
  it "should show suggestions only if there are spelling suggestions available" do
826
835
  response = double(total: 4, spelling: double(words: []))
827
- expect(helper.should_show_spellcheck_suggestions? response).to be_false
836
+ expect(helper.should_show_spellcheck_suggestions? response).to eq false
828
837
  end
829
838
  end
830
839
  end