Commit e1d27af8f46aea28b5f4db587993fdcf8f629de0
1 parent
24f9fb1f
Exists in
elasticsearch_filter
and in
1 other branch
Adding private itens to be filtered into tests
Signed-off-by: Macartur Sousa <macartur.sc@gmail.com>
Showing
1 changed file
with
62 additions
and
29 deletions
Show diff stats
plugins/elasticsearch/test/functional/elasticsearch_plugin_controller_test.rb
... | ... | @@ -5,7 +5,7 @@ class ElasticsearchPluginControllerTest < ActionController::TestCase |
5 | 5 | include ElasticsearchTestHelper |
6 | 6 | |
7 | 7 | def indexed_models |
8 | - [Community, Person] | |
8 | + [Person,TextArticle,UploadedFile,Community,Event] | |
9 | 9 | end |
10 | 10 | |
11 | 11 | def create_instances |
... | ... | @@ -14,31 +14,51 @@ class ElasticsearchPluginControllerTest < ActionController::TestCase |
14 | 14 | end |
15 | 15 | |
16 | 16 | def create_instances_environment2 |
17 | - 5.times do |index| | |
18 | - create_user "Sample User Environment 2", environment:Environment.second | |
19 | - end | |
20 | - 6.times do |index| | |
21 | - fast_create Community, name:"Sample Community Environment 2", created_at: Date.new, environment_id: Environment.second.id | |
22 | - end | |
17 | + create_user "Sample User Environment 2", environment:Environment.second | |
18 | + fast_create Community, name:"Sample Community Environment 2", created_at: Date.new, environment_id: Environment.second.id | |
23 | 19 | end |
24 | 20 | |
25 | 21 | def create_instances_environment |
26 | - create_people | |
27 | - create_communities | |
22 | + create_visible_models | |
23 | + create_private_models | |
28 | 24 | end |
29 | 25 | |
30 | - def create_people | |
26 | + def create_visible_models | |
31 | 27 | 5.times do | index | |
32 | 28 | create_user "person #{index}" |
33 | 29 | end |
34 | - end | |
35 | - | |
36 | - def create_communities | |
37 | 30 | 6.times do | index | |
38 | 31 | fast_create Community, name: "community #{index}", created_at: Date.new |
39 | 32 | end |
40 | 33 | end |
41 | 34 | |
35 | + def create_private_models | |
36 | + secret_user = create_user("Secret Person") | |
37 | + fast_update(secret_user.person, secret: true, visible: true) | |
38 | + | |
39 | + invisible_user= create_user("Invisible Person") | |
40 | + fast_update(invisible_user.person, secret: false, visible: false, public_profile: false) | |
41 | + | |
42 | + fast_create(Community, name: "secret community", secret: true, visible: true) | |
43 | + fast_create(Community, name: "invisible community", secret: false, visible: false) | |
44 | + | |
45 | + create_private_article(TextArticle,public_person: User.first.person, private_person: invisible_user.person) | |
46 | + create_private_article(UploadedFile,public_person: User.first.person, private_person: invisible_user.person) | |
47 | + create_private_article(Event,public_person: User.first.person, private_person: invisible_user.person) | |
48 | + | |
49 | + end | |
50 | + | |
51 | + def create_private_article model,options = {} | |
52 | + public_person = options[:public_person] | |
53 | + private_person = options[:private_person] | |
54 | + | |
55 | + fast_create(model, name: "#{model.to_s.underscore} not advertise", advertise: false, published: true, profile_id: public_person, created_at: Time.now) | |
56 | + fast_create(model, name: "#{model.to_s.underscore} not published", advertise: true, published: false, profile_id: public_person, created_at: Time.now) | |
57 | + fast_create(model, name: "#{model.to_s.underscore} with not visible profile", advertise: true, published: true, profile_id: private_person, created_at: Time.now) | |
58 | + fast_create(model, name: "#{model.to_s.underscore} with not public_profile", advertise: true, published: true, profile_id: private_person, created_at: Time.now) | |
59 | + end | |
60 | + | |
61 | + | |
42 | 62 | should 'work and uses control filter variables' do |
43 | 63 | get :index |
44 | 64 | assert_response :success |
... | ... | @@ -74,18 +94,18 @@ class ElasticsearchPluginControllerTest < ActionController::TestCase |
74 | 94 | assert_template partial: '_person_display' |
75 | 95 | end |
76 | 96 | |
77 | - should 'return results filtered by query with uppercase' do | |
78 | - get :index, {'query' => "PERSON 1"} | |
79 | - assert_response :success | |
80 | - assert_template partial: '_person_display' | |
81 | - assert_tag(tag: "div", attributes: { class: "person-item" } , descendant: { tag: "a", child: "person 1"} ) | |
82 | - end | |
97 | + should 'return results filtered by query with uppercase' do | |
98 | + get :index, {'query' => "PERSON 1"} | |
99 | + assert_response :success | |
100 | + assert_template partial: '_person_display' | |
101 | + assert_tag(tag: "div", attributes: { class: "person-item" } , descendant: { tag: "a", child: "person 1"} ) | |
102 | + end | |
83 | 103 | |
84 | - should 'return results filtered by query with downcase' do | |
85 | - get :index, {'query' => "person 1"} | |
86 | - assert_response :success | |
87 | - assert_tag(tag: "div", attributes: { class: "person-item" } , descendant: { tag: "a", child: "person 1"} ) | |
88 | - end | |
104 | + should 'return results filtered by query with downcase' do | |
105 | + get :index, {'query' => "person 1"} | |
106 | + assert_response :success | |
107 | + assert_tag(tag: "div", attributes: { class: "person-item" } , descendant: { tag: "a", child: "person 1"} ) | |
108 | + end | |
89 | 109 | |
90 | 110 | should 'return new community indexed' do |
91 | 111 | get :index, { "selected_type" => :community} |
... | ... | @@ -122,11 +142,6 @@ class ElasticsearchPluginControllerTest < ActionController::TestCase |
122 | 142 | assert_redirected_to controller: 'elasticsearch_plugin', action: 'search', params: params |
123 | 143 | end |
124 | 144 | |
125 | - should 'pass params to elastic search controller' do | |
126 | - get 'index', { query: 'community' } | |
127 | - assert_not_nil assigns(:results) | |
128 | - assert_template partial: '_community_display' | |
129 | - end | |
130 | 145 | |
131 | 146 | should 'filter community by default environment' do |
132 | 147 | get :index, { "selected_type" => :community} |
... | ... | @@ -140,4 +155,22 @@ class ElasticsearchPluginControllerTest < ActionController::TestCase |
140 | 155 | assert_select ".search-item", 5 |
141 | 156 | end |
142 | 157 | |
158 | + should 'not show private text_article' do | |
159 | + get :index, { :selected_type => "text_article" } | |
160 | + assert_response :success | |
161 | + assert_select ".search-item", 6 | |
162 | + end | |
163 | + | |
164 | + should 'not show private uploaded_file' do | |
165 | + get :index, { :selected_type => "uploaded_file" } | |
166 | + assert_response :success | |
167 | + assert_select ".search-item", 0 | |
168 | + end | |
169 | + | |
170 | + should 'not show private event' do | |
171 | + get :index, { :selected_type => "event" } | |
172 | + assert_response :success | |
173 | + assert_select ".search-item", 0 | |
174 | + end | |
175 | + | |
143 | 176 | end | ... | ... |