blacklight 5.0.0.pre1 → 5.0.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -4
- data/VERSION +1 -1
- data/app/assets/stylesheets/blacklight/_bookmark.css.scss +4 -0
- data/app/assets/stylesheets/blacklight/_catalog.css.scss +9 -13
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +15 -9
- data/app/helpers/blacklight/catalog_helper_behavior.rb +8 -25
- data/app/helpers/blacklight/facets_helper_behavior.rb +1 -1
- data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +1 -1
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +2 -2
- data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +1 -1
- data/app/views/bookmarks/index.html.erb +1 -1
- data/app/views/catalog/_did_you_mean.html.erb +1 -1
- data/app/views/catalog/_document.html.erb +4 -10
- data/app/views/catalog/{_document_header.html.erb → _index_header_default.html.erb} +6 -3
- data/app/views/catalog/_paginate_compact.html.erb +5 -0
- data/app/views/catalog/_show_header_default.html.erb +2 -0
- data/app/views/catalog/index.html.erb +1 -1
- data/app/views/catalog/show.html.erb +4 -10
- data/lib/blacklight.rb +0 -1
- data/lib/blacklight/configuration.rb +2 -2
- data/lib/blacklight/controller.rb +0 -1
- data/lib/blacklight/solr/document.rb +2 -0
- data/lib/blacklight/solr/document/schema_org.rb +7 -0
- data/lib/blacklight/solr_response.rb +4 -0
- data/lib/blacklight/user.rb +0 -6
- data/spec/controllers/application_controller_spec.rb +1 -2
- data/spec/controllers/bookmarks_controller_spec.rb +8 -9
- data/spec/controllers/catalog_controller_spec.rb +72 -73
- data/spec/controllers/saved_searches_controller_spec.rb +1 -2
- data/spec/controllers/search_history_controller_spec.rb +9 -10
- data/spec/features/search_pagination_spec.rb +1 -0
- data/spec/features/search_results_spec.rb +1 -0
- data/spec/features/search_spec.rb +1 -0
- data/spec/helpers/blacklight_helper_spec.rb +103 -93
- data/spec/helpers/catalog_helper_spec.rb +34 -21
- data/spec/helpers/facets_helper_spec.rb +41 -41
- data/spec/helpers/hash_as_hidden_fields_spec.rb +8 -9
- data/spec/helpers/render_constraints_helper_spec.rb +3 -3
- data/spec/helpers/search_history_constraints_helper_spec.rb +13 -14
- data/spec/lib/{blacklight_configurable_spec.rb → blacklight/configurable_spec.rb} +12 -14
- data/spec/lib/{blacklight_configuration_spec.rb → blacklight/configuration_spec.rb} +67 -69
- data/spec/lib/{facet_paginator_spec.rb → blacklight/facet_paginator_spec.rb} +13 -16
- data/spec/lib/{search_fields_spec.rb → blacklight/search_fields_spec.rb} +14 -15
- data/spec/lib/{blacklight_solr_document_dublin_core_spec.rb → blacklight/solr/document/dublin_core_spec.rb} +7 -8
- data/spec/lib/{blacklight_email_spec.rb → blacklight/solr/document/email_spec.rb} +5 -6
- data/spec/lib/{blacklight_solr_document_more_like_this_spec.rb → blacklight/solr/document/more_like_this_spec.rb} +5 -5
- data/spec/lib/{blacklight_sms_spec.rb → blacklight/solr/document/sms_spec.rb} +5 -6
- data/spec/lib/{blacklight_solr_document_spec.rb → blacklight/solr/document_spec.rb} +37 -39
- data/spec/lib/{solr_helper_spec.rb → blacklight/solr_helper_spec.rb} +183 -183
- data/spec/lib/{blacklight_solr_response_spec.rb → blacklight/solr_response_spec.rb} +20 -16
- data/spec/lib/{blacklight_user_spec.rb → blacklight/user_spec.rb} +3 -4
- data/spec/lib/blacklight_spec.rb +6 -7
- data/spec/lib/tasks/blacklight_task_spec.rb +2 -3
- data/spec/lib/utils_spec.rb +13 -14
- data/spec/models/bookmark_spec.rb +4 -4
- data/spec/models/record_mailer_spec.rb +15 -15
- data/spec/models/search_spec.rb +7 -7
- data/spec/models/solr_document_spec.rb +4 -4
- data/spec/routing/catalog_routing_spec.rb +12 -12
- data/spec/spec_helper.rb +1 -3
- data/spec/test_app_templates/Gemfile.extra +1 -2
- data/spec/views/catalog/_constraints_element.html.erb_spec.rb +12 -13
- data/spec/views/catalog/_document.html.erb_spec.rb +19 -2
- data/spec/views/catalog/_document_list.html.erb_spec.rb +0 -1
- data/spec/views/catalog/_facets.html.erb_spec.rb +5 -5
- data/spec/views/catalog/_index_default.erb_spec.rb +10 -11
- data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +45 -0
- data/spec/views/catalog/_search_header.erb_spec.rb +0 -1
- data/spec/views/catalog/_show_default.erb_spec.rb +10 -11
- data/spec/views/catalog/_show_sidebar.erb_spec.rb +2 -3
- data/spec/views/catalog/index.atom.builder_spec.rb +26 -27
- data/spec/views/catalog/index.html.erb_spec.rb +1 -1
- data/spec/views/catalog/show.html.erb_spec.rb +56 -0
- data/tasks/blacklight.rake +1 -1
- metadata +65 -64
- data/lib/blacklight/legacy_controller_methods.rb +0 -26
- data/spec/rcov.opts +0 -3
- data/spec/support/assert_difference.rb +0 -17
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
3
|
describe CatalogHelper do
|
4
4
|
include ERB::Util
|
5
5
|
include CatalogHelper
|
@@ -31,16 +31,16 @@ describe CatalogHelper do
|
|
31
31
|
@response = mock_response :total => 0
|
32
32
|
|
33
33
|
html = page_entries_info(@response, { :entry_name => 'entry_name' })
|
34
|
-
html.
|
35
|
-
html.
|
34
|
+
expect(html).to eq "No entry_names found"
|
35
|
+
expect(html).to be_html_safe
|
36
36
|
end
|
37
37
|
|
38
38
|
it "with no results (and no entry_name provided)" do
|
39
39
|
@response = mock_response :total => 0
|
40
40
|
|
41
41
|
html = page_entries_info(@response)
|
42
|
-
html.
|
43
|
-
html.
|
42
|
+
expect(html).to eq "No entries found"
|
43
|
+
expect(html).to be_html_safe
|
44
44
|
end
|
45
45
|
|
46
46
|
describe "with a single result" do
|
@@ -48,21 +48,21 @@ describe CatalogHelper do
|
|
48
48
|
response = mock_response :total => 1
|
49
49
|
|
50
50
|
html = page_entries_info(response, { :entry_name => 'entry_name' })
|
51
|
-
html.
|
52
|
-
html.
|
51
|
+
expect(html).to eq "<strong>1</strong> entry_name found"
|
52
|
+
expect(html).to be_html_safe
|
53
53
|
end
|
54
54
|
|
55
55
|
it "should infer a name" do
|
56
56
|
response = mock_response :total => 1
|
57
57
|
|
58
58
|
html = page_entries_info(response)
|
59
|
-
html.
|
60
|
-
html.
|
59
|
+
expect(html).to eq "<strong>1</strong> entry found"
|
60
|
+
expect(html).to be_html_safe
|
61
61
|
end
|
62
62
|
|
63
63
|
it "should use the model_name from the response" do
|
64
64
|
response = mock_response :total => 1
|
65
|
-
response.stub(:model_name).and_return('thingy')
|
65
|
+
response.stub(:model_name).and_return(double(:human => 'thingy'))
|
66
66
|
|
67
67
|
html = page_entries_info(response)
|
68
68
|
expect(html).to eq "<strong>1</strong> thingy found"
|
@@ -74,39 +74,52 @@ describe CatalogHelper do
|
|
74
74
|
response = mock_response :total => 7
|
75
75
|
|
76
76
|
html = page_entries_info(response, { :entry_name => 'entry_name' })
|
77
|
-
html.
|
78
|
-
html.
|
77
|
+
expect(html).to eq "<strong>1</strong> - <strong>7</strong> of <strong>7</strong>"
|
78
|
+
expect(html).to be_html_safe
|
79
79
|
end
|
80
80
|
|
81
81
|
it "on the first page of multiple pages of results" do
|
82
82
|
@response = mock_response :total => 15, :per_page => 10
|
83
83
|
|
84
84
|
html = page_entries_info(@response, { :entry_name => 'entry_name' })
|
85
|
-
html.
|
86
|
-
html.
|
85
|
+
expect(html).to eq "<strong>1</strong> - <strong>10</strong> of <strong>15</strong>"
|
86
|
+
expect(html).to be_html_safe
|
87
87
|
end
|
88
88
|
|
89
89
|
it "on the second page of multiple pages of results" do
|
90
90
|
@response = mock_response :total => 47, :per_page => 10, :current_page => 2
|
91
91
|
|
92
92
|
html = page_entries_info(@response, { :entry_name => 'entry_name' })
|
93
|
-
html.
|
94
|
-
html.
|
93
|
+
expect(html).to eq "<strong>11</strong> - <strong>20</strong> of <strong>47</strong>"
|
94
|
+
expect(html).to be_html_safe
|
95
95
|
end
|
96
96
|
|
97
97
|
it "on the last page of results" do
|
98
98
|
@response = mock_response :total => 47, :per_page => 10, :current_page => 5
|
99
99
|
|
100
100
|
html = page_entries_info(@response, { :entry_name => 'entry_name' })
|
101
|
-
html.
|
102
|
-
html.
|
101
|
+
expect(html).to eq "<strong>41</strong> - <strong>47</strong> of <strong>47</strong>"
|
102
|
+
expect(html).to be_html_safe
|
103
103
|
end
|
104
104
|
it "should work with rows the same as per_page" do
|
105
105
|
@response = mock_response :total => 47, :rows => 20, :current_page => 2
|
106
106
|
|
107
107
|
html = page_entries_info(@response, { :entry_name => 'entry_name' })
|
108
|
-
html.
|
109
|
-
html.
|
108
|
+
expect(html).to eq "<strong>21</strong> - <strong>40</strong> of <strong>47</strong>"
|
109
|
+
expect(html).to be_html_safe
|
110
|
+
end
|
111
|
+
|
112
|
+
it "uses delimiters with large numbers" do
|
113
|
+
@response = mock_response :total => 5000, :rows => 10, :current_page => 101
|
114
|
+
html = page_entries_info(@response, { :entry_name => 'entry_name' })
|
115
|
+
|
116
|
+
expect(html).to eq "<strong>1,001</strong> - <strong>1,010</strong> of <strong>5,000</strong>"
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should work with an activerecord collection" do
|
120
|
+
50.times { b = Bookmark.new; b.user_id = 1; b.save! }
|
121
|
+
html = helper.page_entries_info(Bookmark.page(1).per(25))
|
122
|
+
expect(html).to eq "<strong>1</strong> - <strong>25</strong> of <strong>50</strong>"
|
110
123
|
end
|
111
124
|
|
112
125
|
end
|
@@ -17,7 +17,7 @@ describe FacetsHelper do
|
|
17
17
|
empty = double(:items => [])
|
18
18
|
|
19
19
|
fields = [a,b,empty]
|
20
|
-
helper.has_facet_values?(fields).
|
20
|
+
expect(helper.has_facet_values?(fields)).to be_true
|
21
21
|
end
|
22
22
|
|
23
23
|
it "should be false if all facets are empty" do
|
@@ -25,7 +25,7 @@ describe FacetsHelper do
|
|
25
25
|
empty = double(:items => [])
|
26
26
|
|
27
27
|
fields = [empty]
|
28
|
-
helper.has_facet_values?(fields).
|
28
|
+
expect(helper.has_facet_values?(fields)).to be_false
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
@@ -40,16 +40,16 @@ describe FacetsHelper do
|
|
40
40
|
end
|
41
41
|
it "should render facets with items" do
|
42
42
|
a = double(:items => [1,2], :name=>'basic_field')
|
43
|
-
helper.should_render_facet?(a).
|
43
|
+
expect(helper.should_render_facet?(a)).to be_true
|
44
44
|
end
|
45
45
|
it "should not render facets without items" do
|
46
46
|
empty = double(:items => [], :name=>'basic_field')
|
47
|
-
helper.should_render_facet?(empty).
|
47
|
+
expect(helper.should_render_facet?(empty)).to be_false
|
48
48
|
end
|
49
49
|
|
50
50
|
it "should not render facets where show is set to false" do
|
51
51
|
a = double(:items => [1,2], :name=>'no_show')
|
52
|
-
helper.should_render_facet?(a).
|
52
|
+
expect(helper.should_render_facet?(a)).to be_false
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
@@ -62,7 +62,7 @@ describe FacetsHelper do
|
|
62
62
|
@response = double()
|
63
63
|
@response.should_receive(:facet_by_field_name).with('a').and_return(facet_field)
|
64
64
|
|
65
|
-
helper.facet_by_field_name('a').
|
65
|
+
expect(helper.facet_by_field_name('a')).to eq facet_field
|
66
66
|
end
|
67
67
|
|
68
68
|
it "should also work for facet query fields" do
|
@@ -99,15 +99,15 @@ describe FacetsHelper do
|
|
99
99
|
field = helper.facet_by_field_name('my_query_facet_field')
|
100
100
|
field.should be_a_kind_of Blacklight::SolrResponse::Facets::FacetField
|
101
101
|
|
102
|
-
field.name.
|
103
|
-
field.items.
|
104
|
-
field.items.map { |x| x.value }.
|
102
|
+
expect(field.name).to eq'my_query_facet_field'
|
103
|
+
expect(field.items).to have(2).items
|
104
|
+
expect(field.items.map { |x| x.value }).to_not include 'field:not_appearing_in_the_config'
|
105
105
|
|
106
106
|
facet_item = field.items.select { |x| x.value == 'a_simple_query' }.first
|
107
107
|
|
108
|
-
facet_item.value.
|
109
|
-
facet_item.hits.
|
110
|
-
facet_item.label.
|
108
|
+
expect(facet_item.value).to eq 'a_simple_query'
|
109
|
+
expect(facet_item.hits).to eq 10
|
110
|
+
expect(facet_item.label).to eq 'A Human Readable label'
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
@@ -126,14 +126,14 @@ describe FacetsHelper do
|
|
126
126
|
field = helper.facet_by_field_name('my_pivot_facet_field')
|
127
127
|
field.should be_a_kind_of Blacklight::SolrResponse::Facets::FacetField
|
128
128
|
|
129
|
-
field.name.
|
129
|
+
expect(field.name).to eq 'my_pivot_facet_field'
|
130
130
|
|
131
|
-
field.items.
|
131
|
+
expect(field.items).to have(1).item
|
132
132
|
|
133
|
-
field.items.first.
|
133
|
+
expect(field.items.first).to respond_to(:items)
|
134
134
|
|
135
|
-
field.items.first.items.
|
136
|
-
field.items.first.items.first.fq.
|
135
|
+
expect(field.items.first.items).to have(1).item
|
136
|
+
expect(field.items.first.items.first.fq).to eq({ 'field_a' => 'a' })
|
137
137
|
end
|
138
138
|
end
|
139
139
|
end
|
@@ -239,9 +239,9 @@ describe FacetsHelper do
|
|
239
239
|
helper.stub(:params).and_return(@params_no_existing_facet)
|
240
240
|
|
241
241
|
result_params = helper.add_facet_params("facet_field", "facet_value")
|
242
|
-
result_params[:f].
|
243
|
-
result_params[:f]["facet_field"].
|
244
|
-
result_params[:f]["facet_field"].
|
242
|
+
expect(result_params[:f]).to be_a_kind_of(Hash)
|
243
|
+
expect(result_params[:f]["facet_field"]).to be_a_kind_of(Array)
|
244
|
+
expect(result_params[:f]["facet_field"]).to eq ["facet_value"]
|
245
245
|
end
|
246
246
|
|
247
247
|
it "should add a facet param to existing facet constraints" do
|
@@ -249,15 +249,15 @@ describe FacetsHelper do
|
|
249
249
|
|
250
250
|
result_params = helper.add_facet_params("facet_field_2", "new_facet_value")
|
251
251
|
|
252
|
-
result_params[:f].
|
252
|
+
expect(result_params[:f]).to be_a_kind_of(Hash)
|
253
253
|
|
254
254
|
@params_existing_facets[:f].each_pair do |facet_field, value_list|
|
255
|
-
result_params[:f][facet_field].
|
255
|
+
expect(result_params[:f][facet_field]).to be_a_kind_of(Array)
|
256
256
|
|
257
257
|
if facet_field == 'facet_field_2'
|
258
|
-
result_params[:f][facet_field].
|
258
|
+
expect(result_params[:f][facet_field]).to eq (@params_existing_facets[:f][facet_field] | ["new_facet_value"])
|
259
259
|
else
|
260
|
-
result_params[:f][facet_field].
|
260
|
+
expect(result_params[:f][facet_field]).to eq @params_existing_facets[:f][facet_field]
|
261
261
|
end
|
262
262
|
end
|
263
263
|
end
|
@@ -269,7 +269,7 @@ describe FacetsHelper do
|
|
269
269
|
|
270
270
|
params.each_pair do |key, value|
|
271
271
|
next if key == :f
|
272
|
-
result_params[key].
|
272
|
+
expect(result_params[key]).to eq params[key]
|
273
273
|
end
|
274
274
|
end
|
275
275
|
end
|
@@ -282,31 +282,31 @@ describe FacetsHelper do
|
|
282
282
|
result_params = helper.add_facet_params('single_value_facet_field', 'my_value')
|
283
283
|
|
284
284
|
|
285
|
-
result_params[:f]['single_value_facet_field'].
|
286
|
-
result_params[:f]['single_value_facet_field'].first.
|
285
|
+
expect(result_params[:f]['single_value_facet_field']).to have(1).item
|
286
|
+
expect(result_params[:f]['single_value_facet_field'].first).to eq 'my_value'
|
287
287
|
end
|
288
288
|
|
289
289
|
it "should accept a FacetItem instead of a plain facet value" do
|
290
290
|
|
291
291
|
result_params = helper.add_facet_params('facet_field_1', double(:value => 123))
|
292
292
|
|
293
|
-
result_params[:f]['facet_field_1'].
|
293
|
+
expect(result_params[:f]['facet_field_1']).to include(123)
|
294
294
|
end
|
295
295
|
|
296
296
|
it "should defer to the field set on a FacetItem" do
|
297
297
|
|
298
298
|
result_params = helper.add_facet_params('facet_field_1', double(:field => 'facet_field_2', :value => 123))
|
299
299
|
|
300
|
-
result_params[:f]['facet_field_1'].
|
301
|
-
result_params[:f]['facet_field_2'].
|
300
|
+
expect(result_params[:f]['facet_field_1']).to be_blank
|
301
|
+
expect(result_params[:f]['facet_field_2']).to include(123)
|
302
302
|
end
|
303
303
|
|
304
304
|
it "should add any extra fq parameters from the FacetItem" do
|
305
305
|
|
306
306
|
result_params = helper.add_facet_params('facet_field_1', double(:value => 123, :fq => {'facet_field_2' => 'abc'}))
|
307
307
|
|
308
|
-
result_params[:f]['facet_field_1'].
|
309
|
-
result_params[:f]['facet_field_2'].
|
308
|
+
expect(result_params[:f]['facet_field_1']).to include(123)
|
309
|
+
expect(result_params[:f]['facet_field_2']).to include('abc')
|
310
310
|
end
|
311
311
|
end
|
312
312
|
|
@@ -326,20 +326,20 @@ describe FacetsHelper do
|
|
326
326
|
it "should redirect to 'index' action" do
|
327
327
|
params = helper.add_facet_params_and_redirect("facet_field_2", "facet_value")
|
328
328
|
|
329
|
-
params[:action].
|
329
|
+
expect(params[:action]).to eq "index"
|
330
330
|
end
|
331
331
|
it "should not include request parameters used by the facet paginator" do
|
332
332
|
params = helper.add_facet_params_and_redirect("facet_field_2", "facet_value")
|
333
333
|
|
334
334
|
bad_keys = Blacklight::Solr::FacetPaginator.request_keys.values + [:id]
|
335
335
|
bad_keys.each do |paginator_key|
|
336
|
-
params.keys.
|
336
|
+
expect(params.keys).to_not include(paginator_key)
|
337
337
|
end
|
338
338
|
end
|
339
339
|
it 'should remove :page request key' do
|
340
340
|
params = helper.add_facet_params_and_redirect("facet_field_2", "facet_value")
|
341
341
|
|
342
|
-
params.keys.
|
342
|
+
expect(params.keys).to_not include(:page)
|
343
343
|
end
|
344
344
|
it "should otherwise do the same thing as add_facet_params" do
|
345
345
|
added_facet_params = helper.add_facet_params("facet_field_2", "facet_value")
|
@@ -347,7 +347,7 @@ describe FacetsHelper do
|
|
347
347
|
|
348
348
|
added_facet_params_from_facet_action.each_pair do |key, value|
|
349
349
|
next if key == :action
|
350
|
-
value.
|
350
|
+
expect(value).to eq added_facet_params[key]
|
351
351
|
end
|
352
352
|
end
|
353
353
|
end
|
@@ -406,7 +406,7 @@ describe FacetsHelper do
|
|
406
406
|
describe "#facet_display_value" do
|
407
407
|
it "should just be the facet value for an ordinary facet" do
|
408
408
|
helper.stub(:facet_configuration_for_field).with('simple_field').and_return(double(:query => nil, :date => nil, :helper_method => nil))
|
409
|
-
helper.facet_display_value('simple_field', 'asdf').
|
409
|
+
expect(helper.facet_display_value('simple_field', 'asdf')).to eq 'asdf'
|
410
410
|
end
|
411
411
|
|
412
412
|
it "should allow you to pass in a :helper_method argument to the configuration" do
|
@@ -414,22 +414,22 @@ describe FacetsHelper do
|
|
414
414
|
|
415
415
|
helper.should_receive(:my_facet_value_renderer).with('qwerty').and_return('abc')
|
416
416
|
|
417
|
-
helper.facet_display_value('helper_field', 'qwerty').
|
417
|
+
expect(helper.facet_display_value('helper_field', 'qwerty')).to eq 'abc'
|
418
418
|
end
|
419
419
|
|
420
420
|
it "should extract the configuration label for a query facet" do
|
421
421
|
helper.stub(:facet_configuration_for_field).with('query_facet').and_return(double(:query => { 'query_key' => { :label => 'XYZ'}}, :date => nil, :helper_method => nil))
|
422
|
-
helper.facet_display_value('query_facet', 'query_key').
|
422
|
+
expect(helper.facet_display_value('query_facet', 'query_key')).to eq 'XYZ'
|
423
423
|
end
|
424
424
|
|
425
425
|
it "should localize the label for date-type facets" do
|
426
426
|
helper.stub(:facet_configuration_for_field).with('date_facet').and_return(double('date' => true, :query => nil, :helper_method => nil))
|
427
|
-
helper.facet_display_value('date_facet', '2012-01-01').
|
427
|
+
expect(helper.facet_display_value('date_facet', '2012-01-01')).to eq 'Sun, 01 Jan 2012 00:00:00 +0000'
|
428
428
|
end
|
429
429
|
|
430
430
|
it "should localize the label for date-type facets with the supplied localization options" do
|
431
431
|
helper.stub(:facet_configuration_for_field).with('date_facet').and_return(double('date' => { :format => :short }, :query => nil, :helper_method => nil))
|
432
|
-
helper.facet_display_value('date_facet', '2012-01-01').
|
432
|
+
expect(helper.facet_display_value('date_facet', '2012-01-01')).to eq '01 Jan 00:00'
|
433
433
|
end
|
434
434
|
end
|
435
435
|
end
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
1
|
+
require 'spec_helper'
|
3
2
|
|
4
3
|
describe HashAsHiddenFieldsHelper do
|
5
4
|
include HashAsHiddenFieldsHelper
|
@@ -11,13 +10,13 @@ describe HashAsHiddenFieldsHelper do
|
|
11
10
|
|
12
11
|
generated = hash_as_hidden_fields(@hash)
|
13
12
|
|
14
|
-
generated.
|
15
|
-
generated.
|
16
|
-
generated.
|
17
|
-
generated.
|
18
|
-
generated.
|
19
|
-
generated.
|
20
|
-
generated.
|
13
|
+
expect(generated).to have_selector("input[type='hidden'][name='q'][value='query']")
|
14
|
+
expect(generated).to have_selector("input[type='hidden'][name='per_page'][value='10']")
|
15
|
+
expect(generated).to have_selector("input[type='hidden'][name='page'][value='5']")
|
16
|
+
expect(generated).to have_selector("input[type='hidden'][name='extra_arbitrary_key'][value='arbitrary_value']")
|
17
|
+
expect(generated).to have_selector("input[type='hidden'][name='f[field2][]'][value='z']")
|
18
|
+
expect(generated).to have_selector("input[type='hidden'][name='f[field1][]'][value='a']")
|
19
|
+
expect(generated).to have_selector("input[type='hidden'][name='f[field1][]'][value='b']")
|
21
20
|
|
22
21
|
end
|
23
22
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe RenderConstraintsHelper do
|
4
4
|
|
@@ -9,7 +9,7 @@ describe RenderConstraintsHelper do
|
|
9
9
|
|
10
10
|
describe '#render_constraints_query' do
|
11
11
|
it "should have a link relative to the current url" do
|
12
|
-
helper.render_constraints_query(:q=>'foobar', :f=>{:type=>'journal'}).
|
12
|
+
expect(helper.render_constraints_query(:q=>'foobar', :f=>{:type=>'journal'})).to have_selector "a[href='/?f%5Btype%5D=journal']"
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
@@ -23,7 +23,7 @@ describe RenderConstraintsHelper do
|
|
23
23
|
it "should have a link relative to the current url" do
|
24
24
|
result = helper.render_filter_element('type', ['journal'], {:q=>'biz'})
|
25
25
|
# I'm not certain how the ampersand gets in there. It's not important.
|
26
|
-
result.
|
26
|
+
expect(result).to have_selector "a[href='/?&q=biz']"
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
1
|
+
require 'spec_helper'
|
3
2
|
|
4
3
|
describe SearchHistoryConstraintsHelper do
|
5
4
|
|
@@ -21,10 +20,10 @@ describe SearchHistoryConstraintsHelper do
|
|
21
20
|
it "should render basic element" do
|
22
21
|
response = helper.render_search_to_s_element("key", "value")
|
23
22
|
response.should have_selector("span.constraint") do |span|
|
24
|
-
span.
|
25
|
-
span.
|
23
|
+
expect(span).to have_selector("span.filterName", :content => "key:")
|
24
|
+
expect(span).to have_selector("span.filterValue", :content => "value")
|
26
25
|
end
|
27
|
-
response.
|
26
|
+
expect(response).to be_html_safe
|
28
27
|
end
|
29
28
|
it "should escape them that need escaping" do
|
30
29
|
response = helper.render_search_to_s_element("key>", "value>")
|
@@ -33,21 +32,21 @@ describe SearchHistoryConstraintsHelper do
|
|
33
32
|
# Note: nokogiri's gettext will unescape the inner html
|
34
33
|
# which seems to be what rspecs "contains" method calls on
|
35
34
|
# text nodes - thus the to_s inserted below.
|
36
|
-
s2.
|
35
|
+
expect(s2).to match(/key>:/)
|
37
36
|
end
|
38
37
|
span.should have_selector("span.filterValue") do |s3|
|
39
|
-
s3.
|
38
|
+
expect(s3).to match(/value>/)
|
40
39
|
end
|
41
40
|
end
|
42
|
-
response.
|
41
|
+
expect(response).to be_html_safe
|
43
42
|
end
|
44
43
|
it "should not escape with options set thus" do
|
45
44
|
response = helper.render_search_to_s_element("key>", "value>", :escape_key => false, :escape_value => false)
|
46
45
|
response.should have_selector("span.constraint") do |span|
|
47
|
-
span.
|
48
|
-
span.
|
46
|
+
expect(span).to have_selector("span.filterName", :content => "key>:")
|
47
|
+
expect(span).to have_selector("span.filterValue", :content => "value>")
|
49
48
|
end
|
50
|
-
response.
|
49
|
+
expect(response).to be_html_safe
|
51
50
|
end
|
52
51
|
end
|
53
52
|
|
@@ -62,9 +61,9 @@ describe SearchHistoryConstraintsHelper do
|
|
62
61
|
# API hooks expect this to be so
|
63
62
|
response = helper.render_search_to_s(@params)
|
64
63
|
|
65
|
-
response.
|
66
|
-
response.
|
67
|
-
response.
|
64
|
+
expect(response).to include( helper.render_search_to_s_q(@params))
|
65
|
+
expect(response).to include( helper.render_search_to_s_filters(@params))
|
66
|
+
expect(response).to be_html_safe
|
68
67
|
end
|
69
68
|
end
|
70
69
|
|