search_helper_test.rb
5.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
require "#{File.dirname(__FILE__)}/../test_helper"
class SearchHelperTest < ActiveSupport::TestCase
include SolrPlugin::SearchHelper
should 'display facets menu' do
expects(:asset_class).with('asset')
expects(:render).with(:partial => 'facets_menu')
facets_menu 'asset', nil
end
should 'display facets_unselect menu' do
expects(:asset_class).with('asset')
expects(:render).with(:partial => 'facets_unselect_menu')
facets_unselect_menu 'asset'
end
should 'display facets javascript' do
expects(:text_field_tag).returns('<text_field_tag_return>')
expects(:javascript_tag).with(regexp_matches(/id.*[\'array_item\'].*json_message/m)).returns(
'<javascript_tag_return>')
stubs(:jquery_token_input_messages_json).returns('json_message')
assert_equal '<text_field_tag_return><javascript_tag_return>',
facet_javascript('id', '', ['array_item'])
end
should 'display empty array in facets javascript if array is nil' do
expects(:text_field_tag).returns('<text_field_tag_return>')
expects(:javascript_tag).with(regexp_matches(/id.*\[\].*json_message/m)).returns(
'<javascript_tag_return>')
stubs(:jquery_token_input_messages_json).returns('json_message')
assert_equal '<text_field_tag_return><javascript_tag_return>',
facet_javascript('id', '', [])
end
should 'return html code for facet link' do
facet = {
:solr_field => 'facet_solr_field',
:label_id => 'facet_label_id'
}
params = {}
value = 'facet_value'
label = 'facet_label'
count = 1
expected_url = {:facet => {'facet_solr_field' => { 'facet_label_id' => ['facet_value']}}}
expects(:link_to).with('facet_label', expected_url, anything).returns('<link_to_result>')
stubs(:content_tag).with(anything, '', anything).returns('<content_tag_extra>')
stubs(:content_tag).with(anything, ' (1)', anything).returns('<content_tag_count>')
stubs(:content_tag).with(anything, '<link_to_result><content_tag_extra><content_tag_count>', anything).returns('<content_tag_final_result>')
assert_equal '<content_tag_final_result>',
facet_link_html(facet, params, value, label, count)
end
should 'return html code for facet link with extra label' do
facet = {
:solr_field => 'facet_solr_field',
:label_id => 'facet_label_id'
}
params = {}
value = 'facet_value'
label = ['facet_label', 'facet_extra']
count = 1
expected_url = {:facet => {'facet_solr_field' => { 'facet_label_id' => ['facet_value']}}}
expects(:link_to).with('facet_label', expected_url, anything).returns('<link_to_result>')
stubs(:content_tag).with(anything, 'facet_extra', anything).returns('<content_tag_extra>')
stubs(:content_tag).with(anything, ' (1)', anything).returns('<content_tag_count>')
stubs(:content_tag).with(anything, '<link_to_result><content_tag_extra><content_tag_count>', anything).returns('<content_tag_final_result>')
assert_equal '<content_tag_final_result>',
facet_link_html(facet, params, value, label, count)
end
should 'return html code for selected facet link' do
facet = {
:solr_field => 'facet_solr_field'
}
params = {:facet => {'facet_solr_field' => 'facet_value'}}
value = 'facet_value'
label = 'facet_label'
count = 1
expected_url = {:facet => {'facet_solr_field' => 'facet_value'}}
expects(:link_to).with('facet_label', expected_url, anything).returns('<link_to_result>')
stubs(:content_tag).with(anything, '', anything).returns('<content_tag_extra>')
stubs(:content_tag).with(anything, ' (1)', anything).returns('<content_tag_count>')
stubs(:content_tag).with(anything, '<link_to_result><content_tag_extra><content_tag_count>', {:class => 'facet-menu-item facet-result-link-selected'}).returns('<content_tag_final_result>')
assert_equal '<content_tag_final_result>',
facet_link_html(facet, params, value, label, count)
end
should 'show html for non-hash selected facets' do
klass = mock
klass.stubs(:facet_by_id).with(:facet_id).returns('klass_facet_by_id')
klass.stubs(:facet_label).with('klass_facet_by_id').returns('klass_facet_label')
klass.stubs(:facet_result_name).with('klass_facet_by_id', 'facet_value').returns('klass_facet_result_name')
params = {:facet => {:facet_id => 'facet_value'}}
expects(:content_tag).with(anything, 'klass_facet_label', anything).returns('<content_tag_label>')
expects(:content_tag).with(anything, 'klass_facet_result_name', anything).returns('<content_tag_name>')
expects(:link_to).with(anything, {:facet => {}}, anything).returns('<link_to_url>')
expects(:content_tag).with(anything, '<content_tag_label><content_tag_name><link_to_url>', anything).returns('<final_content>')
environment = mock
assert_match '<final_content>', facet_selecteds_html_for(environment, klass, params)
end
should 'show select tag for order_by' do
[:products, :events, :articles, :enterprises, :people, :communities].each do |asset|
params = {:order_by => 'Relevance'}
stubs(:params).returns(params)
stubs(:logged_in?).returns(false)
stubs(:options_for_select).with(instance_of(Array), params[:order_by]).returns('<options_for_select>')
stubs(:select_tag).with(regexp_matches(/#{asset}/), '<options_for_select>', anything).returns('<select_tag>')
expects(:content_tag).with(anything, regexp_matches(/<select_tag>/), anything).returns('<final_content>')
assert_equal '<final_content>', order_by(asset)
end
end
should 'show total of assets found' do
[:products, :events, :articles, :enterprises, :people, :communities].each do |asset|
expects(:content_tag).with(anything, regexp_matches(/10.*#{asset}.*found/), anything).returns('<final_content>')
assert_equal '<final_content>', label_total_found(asset, 10)
end
end
end