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 | ... | ... |