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,6 +46,7 @@ Feature: Search software | ||
| 46 | Scenario: Show software ordered by name when "Name A-Z" is selected | 46 | Scenario: Show software ordered by name when "Name A-Z" is selected |
| 47 | Given I go to /search/software_infos | 47 | Given I go to /search/software_infos |
| 48 | And I select "Name A-Z" from "sort" | 48 | And I select "Name A-Z" from "sort" |
| 49 | + And I press "Filter" | ||
| 49 | Then I should see "Software One" before "Software Two" | 50 | Then I should see "Software One" before "Software Two" |
| 50 | 51 | ||
| 51 | @selenium | 52 | @selenium |
test/functional/search_controller_test.rb
| @@ -133,6 +133,69 @@ class SearchControllerTest < ActionController::TestCase | @@ -133,6 +133,69 @@ class SearchControllerTest < ActionController::TestCase | ||
| 133 | assert_not_includes assigns(:searches)[:software_infos][:results], software_two.community | 133 | assert_not_includes assigns(:searches)[:software_infos][:results], software_two.community |
| 134 | end | 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 | private | 199 | private |
| 137 | 200 | ||
| 138 | def create_software_categories | 201 | def create_software_categories |
| @@ -151,4 +214,32 @@ class SearchControllerTest < ActionController::TestCase | @@ -151,4 +214,32 @@ class SearchControllerTest < ActionController::TestCase | ||
| 151 | :parent => category_software | 214 | :parent => category_software |
| 152 | ) | 215 | ) |
| 153 | end | 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 | end | 245 | end |
test/helpers/plugin_test_helper.rb
| @@ -13,10 +13,11 @@ module PluginTestHelper | @@ -13,10 +13,11 @@ module PluginTestHelper | ||
| 13 | community | 13 | community |
| 14 | end | 14 | end |
| 15 | 15 | ||
| 16 | - def create_software_info name | 16 | + def create_software_info name, finality = "" |
| 17 | community = create_community(name) | 17 | community = create_community(name) |
| 18 | software_info = SoftwareInfo.new | 18 | software_info = SoftwareInfo.new |
| 19 | software_info.community = community | 19 | software_info.community = community |
| 20 | + software_info.finality = finality | ||
| 20 | software_info.public_software = true | 21 | software_info.public_software = true |
| 21 | software_info.save | 22 | software_info.save |
| 22 | software_info | 23 | software_info |