Commit c6a5f4ad4d6e5b59b2d05684b66fcf09e80aa36c
Committed by
Gabriela Navarro
1 parent
ca9d8d80
Exists in
master
and in
5 other branches
Add tests for search by software_languages software_databases and finality
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com> Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
Showing
3 changed files
with
94 additions
and
1 deletions
Show diff stats
features/software_catalog.feature
... | ... | @@ -46,6 +46,7 @@ Feature: Search software |
46 | 46 | Scenario: Show software ordered by name when "Name A-Z" is selected |
47 | 47 | Given I go to /search/software_infos |
48 | 48 | And I select "Name A-Z" from "sort" |
49 | + And I press "Filter" | |
49 | 50 | Then I should see "Software One" before "Software Two" |
50 | 51 | |
51 | 52 | @selenium | ... | ... |
test/functional/search_controller_test.rb
... | ... | @@ -133,6 +133,69 @@ class SearchControllerTest < ActionController::TestCase |
133 | 133 | assert_not_includes assigns(:searches)[:software_infos][:results], software_two.community |
134 | 134 | end |
135 | 135 | |
136 | + should "software_infos search by programming language" do | |
137 | + software_one = create_software_info("Software One") | |
138 | + software_two = create_software_info("Software Two") | |
139 | + | |
140 | + software_one.license_info = LicenseInfo.create :version=>"GPL - 1.0" | |
141 | + software_two.license_info = LicenseInfo.create :version=>"GPL - 1.0" | |
142 | + | |
143 | + software_one.software_languages << create_software_language("Python", "1.0") | |
144 | + software_two.software_languages << create_software_language("Java", "8.1") | |
145 | + | |
146 | + software_one.save! | |
147 | + software_two.save! | |
148 | + | |
149 | + get( | |
150 | + :software_infos, | |
151 | + :query => "python", | |
152 | + ) | |
153 | + | |
154 | + assert_includes assigns(:searches)[:software_infos][:results], software_one.community | |
155 | + assert_not_includes assigns(:searches)[:software_infos][:results], software_two.community | |
156 | + end | |
157 | + | |
158 | + should "software_infos search by database description" do | |
159 | + software_one = create_software_info("Software One") | |
160 | + software_two = create_software_info("Software Two") | |
161 | + | |
162 | + software_one.license_info = LicenseInfo.create :version=>"GPL - 1.0" | |
163 | + software_two.license_info = LicenseInfo.create :version=>"GPL - 1.0" | |
164 | + | |
165 | + software_one.software_databases << create_software_database("MySQL", "1.0") | |
166 | + software_two.software_databases << create_software_database("Postgrees", "8.1") | |
167 | + | |
168 | + software_one.save! | |
169 | + software_two.save! | |
170 | + | |
171 | + get( | |
172 | + :software_infos, | |
173 | + :query => "mysql", | |
174 | + ) | |
175 | + | |
176 | + assert_includes assigns(:searches)[:software_infos][:results], software_one.community | |
177 | + assert_not_includes assigns(:searches)[:software_infos][:results], software_two.community | |
178 | + end | |
179 | + | |
180 | + should "software_infos search by finality" do | |
181 | + software_one = create_software_info("Software One", :finality => "Help") | |
182 | + software_two = create_software_info("Software Two", :finality => "Task") | |
183 | + | |
184 | + software_one.license_info = LicenseInfo.create :version=>"GPL - 1.0" | |
185 | + software_two.license_info = LicenseInfo.create :version=>"GPL - 1.0" | |
186 | + | |
187 | + software_one.save! | |
188 | + software_two.save! | |
189 | + | |
190 | + get( | |
191 | + :software_infos, | |
192 | + :query => "help", | |
193 | + ) | |
194 | + | |
195 | + assert_includes assigns(:searches)[:software_infos][:results], software_one.community | |
196 | + assert_not_includes assigns(:searches)[:software_infos][:results], software_two.community | |
197 | + end | |
198 | + | |
136 | 199 | private |
137 | 200 | |
138 | 201 | def create_software_categories |
... | ... | @@ -151,4 +214,32 @@ class SearchControllerTest < ActionController::TestCase |
151 | 214 | :parent => category_software |
152 | 215 | ) |
153 | 216 | end |
217 | + | |
218 | + def create_software_language(name, version) | |
219 | + unless ProgrammingLanguage.find_by_name(name) | |
220 | + ProgrammingLanguage.create(:name => name) | |
221 | + end | |
222 | + | |
223 | + software_language = SoftwareLanguage.new | |
224 | + software_language.programming_language = ProgrammingLanguage.find_by_name(name) | |
225 | + software_language.version = version | |
226 | + software_language.save! | |
227 | + | |
228 | + software_language | |
229 | + end | |
230 | + | |
231 | + def create_software_database(name, version) | |
232 | + unless DatabaseDescription.find_by_name(name) | |
233 | + DatabaseDescription.create(:name => name) | |
234 | + end | |
235 | + | |
236 | + software_database = SoftwareDatabase.new | |
237 | + software_database.database_description = DatabaseDescription.find_by_name(name) | |
238 | + software_database.version = version | |
239 | + software_database.save! | |
240 | + | |
241 | + software_database | |
242 | + end | |
243 | + | |
244 | + | |
154 | 245 | end | ... | ... |
test/helpers/plugin_test_helper.rb
... | ... | @@ -13,10 +13,11 @@ module PluginTestHelper |
13 | 13 | community |
14 | 14 | end |
15 | 15 | |
16 | - def create_software_info name | |
16 | + def create_software_info name, finality = "" | |
17 | 17 | community = create_community(name) |
18 | 18 | software_info = SoftwareInfo.new |
19 | 19 | software_info.community = community |
20 | + software_info.finality = finality | |
20 | 21 | software_info.public_software = true |
21 | 22 | software_info.save |
22 | 23 | software_info | ... | ... |