Commit 8260f4030791a33d9647067ee147cd025fec3d86
1 parent
d63bddce
Exists in
master
and in
23 other branches
Fixes for unit tests (after merge)
* A few syntax problems * Removed tests for removed models * Replaced 'browse' with 'search' controller * Created EnterpriseHomepageHelperTest * Fixes to work with Solr
Showing
13 changed files
with
84 additions
and
970 deletions
Show diff stats
test/unit/application_helper_test.rb
| @@ -98,7 +98,7 @@ class ApplicationHelperTest < ActiveSupport::TestCase | @@ -98,7 +98,7 @@ class ApplicationHelperTest < ActiveSupport::TestCase | ||
| 98 | Environment.any_instance.expects(:default_hostname).returns('example.com') | 98 | Environment.any_instance.expects(:default_hostname).returns('example.com') |
| 99 | 99 | ||
| 100 | result = "/cat/my-category/my-subcatagory" | 100 | result = "/cat/my-category/my-subcatagory" |
| 101 | - expects(:link_to).with('category name', :controller => 'search', :action => 'category_index', :category_path => ['my-category', 'my-subcatagory'], :host => 'example.com').returns(result) | 101 | + expects(:link_to).with('category name', {:controller => 'search', :action => 'category_index', :category_path => ['my-category', 'my-subcatagory'], :host => 'example.com'}, {}).returns(result) |
| 102 | assert_same result, link_to_category(cat) | 102 | assert_same result, link_to_category(cat) |
| 103 | end | 103 | end |
| 104 | 104 |
test/unit/category_finder_test.rb
| @@ -1,526 +0,0 @@ | @@ -1,526 +0,0 @@ | ||
| 1 | -require File.dirname(__FILE__) + '/../test_helper' | ||
| 2 | - | ||
| 3 | -class CategoryFinderTest < ActiveSupport::TestCase | ||
| 4 | - | ||
| 5 | - def setup | ||
| 6 | - ActiveSupport::TestCase::setup | ||
| 7 | - @category = Category.create!(:name => 'my category', :environment => Environment.default) | ||
| 8 | - @finder = CategoryFinder.new(@category) | ||
| 9 | - @product_category = fast_create(ProductCategory, :name => 'Products') | ||
| 10 | - | ||
| 11 | - Profile.rebuild_index | ||
| 12 | -# This doesn't exist/never existed; either we remove or implement? | ||
| 13 | -# Comment.skip_captcha! | ||
| 14 | - end | ||
| 15 | - | ||
| 16 | - should 'search for articles in a specific category' do | ||
| 17 | - person = create_user('teste').person | ||
| 18 | - | ||
| 19 | - # in category | ||
| 20 | - art1 = person.articles.build(:name => 'an article to be found') | ||
| 21 | - art1.add_category(@category) | ||
| 22 | - art1.save! | ||
| 23 | - | ||
| 24 | - # not in category | ||
| 25 | - art2 = person.articles.build(:name => 'another article to be found') | ||
| 26 | - art2.save! | ||
| 27 | - | ||
| 28 | - list = @finder.find(:articles, 'found') | ||
| 29 | - assert_includes list, art1 | ||
| 30 | - assert_not_includes list, art2 | ||
| 31 | - end | ||
| 32 | - | ||
| 33 | - should 'search with query for articles in a specific category' do | ||
| 34 | - person = create_user('teste').person | ||
| 35 | - | ||
| 36 | - # in category | ||
| 37 | - art1 = person.articles.build(:name => 'an article to be found') | ||
| 38 | - art1.add_category(@category) | ||
| 39 | - art1.save! | ||
| 40 | - | ||
| 41 | - # not in category | ||
| 42 | - art2 = person.articles.build(:name => 'another article to be found') | ||
| 43 | - art2.save! | ||
| 44 | - | ||
| 45 | - assert_includes @finder.find('articles', 'found'), art1 | ||
| 46 | - assert_not_includes @finder.find('articles','found'), art2 | ||
| 47 | - end | ||
| 48 | - | ||
| 49 | - should 'search for enterprises in a specific category' do | ||
| 50 | - | ||
| 51 | - # in category | ||
| 52 | - ent1 = Enterprise.create!(:name => 'beautiful enterprise 1', :identifier => 'test1', :category_ids => [@category.id]) | ||
| 53 | - | ||
| 54 | - # not in category | ||
| 55 | - ent2 = fast_create(Enterprise, :name => 'beautiful enterprise 2', :identifier => 'test2') | ||
| 56 | - | ||
| 57 | - list = @finder.find(:enterprises, 'beautiful') | ||
| 58 | - assert_includes list, ent1 | ||
| 59 | - assert_not_includes list, ent2 | ||
| 60 | - end | ||
| 61 | - | ||
| 62 | - should 'search for people in a specific category' do | ||
| 63 | - p1 = create_user('people_1').person; p1.name = 'a beautiful person'; p1.add_category(@category); p1.save! | ||
| 64 | - p2 = create_user('people_2').person; p2.name = 'another beautiful person'; p2.save! | ||
| 65 | - | ||
| 66 | - list = @finder.find(:people, 'beautiful') | ||
| 67 | - assert_includes list, p1 | ||
| 68 | - assert_not_includes list, p2 | ||
| 69 | - end | ||
| 70 | - | ||
| 71 | - should 'search for communities in a specific category' do | ||
| 72 | - c1 = fast_create(Community, :name => 'a beautiful community', :identifier => 'bea_comm', :environment_id => Environment.default.id) | ||
| 73 | - c2 = fast_create(Community, :name => 'another beautiful community', :identifier => 'an_bea_comm', :environment_id => Environment.default.id) | ||
| 74 | - c1.add_category(@category); c1.save! | ||
| 75 | - | ||
| 76 | - list = @finder.find(:communities, 'beautiful') | ||
| 77 | - assert_includes list, c1 | ||
| 78 | - assert_not_includes list, c2 | ||
| 79 | - end | ||
| 80 | - | ||
| 81 | - should 'search for products in a specific category' do | ||
| 82 | - ent1 = fast_create(Enterprise, :name => 'teste1', :identifier => 'teste1'); ent1.add_category(@category) | ||
| 83 | - ent2 = fast_create(Enterprise, :name => 'teste2', :identifier => 'teste2') | ||
| 84 | - prod1 = ent1.products.create!(:name => 'a beautiful product', :product_category => @product_category) | ||
| 85 | - prod2 = ent2.products.create!(:name => 'another beautiful product', :product_category => @product_category) | ||
| 86 | - | ||
| 87 | - list = @finder.find(:products, 'beautiful') | ||
| 88 | - assert_includes list, prod1 | ||
| 89 | - assert_not_includes list, prod2 | ||
| 90 | - end | ||
| 91 | - | ||
| 92 | - should 'search people in category hierarchy' do | ||
| 93 | - parent = fast_create(Category, :name => 'parent category', :environment_id => Environment.default.id) | ||
| 94 | - child = fast_create(Category, :name => 'child category', :environment_id => Environment.default.id, :parent_id => parent.id) | ||
| 95 | - p1 = create_user('people_1').person | ||
| 96 | - p1.name = 'a beautiful person' | ||
| 97 | - p1.add_category(child) | ||
| 98 | - p1.save! | ||
| 99 | - | ||
| 100 | - parent.reload | ||
| 101 | - | ||
| 102 | - f = CategoryFinder.new(parent) | ||
| 103 | - assert_includes f.find(:people, 'beautiful'), p1 | ||
| 104 | - end | ||
| 105 | - | ||
| 106 | - should 'search article in category hierarchy' do | ||
| 107 | - parent = fast_create(Category, :name => 'parent category', :environment_id => Environment.default.id) | ||
| 108 | - child = fast_create(Category, :name => 'child category', :environment_id => Environment.default.id, :parent_id => parent.id) | ||
| 109 | - | ||
| 110 | - p1 = create_user('people_1').person | ||
| 111 | - | ||
| 112 | - article = p1.articles.create!(:name => 'a beautiful article', :category_ids => [child.id]) | ||
| 113 | - | ||
| 114 | - parent.reload | ||
| 115 | - | ||
| 116 | - f = CategoryFinder.new(parent) | ||
| 117 | - assert_includes f.find(:articles, 'beautiful'), article | ||
| 118 | - end | ||
| 119 | - | ||
| 120 | - should 'list recent enterprises' do | ||
| 121 | - ent = Enterprise.create!(:name => 'teste', :identifier => 'teste', :category_ids => [@category.id]) | ||
| 122 | - assert_includes @finder.recent('enterprises'), ent | ||
| 123 | - end | ||
| 124 | - | ||
| 125 | - should 'respond to total_entries in the recent enterprises result' do | ||
| 126 | - ent = Enterprise.create!(:name => 'teste', :identifier => 'teste', :category_ids => [@category.id]) | ||
| 127 | - assert_respond_to @finder.recent('enterprises'), :total_entries | ||
| 128 | - end | ||
| 129 | - | ||
| 130 | - should 'not list more enterprises than limit' do | ||
| 131 | - ent1 = Enterprise.create!(:name => 'teste1', :identifier => 'teste1', :category_ids => [@category.id]) | ||
| 132 | - ent2 = Enterprise.create!(:name => 'teste2', :identifier => 'teste2', :category_ids => [@category.id]) | ||
| 133 | - result = @finder.recent('enterprises', 1) | ||
| 134 | - | ||
| 135 | - assert_equal 1, result.size | ||
| 136 | - end | ||
| 137 | - | ||
| 138 | - should 'paginate the list of more enterprises than limit' do | ||
| 139 | - ent1 = Enterprise.create!(:name => 'teste1', :identifier => 'teste1', :category_ids => [@category.id]) | ||
| 140 | - ent2 = Enterprise.create!(:name => 'teste2', :identifier => 'teste2', :category_ids => [@category.id]) | ||
| 141 | - | ||
| 142 | - page_1 = @finder.find('enterprises', nil, :per_page => 1, :page => 1) | ||
| 143 | - page_2 = @finder.find('enterprises', nil, :per_page => 1, :page => 2) | ||
| 144 | - | ||
| 145 | - assert_equal 1, page_1.size | ||
| 146 | - assert_equal 1, page_2.size | ||
| 147 | - assert_equivalent [ent1, ent2], page_1 + page_2 | ||
| 148 | - end | ||
| 149 | - | ||
| 150 | - should 'paginate the list of more enterprises than limit with query' do | ||
| 151 | - ent1 = Enterprise.create!(:name => 'teste 1', :identifier => 'teste1', :category_ids => [@category.id]) | ||
| 152 | - ent2 = Enterprise.create!(:name => 'teste 2', :identifier => 'teste2', :category_ids => [@category.id]) | ||
| 153 | - | ||
| 154 | - p1 = @finder.find('enterprises', 'teste', :per_page => 1, :page => 1) | ||
| 155 | - p2 = @finder.find('enterprises', 'teste', :per_page => 1, :page => 2) | ||
| 156 | - | ||
| 157 | - assert_respond_to p1, :total_entries | ||
| 158 | - assert_respond_to p2, :total_entries | ||
| 159 | - assert (p1 == [ent1] && p2 == [ent2]) || (p1 == [ent2] && p2 == [ent1]) # consistent paging | ||
| 160 | - end | ||
| 161 | - | ||
| 162 | - should 'not list more people than limit' do | ||
| 163 | - p1 = create_user('test1').person; p1.add_category(@category) | ||
| 164 | - p2 = create_user('test2').person; p2.add_category(@category) | ||
| 165 | - result = @finder.recent('people', 1) | ||
| 166 | - | ||
| 167 | - assert_equal 1, result.size | ||
| 168 | - end | ||
| 169 | - | ||
| 170 | - should 'list recent articles' do | ||
| 171 | - person = create_user('teste').person | ||
| 172 | - art1 = person.articles.create!(:name => 'an article to be found', :category_ids => [@category.id]) | ||
| 173 | - art2 = person.articles.create!(:name => 'another article to be found', :category_ids => [@category.id]) | ||
| 174 | - | ||
| 175 | - result = @finder.recent('articles', 1) | ||
| 176 | - | ||
| 177 | - assert_equal [art2], result | ||
| 178 | - end | ||
| 179 | - | ||
| 180 | - should 'not return the same result twice' do | ||
| 181 | - parent = fast_create(Category, :name => 'parent category', :environment_id => Environment.default.id) | ||
| 182 | - child = fast_create(Category, :name => 'child category', :environment_id => Environment.default.id, :parent_id => parent.id) | ||
| 183 | - p1 = create_user('people_1').person | ||
| 184 | - p1.name = 'a beautiful person' | ||
| 185 | - p1.category_ids = [child.id, parent.id]; p1.save! | ||
| 186 | - | ||
| 187 | - f = CategoryFinder.new(parent) | ||
| 188 | - result = f.find(:people, 'beautiful') | ||
| 189 | - | ||
| 190 | - assert_equal [p1], result | ||
| 191 | - assert_equal 1, result.size | ||
| 192 | - end | ||
| 193 | - | ||
| 194 | - should 'return most commented articles' do | ||
| 195 | - Article.delete_all | ||
| 196 | - | ||
| 197 | - person = create_user('testuser').person | ||
| 198 | - articles = (1..4).map {|n| a = person.articles.build(:name => "art #{n}", :category_ids => [@category.id]); a.save!; a } | ||
| 199 | - | ||
| 200 | - 2.times { articles[0].comments.build(:title => 'test', :body => 'asdsad', :author => person).save! } | ||
| 201 | - 4.times { articles[1].comments.build(:title => 'test', :body => 'asdsad', :author => person).save! } | ||
| 202 | - | ||
| 203 | - result = @finder.most_commented_articles(2) | ||
| 204 | - # should respect the order (more commented comes first) | ||
| 205 | - assert_equal [articles[1], articles[0]], result | ||
| 206 | - assert_respond_to result, :total_entries | ||
| 207 | - end | ||
| 208 | - | ||
| 209 | - should 'find person and enterprise by radius and region' do | ||
| 210 | - finder = CategoryFinder.new(@category) | ||
| 211 | - | ||
| 212 | - region = fast_create(Region, :name => 'r-test', :environment_id => Environment.default.id, :lat => 45.0, :lng => 45.0) | ||
| 213 | - ent1 = Enterprise.create!(:name => 'test 1', :identifier => 'test1', :lat => 45.0, :lng => 45.0, :category_ids => [@category.id]) | ||
| 214 | - p1 = create_user('test2').person | ||
| 215 | - p1.name = 'test 2'; p1.lat = 45.0; p1.lng = 45.0; p1.add_category(@category); p1.save! | ||
| 216 | - ent2 = Enterprise.create!(:name => 'test 3', :identifier => 'test3', :lat => 30.0, :lng => 30.0, :category_ids => [@category.id]) | ||
| 217 | - p2 = create_user('test4').person | ||
| 218 | - p2.name = 'test 4'; p2.lat = 30.0; p2.lng = 30.0; p2.add_category(@category); p2.save! | ||
| 219 | - | ||
| 220 | - ents = finder.find(:enterprises, 'test', :within => 10, :region => region.id) | ||
| 221 | - people = finder.find(:people, 'test', :within => 10, :region => region.id) | ||
| 222 | - | ||
| 223 | - assert_includes ents, ent1 | ||
| 224 | - assert_not_includes ents, ent2 | ||
| 225 | - assert_includes people, p1 | ||
| 226 | - assert_not_includes people, p2 | ||
| 227 | - end | ||
| 228 | - | ||
| 229 | - should 'find current events' do | ||
| 230 | - finder = CategoryFinder.new(@category) | ||
| 231 | - person = create_user('testuser').person | ||
| 232 | - | ||
| 233 | - e1 = Event.create!(:name => 'e1', :profile => person, :start_date => Date.new(2008,1,1), :category_ids => [@category.id]) | ||
| 234 | - | ||
| 235 | - # not in category | ||
| 236 | - e2 = fast_create(Event, :name => 'e2', :profile_id => person.id, :start_date => Date.new(2008,1,15)) | ||
| 237 | - | ||
| 238 | - events = finder.current_events(2008, 1) | ||
| 239 | - assert_includes events, e1 | ||
| 240 | - assert_not_includes events, e2 | ||
| 241 | - end | ||
| 242 | - | ||
| 243 | - should 'list upcoming events' do | ||
| 244 | - person = create_user('testuser').person | ||
| 245 | - | ||
| 246 | - Date.expects(:today).returns(Date.new(2008, 1, 15)).at_least_once | ||
| 247 | - | ||
| 248 | - past_event = Event.create!(:name => 'past event', :profile => person, :start_date => Date.new(2008,1,1), :category_ids => [@category.id]) | ||
| 249 | - | ||
| 250 | - # event 2 is created after, but must be listed before (since it happens before) | ||
| 251 | - upcoming_event_2 = Event.create!(:name => 'upcoming event 2', :profile => person, :start_date => Date.new(2008,1,25), :category_ids => [@category.id]) | ||
| 252 | - upcoming_event_1 = Event.create!(:name => 'upcoming event 1', :profile => person, :start_date => Date.new(2008,1,20), :category_ids => [@category.id]) | ||
| 253 | - not_in_category = fast_create(Event, :name => 'e1', :profile_id => person.id, :start_date => Date.new(2008,1,20)) | ||
| 254 | - | ||
| 255 | - assert_equal [upcoming_event_1, upcoming_event_2], @finder.upcoming_events | ||
| 256 | - end | ||
| 257 | - | ||
| 258 | - should 'find person and enterprise in category by radius and region even without query' do | ||
| 259 | - cat = fast_create(Category, :name => 'test category', :environment_id => Environment.default.id) | ||
| 260 | - finder = CategoryFinder.new(cat) | ||
| 261 | - | ||
| 262 | - region = fast_create(Region, :name => 'r-test', :environment_id => Environment.default.id, :lat => 45.0, :lng => 45.0) | ||
| 263 | - ent1 = Enterprise.create!(:name => 'test 1', :identifier => 'test1', :lat => 45.0, :lng => 45.0, :category_ids => [cat.id]) | ||
| 264 | - p1 = create_user('test2').person | ||
| 265 | - p1.name = 'test 2'; p1.lat = 45.0; p1.lng = 45.0; p1.add_category(cat); p1.save! | ||
| 266 | - ent2 = Enterprise.create!(:name => 'test 3', :identifier => 'test3', :lat => 30.0, :lng => 30.0, :category_ids => [cat.id]) | ||
| 267 | - p2 = create_user('test4').person | ||
| 268 | - p2.name = 'test 4'; p2.lat = 30.0; p2.lng = 30.0; p2.add_category(cat); p2.save! | ||
| 269 | - | ||
| 270 | - ents = finder.find(:enterprises, nil, :within => 10, :region => region.id) | ||
| 271 | - people = finder.find(:people, nil, :within => 10, :region => region.id) | ||
| 272 | - | ||
| 273 | - assert_includes ents, ent1 | ||
| 274 | - assert_not_includes ents, ent2 | ||
| 275 | - assert_includes people, p1 | ||
| 276 | - assert_not_includes people, p2 | ||
| 277 | - end | ||
| 278 | - | ||
| 279 | - should 'find products in category wihin product category' do | ||
| 280 | - cat = fast_create(Category, :name => 'test category', :environment_id => Environment.default.id) | ||
| 281 | - finder = CategoryFinder.new(cat) | ||
| 282 | - | ||
| 283 | - prod_cat = fast_create(ProductCategory, :name => 'test product category', :environment_id => Environment.default.id) | ||
| 284 | - ent = Enterprise.create!(:name => 'test enterprise', :identifier => 'test_ent', :category_ids => [cat.id]) | ||
| 285 | - prod1 = ent.products.create!(:name => 'test product 1', :product_category => prod_cat) | ||
| 286 | - prod2 = ent.products.create!(:name => 'test product 2', :product_category => @product_category) | ||
| 287 | - | ||
| 288 | - prods = finder.find(:products, nil, :product_category => prod_cat) | ||
| 289 | - | ||
| 290 | - assert_includes prods, prod1 | ||
| 291 | - assert_not_includes prods, prod2 | ||
| 292 | - end | ||
| 293 | - | ||
| 294 | - should 'find enterprises by its products categories without query' do | ||
| 295 | - pc1 = fast_create(ProductCategory, :name => 'test_cat1', :environment_id => Environment.default.id) | ||
| 296 | - pc2 = fast_create(ProductCategory, :name => 'test_cat2', :environment_id => Environment.default.id) | ||
| 297 | - | ||
| 298 | - ent1 = Enterprise.create!(:name => 'test enterprise 1', :identifier => 'test_ent1', :category_ids => [@category.id]) | ||
| 299 | - ent1.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 300 | - ent2 = Enterprise.create!(:name => 'test enterprise 2', :identifier => 'test_ent2', :category_ids => [@category.id]) | ||
| 301 | - ent2.products.create!(:name => 'test product 2', :product_category => pc2) | ||
| 302 | - | ||
| 303 | - ents = @finder.find(:enterprises, nil, :product_category => pc1) | ||
| 304 | - | ||
| 305 | - assert_includes ents, ent1 | ||
| 306 | - assert_not_includes ents, ent2 | ||
| 307 | - end | ||
| 308 | - | ||
| 309 | - should 'find enterprises by its products categories with query' do | ||
| 310 | - pc1 = fast_create(ProductCategory, :name => 'test_cat1', :environment_id => Environment.default.id) | ||
| 311 | - pc2 = fast_create(ProductCategory, :name => 'test_cat2', :environment_id => Environment.default.id) | ||
| 312 | - | ||
| 313 | - ent1 = Enterprise.create!(:name => 'test enterprise 1', :identifier => 'test_ent1', :category_ids => [@category.id]) | ||
| 314 | - ent1.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 315 | - ent2 = Enterprise.create!(:name => 'test enterprise 2', :identifier => 'test_ent2', :category_ids => [@category.id]) | ||
| 316 | - ent2.products.create!(:name => 'test product 2', :product_category => pc2) | ||
| 317 | - | ||
| 318 | - ents = @finder.find(:enterprises, 'test', :product_category => pc1) | ||
| 319 | - | ||
| 320 | - assert_includes ents, ent1 | ||
| 321 | - assert_not_includes ents, ent2 | ||
| 322 | - end | ||
| 323 | - | ||
| 324 | - should 'count product categories results by products' do | ||
| 325 | - pc1 = fast_create(ProductCategory, :name => 'test cat1', :environment_id => Environment.default.id) | ||
| 326 | - pc11 = fast_create(ProductCategory, :name => 'test cat11', :environment_id => Environment.default.id, :parent_id => pc1.id) | ||
| 327 | - pc2 = fast_create(ProductCategory, :name => 'test cat2', :environment_id => Environment.default.id) | ||
| 328 | - pc3 = fast_create(ProductCategory, :name => 'test cat3', :environment_id => Environment.default.id) | ||
| 329 | - | ||
| 330 | - ent = Enterprise.create!(:name => 'test enterprise 1', :identifier => 'test_ent1', :category_ids => [@category.id]) | ||
| 331 | - p1 = ent.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 332 | - p2 = ent.products.create!(:name => 'test product 2', :product_category => pc11) | ||
| 333 | - p3 = ent.products.create!(:name => 'test product 3', :product_category => pc2) | ||
| 334 | - p4 = ent.products.create!(:name => 'test product 4', :product_category => pc2) # not in the count | ||
| 335 | - p5 = ent.products.create!(:name => 'test product 5', :product_category => pc3) # not in the count | ||
| 336 | - | ||
| 337 | - ent2 = fast_create(Enterprise, :name => 'test enterprise 2', :identifier => 'test_ent2') | ||
| 338 | - p6 = ent2.products.create!(:name => 'test product 6', :product_category => pc1) | ||
| 339 | - | ||
| 340 | - counts = @finder.product_categories_count(:products, [pc1.id, pc11.id, pc2.id], [p1.id, p2.id, p3.id, p5.id, p6.id] ) | ||
| 341 | - | ||
| 342 | - assert_equal 2, counts[pc1.id] | ||
| 343 | - assert_equal 1, counts[pc11.id] | ||
| 344 | - assert_equal 1, counts[pc2.id] | ||
| 345 | - assert_nil counts[pc3.id] | ||
| 346 | - end | ||
| 347 | - | ||
| 348 | - should 'count product categories results by all products' do | ||
| 349 | - pc1 = fast_create(ProductCategory, :name => 'test cat1', :environment_id => Environment.default.id) | ||
| 350 | - pc11 = fast_create(ProductCategory, :name => 'test cat11', :environment_id => Environment.default.id, :parent_id => pc1.id) | ||
| 351 | - pc2 = fast_create(ProductCategory, :name => 'test cat2', :environment_id => Environment.default.id) | ||
| 352 | - pc3 = fast_create(ProductCategory, :name => 'test cat3', :environment_id => Environment.default.id) | ||
| 353 | - | ||
| 354 | - ent = Enterprise.create!(:name => 'test enterprise 1', :identifier => 'test_ent1', :category_ids => [@category.id]) | ||
| 355 | - p1 = ent.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 356 | - p2 = ent.products.create!(:name => 'test product 2', :product_category => pc11) | ||
| 357 | - p3 = ent.products.create!(:name => 'test product 3', :product_category => pc2) | ||
| 358 | - p4 = ent.products.create!(:name => 'test product 4', :product_category => pc3) # not in the count | ||
| 359 | - | ||
| 360 | - ent2 = fast_create(Enterprise, :name => 'test enterprise 2', :identifier => 'test_ent2') | ||
| 361 | - p6 = ent2.products.create!(:name => 'test product 6', :product_category => pc1) | ||
| 362 | - | ||
| 363 | - | ||
| 364 | - counts = @finder.product_categories_count(:products, [pc1.id, pc11.id, pc2.id] ) | ||
| 365 | - | ||
| 366 | - assert_equal 2, counts[pc1.id] | ||
| 367 | - assert_equal 1, counts[pc11.id] | ||
| 368 | - assert_equal 1, counts[pc2.id] | ||
| 369 | - assert_nil counts[pc3.id] | ||
| 370 | - end | ||
| 371 | - | ||
| 372 | - should 'count product categories results by enterprises' do | ||
| 373 | - pc1 = fast_create(ProductCategory, :name => 'test cat1', :environment_id => Environment.default.id) | ||
| 374 | - pc11 = fast_create(ProductCategory, :name => 'test cat11', :environment_id => Environment.default.id, :parent_id => pc1.id) | ||
| 375 | - pc2 = fast_create(ProductCategory, :name => 'test cat2', :environment_id => Environment.default.id) | ||
| 376 | - pc3 = fast_create(ProductCategory, :name => 'test cat3', :environment_id => Environment.default.id) | ||
| 377 | - | ||
| 378 | - ent1 = Enterprise.create!(:name => 'test enterprise 1', :identifier => 'test_ent1', :category_ids => [@category.id]) | ||
| 379 | - ent1.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 380 | - ent1.products.create!(:name => 'test product 2', :product_category => pc1) | ||
| 381 | - ent2 = Enterprise.create!(:name => 'test enterprise 2', :identifier => 'test_ent2', :category_ids => [@category.id]) | ||
| 382 | - ent2.products.create!(:name => 'test product 2', :product_category => pc11) | ||
| 383 | - ent3 = Enterprise.create!(:name => 'test enterprise 3', :identifier => 'test_ent3', :category_ids => [@category.id]) | ||
| 384 | - ent3.products.create!(:name => 'test product 3', :product_category => pc2) | ||
| 385 | - ent4 = Enterprise.create!(:name => 'test enterprise 4', :identifier => 'test_ent4', :category_ids => [@category.id]) | ||
| 386 | - ent4.products.create!(:name => 'test product 4', :product_category => pc2) | ||
| 387 | - ent5 = Enterprise.create!(:name => 'test enterprise 5', :identifier => 'test_ent5', :category_ids => [@category.id]) | ||
| 388 | - ent5.products.create!(:name => 'test product 5', :product_category => pc2) | ||
| 389 | - ent5.products.create!(:name => 'test product 6', :product_category => pc3) | ||
| 390 | - | ||
| 391 | - ent6 = fast_create(Enterprise, :name => 'test enterprise 6', :identifier => 'test_ent6') | ||
| 392 | - p6 = ent2.products.create!(:name => 'test product 6', :product_category => pc1) | ||
| 393 | - | ||
| 394 | - counts = @finder.product_categories_count(:enterprises, [pc1.id, pc11.id, pc2.id], [ent1.id, ent2.id, ent3.id, ent4.id] ) | ||
| 395 | - | ||
| 396 | - assert_equal 2, counts[pc1.id] | ||
| 397 | - assert_equal 1, counts[pc11.id] | ||
| 398 | - assert_equal 2, counts[pc2.id] | ||
| 399 | - assert_nil counts[pc3.id] | ||
| 400 | - end | ||
| 401 | - | ||
| 402 | - should 'count product categories results by all enterprises' do | ||
| 403 | - pc1 = fast_create(ProductCategory, :name => 'test cat1', :environment_id => Environment.default.id) | ||
| 404 | - pc11 = fast_create(ProductCategory, :name => 'test cat11', :environment_id => Environment.default, :parent_id => pc1.id) | ||
| 405 | - pc2 = fast_create(ProductCategory, :name => 'test cat2', :environment_id => Environment.default.id) | ||
| 406 | - pc3 = fast_create(ProductCategory, :name => 'test cat3', :environment_id => Environment.default.id) | ||
| 407 | - | ||
| 408 | - ent1 = Enterprise.create!(:name => 'test enterprise 1', :identifier => 'test_ent1', :category_ids => [@category.id]) | ||
| 409 | - ent1.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 410 | - ent1.products.create!(:name => 'test product 2', :product_category => pc1) | ||
| 411 | - ent2 = Enterprise.create!(:name => 'test enterprise 2', :identifier => 'test_ent2', :category_ids => [@category.id]) | ||
| 412 | - ent2.products.create!(:name => 'test product 2', :product_category => pc11) | ||
| 413 | - ent3 = Enterprise.create!(:name => 'test enterprise 3', :identifier => 'test_ent3', :category_ids => [@category.id]) | ||
| 414 | - ent3.products.create!(:name => 'test product 3', :product_category => pc2) | ||
| 415 | - ent4 = Enterprise.create!(:name => 'test enterprise 4', :identifier => 'test_ent4', :category_ids => [@category.id]) | ||
| 416 | - ent4.products.create!(:name => 'test product 4', :product_category => pc2) | ||
| 417 | - ent4.products.create!(:name => 'test product 5', :product_category => pc3) | ||
| 418 | - | ||
| 419 | - ent5 = fast_create(Enterprise, :name => 'test enterprise 5', :identifier => 'test_ent5') | ||
| 420 | - p6 = ent2.products.create!(:name => 'test product 6', :product_category => pc1) | ||
| 421 | - | ||
| 422 | - counts = @finder.product_categories_count(:enterprises, [pc1.id, pc11.id, pc2.id] ) | ||
| 423 | - | ||
| 424 | - assert_equal 2, counts[pc1.id] | ||
| 425 | - assert_equal 1, counts[pc11.id] | ||
| 426 | - assert_equal 2, counts[pc2.id] | ||
| 427 | - assert_nil counts[pc3.id] | ||
| 428 | - end | ||
| 429 | - | ||
| 430 | - should 'find enterprises in alphabetical order of name' do | ||
| 431 | - ent1 = Enterprise.create!(:name => 'test enterprise B', :identifier => 'test_ent_b', :category_ids => [@category.id]) | ||
| 432 | - ent2 = Enterprise.create!(:name => 'test enterprise A', :identifier => 'test_ent_a', :category_ids => [@category.id]) | ||
| 433 | - ent3 = Enterprise.create!(:name => 'test enterprise C', :identifier => 'test_ent_c', :category_ids => [@category.id]) | ||
| 434 | - | ||
| 435 | - ents = @finder.find(:enterprises, nil) | ||
| 436 | - | ||
| 437 | - assert ents.index(ent2) < ents.index(ent1), "expected #{ents.index(ent2)} be smaller than #{ents.index(ent1)}" | ||
| 438 | - assert ents.index(ent1) < ents.index(ent3), "expected #{ents.index(ent1)} be smaller than #{ents.index(ent3)}" | ||
| 439 | - end | ||
| 440 | - | ||
| 441 | - should 'search for text articles in a specific category' do | ||
| 442 | - person = create_user('teste').person | ||
| 443 | - | ||
| 444 | - # in category | ||
| 445 | - art1 = fast_create(TextileArticle, :name => 'an article to be found', :profile_id => person.id) | ||
| 446 | - art1.add_category(@category) | ||
| 447 | - art1.save! | ||
| 448 | - | ||
| 449 | - # not in category | ||
| 450 | - art2 = fast_create(TextileArticle, :name => 'another article to be found', :profile_id => person.id) | ||
| 451 | - | ||
| 452 | - list = @finder.find(:text_articles, 'found') | ||
| 453 | - assert_includes list, art1 | ||
| 454 | - assert_not_includes list, art2 | ||
| 455 | - end | ||
| 456 | - | ||
| 457 | - should 'find events in a date range' do | ||
| 458 | - person = create_user('testuser').person | ||
| 459 | - | ||
| 460 | - date_range = Date.new(2009, 11, 28)..Date.new(2009, 12, 3) | ||
| 461 | - | ||
| 462 | - event_in_range = Event.create!(:name => 'Event in range', :profile => person, :start_date => Date.new(2009, 11, 27), :end_date => date_range.last, :category_ids => [@category.id]) | ||
| 463 | - event_out_of_range = Event.create!(:name => 'Event out of range', :profile => person, :start_date => Date.new(2009, 12, 4), :category_ids => [@category.id]) | ||
| 464 | - | ||
| 465 | - events_found = @finder.find(:events, '', :date_range => date_range) | ||
| 466 | - | ||
| 467 | - assert_includes events_found, event_in_range | ||
| 468 | - assert_not_includes events_found, event_out_of_range | ||
| 469 | - end | ||
| 470 | - | ||
| 471 | - should 'not paginate events' do | ||
| 472 | - person = create_user('testuser').person | ||
| 473 | - | ||
| 474 | - create(:event, :profile_id => person.id, :category_ids => [@category.id]) | ||
| 475 | - create(:event, :profile_id => person.id, :category_ids => [@category.id]) | ||
| 476 | - | ||
| 477 | - assert_equal 2, @finder.find(:events, '', :per_page => 1).size | ||
| 478 | - end | ||
| 479 | - | ||
| 480 | - should 'not paginate events within a range' do | ||
| 481 | - person = create_user('testuser').person | ||
| 482 | - | ||
| 483 | - create(:event, :profile_id => person.id, :category_ids => [@category.id]) | ||
| 484 | - create(:event, :profile_id => person.id, :category_ids => [@category.id]) | ||
| 485 | - | ||
| 486 | - date_range = Date.today..Date.today | ||
| 487 | - assert_equal 2, @finder.find(:events, '', :date_range => date_range, :per_page => 1).size | ||
| 488 | - end | ||
| 489 | - | ||
| 490 | - should 'not paginate current events' do | ||
| 491 | - person = create_user('testuser').person | ||
| 492 | - | ||
| 493 | - create(:event, :profile_id => person.id, :category_ids => [@category.id]) | ||
| 494 | - create(:event, :profile_id => person.id, :category_ids => [@category.id]) | ||
| 495 | - | ||
| 496 | - assert_equal 2, @finder.current_events(Date.today.year, Date.today.month, :per_page => 1).size | ||
| 497 | - end | ||
| 498 | - | ||
| 499 | - should 'not paginate upcoming events' do | ||
| 500 | - person = create_user('testuser').person | ||
| 501 | - | ||
| 502 | - create(:event, :profile_id => person.id, :category_ids => [@category.id]) | ||
| 503 | - create(:event, :profile_id => person.id, :category_ids => [@category.id]) | ||
| 504 | - | ||
| 505 | - assert_equal 2, @finder.upcoming_events(:per_page => 1).size | ||
| 506 | - end | ||
| 507 | - | ||
| 508 | - should 'not paginate searching for specific event' do | ||
| 509 | - person = create_user('teste').person | ||
| 510 | - | ||
| 511 | - today = Date.today | ||
| 512 | - | ||
| 513 | - event_to_found1 = Event.create!(:name => 'ToFound 1', :profile => person, :category_ids => [@category.id], :start_date => today) | ||
| 514 | - event_to_found2 = Event.create!(:name => 'ToFound 2', :profile => person, :category_ids => [@category.id], :start_date => today) | ||
| 515 | - event_to_not_found1 = Event.create!(:name => 'ToNotFound 1', :profile => person, :category_ids => [@category.id], :start_date => today) | ||
| 516 | - event_to_not_found2 = Event.create!(:name => 'ToNotFound 2', :profile => person, :category_ids => [@category.id], :start_date => today) | ||
| 517 | - | ||
| 518 | - result = @finder.find(:events, 'ToFound', :per_page => 1) | ||
| 519 | - | ||
| 520 | - assert_includes result, event_to_found1 | ||
| 521 | - assert_includes result, event_to_found2 | ||
| 522 | - assert_not_includes result, event_to_not_found1 | ||
| 523 | - assert_not_includes result, event_to_not_found2 | ||
| 524 | - end | ||
| 525 | - | ||
| 526 | -end |
test/unit/communities_block_test.rb
| @@ -43,7 +43,7 @@ class CommunitiesBlockTest < ActiveSupport::TestCase | @@ -43,7 +43,7 @@ class CommunitiesBlockTest < ActiveSupport::TestCase | ||
| 43 | block = CommunitiesBlock.new | 43 | block = CommunitiesBlock.new |
| 44 | block.expects(:owner).returns(env) | 44 | block.expects(:owner).returns(env) |
| 45 | 45 | ||
| 46 | - expects(:link_to).with('View all', :controller => "browse", :action => 'communities') | 46 | + expects(:link_to).with('View all', :controller => "search", :action => 'communities') |
| 47 | 47 | ||
| 48 | instance_eval(&block.footer) | 48 | instance_eval(&block.footer) |
| 49 | end | 49 | end |
| @@ -0,0 +1,64 @@ | @@ -0,0 +1,64 @@ | ||
| 1 | +require File.dirname(__FILE__) + '/../test_helper' | ||
| 2 | + | ||
| 3 | +class EnterpriseHomepageHelperTest < ActiveSupport::TestCase | ||
| 4 | + | ||
| 5 | + include EnterpriseHomepageHelper | ||
| 6 | + | ||
| 7 | + def setup | ||
| 8 | + @profile = mock | ||
| 9 | + profile.stubs(:profile_image).returns('profileimage.png') | ||
| 10 | + self.stubs(:url_for).returns('link to profile') | ||
| 11 | + profile.stubs(:name).returns('Name of Profile') | ||
| 12 | + profile.stubs(:url).returns('') | ||
| 13 | + profile.stubs(:products).returns([Product.new(:name => 'product test')]) | ||
| 14 | + profile.stubs(:identifier).returns('name-of-profile') | ||
| 15 | + profile.stubs(:region).returns(Region.new(:name => 'Brazil')) | ||
| 16 | + profile.stubs(:address).returns('Address of Profile') | ||
| 17 | + profile.stubs(:contact_email).returns('Email of Profile') | ||
| 18 | + profile.stubs(:contact_phone).returns('Phone of Profile') | ||
| 19 | + profile.stubs(:contact_person).returns('Profile Owner') | ||
| 20 | + profile.stubs(:location).returns('Profile Location'); | ||
| 21 | + profile.stubs(:economic_activity).returns('Profile Economic Activity'); | ||
| 22 | + end | ||
| 23 | + attr_reader :profile | ||
| 24 | + | ||
| 25 | + should 'display profile info' do | ||
| 26 | + result = display_profile_info(profile) | ||
| 27 | + assert_match /Profile Owner/, result | ||
| 28 | + assert_match /Email of Profile/, result | ||
| 29 | + assert_match /Phone of Profile/, result | ||
| 30 | + assert_match /Profile Location/, result | ||
| 31 | + assert_match /Address of Profile/, result | ||
| 32 | + assert_match /Profile Economic Activity/, result | ||
| 33 | + end | ||
| 34 | + | ||
| 35 | + should 'not display attribute if nil' do | ||
| 36 | + profile.stubs(:contact_person).returns(nil); | ||
| 37 | + result = display_profile_info(profile) | ||
| 38 | + assert_no_match /Profile Owner/, result | ||
| 39 | + end | ||
| 40 | + | ||
| 41 | + should 'not display attribute if blank' do | ||
| 42 | + profile.stubs(:contact_person).returns(''); | ||
| 43 | + result = display_profile_info(profile) | ||
| 44 | + assert_no_match /Profile Owner/, result | ||
| 45 | + end | ||
| 46 | + | ||
| 47 | + should 'display distance' do | ||
| 48 | + profile.stubs(:distance).returns(100.345); | ||
| 49 | + result = display_profile_info(profile) | ||
| 50 | + assert_match /Distance:/, result | ||
| 51 | + assert_match /100.34/, result | ||
| 52 | + end | ||
| 53 | + | ||
| 54 | + should 'not display distance if nil' do | ||
| 55 | + profile.stubs(:distance).returns(nil); | ||
| 56 | + result = display_profile_info(profile) | ||
| 57 | + assert_no_match /Distance:/, result | ||
| 58 | + assert_no_match /100.34/, result | ||
| 59 | + end | ||
| 60 | + | ||
| 61 | + protected | ||
| 62 | + include NoosferoTestHelper | ||
| 63 | + | ||
| 64 | +end |
test/unit/environment_finder_test.rb
| @@ -1,361 +0,0 @@ | @@ -1,361 +0,0 @@ | ||
| 1 | -require File.dirname(__FILE__) + '/../test_helper' | ||
| 2 | - | ||
| 3 | -class EnvironmentFinderTest < ActiveSupport::TestCase | ||
| 4 | - | ||
| 5 | - def setup | ||
| 6 | - ActiveSupport::TestCase::setup | ||
| 7 | - @product_category = fast_create(ProductCategory, :name => 'Products') | ||
| 8 | - end | ||
| 9 | - | ||
| 10 | - should 'find articles' do | ||
| 11 | - person = create_user('teste').person | ||
| 12 | - art = person.articles.build(:name => 'an article to be found'); art.save! | ||
| 13 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 14 | - assert_includes finder.find(:articles, 'found'), art | ||
| 15 | - end | ||
| 16 | - | ||
| 17 | - should 'find people' do | ||
| 18 | - p1 = create_user('people_1').person; p1.name = 'a beautiful person'; p1.save! | ||
| 19 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 20 | - assert_includes finder.find(:people, 'beautiful'), p1 | ||
| 21 | - end | ||
| 22 | - | ||
| 23 | - should 'find communities' do | ||
| 24 | - c1 = Community.create!(:name => 'a beautiful community', :identifier => 'bea_comm', :environment => Environment.default) | ||
| 25 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 26 | - assert_includes finder.find(:communities, 'beautiful'), c1 | ||
| 27 | - end | ||
| 28 | - | ||
| 29 | - should 'find products' do | ||
| 30 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 31 | - ent = fast_create(Enterprise, :name => 'teste', :identifier => 'teste') | ||
| 32 | - prod = ent.products.create!(:name => 'a beautiful product', :product_category => @product_category) | ||
| 33 | - assert_includes finder.find(:products, 'beautiful'), prod | ||
| 34 | - end | ||
| 35 | - | ||
| 36 | - should 'find enterprises' do | ||
| 37 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 38 | - ent = Enterprise.create!(:name => 'a beautiful enterprise', :identifier => 'teste') | ||
| 39 | - assert_includes finder.find(:enterprises, 'beautiful'), ent | ||
| 40 | - end | ||
| 41 | - | ||
| 42 | - should 'list recent enterprises' do | ||
| 43 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 44 | - ent = fast_create(Enterprise, :name => 'teste', :identifier => 'teste') | ||
| 45 | - assert_includes finder.recent('enterprises'), ent | ||
| 46 | - end | ||
| 47 | - | ||
| 48 | - should 'not list more enterprises than limit' do | ||
| 49 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 50 | - ent1 = fast_create(Enterprise, :name => 'teste1', :identifier => 'teste1') | ||
| 51 | - ent2 = fast_create(Enterprise, :name => 'teste2', :identifier => 'teste2') | ||
| 52 | - recent = finder.recent('enterprises', 1) | ||
| 53 | - | ||
| 54 | - assert_equal 1, recent.size | ||
| 55 | - end | ||
| 56 | - | ||
| 57 | - should 'paginate the list of more enterprises than limit' do | ||
| 58 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 59 | - ent1 = fast_create(Enterprise, :name => 'teste1', :identifier => 'teste1') | ||
| 60 | - ent2 = fast_create(Enterprise, :name => 'teste2', :identifier => 'teste2') | ||
| 61 | - | ||
| 62 | - assert_equal 1, finder.find('enterprises', nil, :per_page => 1, :page => 1).size | ||
| 63 | - end | ||
| 64 | - | ||
| 65 | - should 'paginate the list of more enterprises than limit with query' do | ||
| 66 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 67 | - | ||
| 68 | - ent1 = Enterprise.create!(:name => 'teste 1', :identifier => 'teste1') | ||
| 69 | - ent2 = Enterprise.create!(:name => 'teste 2', :identifier => 'teste2') | ||
| 70 | - | ||
| 71 | - p1 = finder.find('enterprises', 'teste', :per_page => 1, :page => 1) | ||
| 72 | - p2 = finder.find('enterprises', 'teste', :per_page => 1, :page => 2) | ||
| 73 | - | ||
| 74 | - assert (p1 == [ent1] && p2 == [ent2]) || (p1 == [ent2] && p2 == [ent1]) | ||
| 75 | - end | ||
| 76 | - | ||
| 77 | - should 'find person and enterprise by radius and region' do | ||
| 78 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 79 | - | ||
| 80 | - region = fast_create(Region, :name => 'r-test', :environment_id => Environment.default.id, :lat => 45.0, :lng => 45.0) | ||
| 81 | - ent1 = fast_create(Enterprise, {:name => 'test 1', :identifier => 'test1', :lat => 45.0, :lng => 45.0}, :search => true) | ||
| 82 | - p1 = create_user('test2').person | ||
| 83 | - p1.name = 'test 2'; p1.lat = 45.0; p1.lng = 45.0; p1.save! | ||
| 84 | - ent2 = fast_create(Enterprise, {:name => 'test 3', :identifier => 'test3', :lat => 30.0, :lng => 30.0}, :search => true) | ||
| 85 | - p2 = create_user('test4').person | ||
| 86 | - p2.name = 'test 4'; p2.lat = 30.0; p2.lng = 30.0; p2.save! | ||
| 87 | - | ||
| 88 | - ents = finder.find(:enterprises, 'test', :within => 10, :region => region.id) | ||
| 89 | - people = finder.find(:people, 'test', :within => 10, :region => region.id) | ||
| 90 | - | ||
| 91 | - assert_includes ents, ent1 | ||
| 92 | - assert_not_includes ents, ent2 | ||
| 93 | - assert_includes people, p1 | ||
| 94 | - assert_not_includes people, p2 | ||
| 95 | - end | ||
| 96 | - | ||
| 97 | - should 'find person and enterprise by radius and region even without query' do | ||
| 98 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 99 | - | ||
| 100 | - region = fast_create(Region, :name => 'r-test', :environment_id => Environment.default.id, :lat => 45.0, :lng => 45.0) | ||
| 101 | - ent1 = fast_create(Enterprise, :name => 'test 1', :identifier => 'test1', :lat => 45.0, :lng => 45.0) | ||
| 102 | - p1 = create_user('test2').person | ||
| 103 | - p1.name = 'test 2'; p1.lat = 45.0; p1.lng = 45.0; p1.save! | ||
| 104 | - ent2 = fast_create(Enterprise, :name => 'test 3', :identifier => 'test3', :lat => 30.0, :lng => 30.0) | ||
| 105 | - p2 = create_user('test4').person | ||
| 106 | - p2.name = 'test 4'; p2.lat = 30.0; p2.lng = 30.0; p2.save! | ||
| 107 | - | ||
| 108 | - ents = finder.find(:enterprises, nil, :within => 10, :region => region.id) | ||
| 109 | - people = finder.find(:people, nil, :within => 10, :region => region.id) | ||
| 110 | - | ||
| 111 | - assert_includes ents, ent1 | ||
| 112 | - assert_not_includes ents, ent2 | ||
| 113 | - assert_includes people, p1 | ||
| 114 | - assert_not_includes people, p2 | ||
| 115 | - end | ||
| 116 | - | ||
| 117 | - should 'find products wihin product category' do | ||
| 118 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 119 | - cat = fast_create(ProductCategory, :name => 'test category', :environment_id => Environment.default.id) | ||
| 120 | - ent = fast_create(Enterprise, :name => 'test enterprise', :identifier => 'test_ent') | ||
| 121 | - prod1 = ent.products.create!(:name => 'test product 1', :product_category => cat) | ||
| 122 | - prod2 = ent.products.create!(:name => 'test product 2', :product_category => @product_category) | ||
| 123 | - | ||
| 124 | - prods = finder.find(:products, nil, :product_category => cat) | ||
| 125 | - | ||
| 126 | - assert_includes prods, prod1 | ||
| 127 | - assert_not_includes prods, prod2 | ||
| 128 | - end | ||
| 129 | - | ||
| 130 | - should 'find products wihin product category with query' do | ||
| 131 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 132 | - cat = fast_create(ProductCategory, :name => 'test category', :environment_id => Environment.default.id) | ||
| 133 | - ent = fast_create(Enterprise, :name => 'test enterprise', :identifier => 'test_ent') | ||
| 134 | - prod1 = ent.products.create!(:name => 'test product a_word 1', :product_category => cat) | ||
| 135 | - prod2 = ent.products.create!(:name => 'test product b_word 1', :product_category => cat) | ||
| 136 | - prod3 = ent.products.create!(:name => 'test product a_word 2', :product_category => @product_category) | ||
| 137 | - prod4 = ent.products.create!(:name => 'test product b_word 2', :product_category => @product_category) | ||
| 138 | - | ||
| 139 | - prods = finder.find(:products, 'a_word', :product_category => cat) | ||
| 140 | - | ||
| 141 | - assert_includes prods, prod1 | ||
| 142 | - assert_not_includes prods, prod2 | ||
| 143 | - assert_not_includes prods, prod3 | ||
| 144 | - assert_not_includes prods, prod4 | ||
| 145 | - end | ||
| 146 | - | ||
| 147 | - should 'find enterprises in alphabetical order of name' do | ||
| 148 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 149 | - | ||
| 150 | - ent1 = fast_create(Enterprise, :name => 'test enterprise B', :identifier => 'test_ent_b') | ||
| 151 | - ent2 = fast_create(Enterprise, :name => 'test enterprise A', :identifier => 'test_ent_a') | ||
| 152 | - ent3 = fast_create(Enterprise, :name => 'test enterprise C', :identifier => 'test_ent_c') | ||
| 153 | - | ||
| 154 | - ents = finder.find(:enterprises, nil) | ||
| 155 | - | ||
| 156 | - assert ents.index(ent2) < ents.index(ent1), "expected #{ents.index(ent2)} be smaller than #{ents.index(ent1)}" | ||
| 157 | - assert ents.index(ent1) < ents.index(ent3), "expected #{ents.index(ent1)} be smaller than #{ents.index(ent3)}" | ||
| 158 | - end | ||
| 159 | - | ||
| 160 | - should 'find enterprises by its products categories' do | ||
| 161 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 162 | - | ||
| 163 | - pc1 = fast_create(ProductCategory, :name => 'test_cat1', :environment_id => Environment.default.id) | ||
| 164 | - pc2 = fast_create(ProductCategory, :name => 'test_cat2', :environment_id => Environment.default.id) | ||
| 165 | - | ||
| 166 | - ent1 = fast_create(Enterprise, :name => 'test enterprise 1', :identifier => 'test_ent1') | ||
| 167 | - ent1.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 168 | - ent2 = fast_create(Enterprise, :name => 'test enterprise 2', :identifier => 'test_ent2') | ||
| 169 | - ent2.products.create!(:name => 'test product 2', :product_category => pc2) | ||
| 170 | - | ||
| 171 | - ents = finder.find(:enterprises, nil, :product_category => pc1) | ||
| 172 | - | ||
| 173 | - assert_includes ents, ent1 | ||
| 174 | - assert_not_includes ents, ent2 | ||
| 175 | - end | ||
| 176 | - | ||
| 177 | - should 'find enterprises by its products categories with query' do | ||
| 178 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 179 | - | ||
| 180 | - pc1 = fast_create(ProductCategory, :name => 'test_cat1', :environment_id => Environment.default.id) | ||
| 181 | - pc2 = fast_create(ProductCategory, :name => 'test_cat2', :environment_id => Environment.default.id) | ||
| 182 | - | ||
| 183 | - ent1 = fast_create(Enterprise, :name => 'test enterprise 1', :identifier => 'test_ent1') | ||
| 184 | - ent1.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 185 | - ent2 = fast_create(Enterprise, :name => 'test enterprise 2', :identifier => 'test_ent2') | ||
| 186 | - ent2.products.create!(:name => 'test product 2', :product_category => pc2) | ||
| 187 | - | ||
| 188 | - ents = finder.find(:enterprises, 'test', :product_category => pc1) | ||
| 189 | - | ||
| 190 | - assert_includes ents, ent1 | ||
| 191 | - assert_not_includes ents, ent2 | ||
| 192 | - end | ||
| 193 | - | ||
| 194 | - should 'find enterprises by a product category with name with spaces' do | ||
| 195 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 196 | - | ||
| 197 | - pc1 = fast_create(ProductCategory, :name => 'test cat1', :environment_id => Environment.default.id) | ||
| 198 | - pc2 = fast_create(ProductCategory, :name => 'test cat2', :environment_id => Environment.default.id) | ||
| 199 | - | ||
| 200 | - ent1 = fast_create(Enterprise, :name => 'test enterprise 1', :identifier => 'test_ent1') | ||
| 201 | - ent1.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 202 | - ent2 = fast_create(Enterprise, :name => 'test enterprise 2', :identifier => 'test_ent2') | ||
| 203 | - ent2.products.create!(:name => 'test product 2', :product_category => pc2) | ||
| 204 | - | ||
| 205 | - ents = finder.find(:enterprises, 'test', :product_category => pc1) | ||
| 206 | - | ||
| 207 | - assert_includes ents, ent1 | ||
| 208 | - assert_not_includes ents, ent2 | ||
| 209 | - end | ||
| 210 | - | ||
| 211 | - should 'count product categories results by products' do | ||
| 212 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 213 | - | ||
| 214 | - pc1 = fast_create(ProductCategory, :name => 'test cat1', :environment_id => Environment.default.id) | ||
| 215 | - pc11= fast_create(ProductCategory, :name => 'test cat11',:environment_id => Environment.default.id, :parent_id => pc1.id) | ||
| 216 | - pc2 = fast_create(ProductCategory, :name => 'test cat2', :environment_id => Environment.default.id) | ||
| 217 | - pc3 = fast_create(ProductCategory, :name => 'test cat3', :environment_id => Environment.default.id) | ||
| 218 | - | ||
| 219 | - | ||
| 220 | - ent = fast_create(Enterprise, :name => 'test enterprise 1', :identifier => 'test_ent1') | ||
| 221 | - p1 = ent.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 222 | - p2 = ent.products.create!(:name => 'test product 2', :product_category => pc11) | ||
| 223 | - p3 = ent.products.create!(:name => 'test product 3', :product_category => pc2) | ||
| 224 | - p4 = ent.products.create!(:name => 'test product 4', :product_category => pc2) # not in the count | ||
| 225 | - p5 = ent.products.create!(:name => 'test product 5', :product_category => pc3) # not in the count | ||
| 226 | - | ||
| 227 | - counts = finder.product_categories_count(:products, [pc1.id, pc11.id, pc2.id], [p1.id, p2.id, p3.id] ) | ||
| 228 | - | ||
| 229 | - assert_equal 2, counts[pc1.id] | ||
| 230 | - assert_equal 1, counts[pc11.id] | ||
| 231 | - assert_equal 1, counts[pc2.id] | ||
| 232 | - assert_nil counts[pc3.id] | ||
| 233 | - end | ||
| 234 | - | ||
| 235 | - should 'count product categories results by all products' do | ||
| 236 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 237 | - | ||
| 238 | - pc1 = fast_create(ProductCategory, :name => 'test cat1', :environment_id => Environment.default.id) | ||
| 239 | - pc11 = fast_create(ProductCategory, :name => 'test cat11', :environment_id => Environment.default.id, :parent_id => pc1.id) | ||
| 240 | - pc2 = fast_create(ProductCategory, :name => 'test cat2', :environment_id => Environment.default.id) | ||
| 241 | - pc3 = fast_create(ProductCategory, :name => 'test cat3', :environment_id => Environment.default.id) | ||
| 242 | - | ||
| 243 | - | ||
| 244 | - ent = fast_create(Enterprise, :name => 'test enterprise 1', :identifier => 'test_ent1') | ||
| 245 | - p1 = ent.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 246 | - p2 = ent.products.create!(:name => 'test product 2', :product_category => pc11) | ||
| 247 | - p3 = ent.products.create!(:name => 'test product 3', :product_category => pc2) | ||
| 248 | - p4 = ent.products.create!(:name => 'test product 4', :product_category => pc3) # not in the count | ||
| 249 | - | ||
| 250 | - counts = finder.product_categories_count(:products, [pc1.id, pc11.id, pc2.id] ) | ||
| 251 | - | ||
| 252 | - assert_equal 2, counts[pc1.id] | ||
| 253 | - assert_equal 1, counts[pc11.id] | ||
| 254 | - assert_equal 1, counts[pc2.id] | ||
| 255 | - assert_nil counts[pc3.id] | ||
| 256 | - end | ||
| 257 | - | ||
| 258 | - should 'count product categories results by enterprises' do | ||
| 259 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 260 | - | ||
| 261 | - pc1 = fast_create(ProductCategory, :name => 'test cat1', :environment_id => Environment.default.id) | ||
| 262 | - pc11 = fast_create(ProductCategory, :name => 'test cat11', :environment_id => Environment.default.id, :parent_id => pc1.id) | ||
| 263 | - pc2 = fast_create(ProductCategory, :name => 'test cat2', :environment_id => Environment.default.id) | ||
| 264 | - pc3 = fast_create(ProductCategory, :name => 'test cat3', :environment_id => Environment.default.id) | ||
| 265 | - | ||
| 266 | - ent1 = fast_create(Enterprise, :name => 'test enterprise 1', :identifier => 'test_ent1') | ||
| 267 | - ent1.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 268 | - ent1.products.create!(:name => 'test product 2', :product_category => pc1) | ||
| 269 | - ent2 = fast_create(Enterprise, :name => 'test enterprise 2', :identifier => 'test_ent2') | ||
| 270 | - ent2.products.create!(:name => 'test product 2', :product_category => pc11) | ||
| 271 | - ent3 = fast_create(Enterprise, :name => 'test enterprise 3', :identifier => 'test_ent3') | ||
| 272 | - ent3.products.create!(:name => 'test product 3', :product_category => pc2) | ||
| 273 | - ent4 = fast_create(Enterprise, :name => 'test enterprise 4', :identifier => 'test_ent4') | ||
| 274 | - ent4.products.create!(:name => 'test product 4', :product_category => pc2) | ||
| 275 | - ent5 = fast_create(Enterprise, :name => 'test enterprise 5', :identifier => 'test_ent5') # not in the count | ||
| 276 | - ent5.products.create!(:name => 'test product 5', :product_category => pc2) | ||
| 277 | - ent5.products.create!(:name => 'test product 6', :product_category => pc3) | ||
| 278 | - | ||
| 279 | - counts = finder.product_categories_count(:enterprises, [pc1.id, pc11.id, pc2.id], [ent1.id, ent2.id, ent3.id, ent4.id] ) | ||
| 280 | - | ||
| 281 | - assert_equal 2, counts[pc1.id] | ||
| 282 | - assert_equal 1, counts[pc11.id] | ||
| 283 | - assert_equal 2, counts[pc2.id] | ||
| 284 | - assert_nil counts[pc3.id] | ||
| 285 | - end | ||
| 286 | - | ||
| 287 | - should 'count product categories results by all enterprises' do | ||
| 288 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 289 | - | ||
| 290 | - pc1 = fast_create(ProductCategory, :name => 'test cat1', :environment_id => Environment.default.id) | ||
| 291 | - pc11 = fast_create(ProductCategory, :name => 'test cat11', :environment_id => Environment.default.id, :parent_id => pc1.id) | ||
| 292 | - pc2 = fast_create(ProductCategory, :name => 'test cat2', :environment_id => Environment.default.id) | ||
| 293 | - pc3 = fast_create(ProductCategory, :name => 'test cat3', :environment_id => Environment.default.id) | ||
| 294 | - | ||
| 295 | - ent1 = fast_create(Enterprise, :name => 'test enterprise 1', :identifier => 'test_ent1') | ||
| 296 | - ent1.products.create!(:name => 'test product 1', :product_category => pc1) | ||
| 297 | - ent1.products.create!(:name => 'test product 2', :product_category => pc1) | ||
| 298 | - ent2 = fast_create(Enterprise, :name => 'test enterprise 2', :identifier => 'test_ent2') | ||
| 299 | - ent2.products.create!(:name => 'test product 2', :product_category => pc11) | ||
| 300 | - ent3 = fast_create(Enterprise, :name => 'test enterprise 3', :identifier => 'test_ent3') | ||
| 301 | - ent3.products.create!(:name => 'test product 3', :product_category => pc2) | ||
| 302 | - ent4 = fast_create(Enterprise, :name => 'test enterprise 4', :identifier => 'test_ent4') | ||
| 303 | - ent4.products.create!(:name => 'test product 4', :product_category => pc2) | ||
| 304 | - ent4.products.create!(:name => 'test product 5', :product_category => pc3) | ||
| 305 | - | ||
| 306 | - counts = finder.product_categories_count(:enterprises, [pc1.id, pc11.id, pc2.id] ) | ||
| 307 | - | ||
| 308 | - assert_equal 2, counts[pc1.id] | ||
| 309 | - assert_equal 1, counts[pc11.id] | ||
| 310 | - assert_equal 2, counts[pc2.id] | ||
| 311 | - assert_nil counts[pc3.id] | ||
| 312 | - end | ||
| 313 | - | ||
| 314 | - should 'should retrieve more than 10 entries' do | ||
| 315 | - Enterprise.destroy_all | ||
| 316 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 317 | - | ||
| 318 | - ('1'..'20').each do |n| | ||
| 319 | - Enterprise.create!(:name => 'test ' + n, :identifier => 'test_' + n) | ||
| 320 | - end | ||
| 321 | - | ||
| 322 | - assert_equal 20, finder.find(:enterprises, 'test').total_entries | ||
| 323 | - end | ||
| 324 | - | ||
| 325 | - should 'find events in a date range' do | ||
| 326 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 327 | - person = create_user('testuser').person | ||
| 328 | - | ||
| 329 | - date_range = Date.new(2009, 11, 28)..Date.new(2009, 12, 3) | ||
| 330 | - | ||
| 331 | - event_in_range = fast_create(Event, :name => 'Event in range', :profile_id => person.id, :start_date => Date.new(2009, 11, 27), :end_date => date_range.last) | ||
| 332 | - event_out_of_range = fast_create(Event, :name => 'Event out of range', :profile_id => person.id, :start_date => Date.new(2009, 12, 4)) | ||
| 333 | - | ||
| 334 | - events_found = finder.find(:events, '', :date_range => date_range) | ||
| 335 | - | ||
| 336 | - assert_includes events_found, event_in_range | ||
| 337 | - assert_not_includes events_found, event_out_of_range | ||
| 338 | - end | ||
| 339 | - | ||
| 340 | - should 'not paginate events' do | ||
| 341 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 342 | - person = create_user('testuser').person | ||
| 343 | - | ||
| 344 | - fast_create(:event, :profile_id => person.id) | ||
| 345 | - fast_create(:event, :profile_id => person.id) | ||
| 346 | - | ||
| 347 | - assert_equal 2, finder.find(:events, '', :per_page => 1, :page => 1).size | ||
| 348 | - end | ||
| 349 | - | ||
| 350 | - should 'not paginate events within date range' do | ||
| 351 | - finder = EnvironmentFinder.new(Environment.default) | ||
| 352 | - person = create_user('testuser').person | ||
| 353 | - | ||
| 354 | - fast_create(:event, :profile_id => person.id) | ||
| 355 | - fast_create(:event, :profile_id => person.id) | ||
| 356 | - | ||
| 357 | - date_range = Date.today..Date.today | ||
| 358 | - assert_equal 2, finder.find(:events, '', :date_range => date_range, :per_page => 1, :page => 1).size | ||
| 359 | - end | ||
| 360 | - | ||
| 361 | -end |
test/unit/environment_test.rb
| @@ -5,6 +5,7 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -5,6 +5,7 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
| 5 | 5 | ||
| 6 | def setup | 6 | def setup |
| 7 | ActiveSupport::TestCase::setup | 7 | ActiveSupport::TestCase::setup |
| 8 | + Article.rebuild_index | ||
| 8 | end | 9 | end |
| 9 | 10 | ||
| 10 | def test_exists_default_and_it_is_unique | 11 | def test_exists_default_and_it_is_unique |
test/unit/featured_products_block_test.rb
| @@ -10,6 +10,7 @@ class FeaturedProductsBlockTest < ActiveSupport::TestCase | @@ -10,6 +10,7 @@ class FeaturedProductsBlockTest < ActiveSupport::TestCase | ||
| 10 | attr_reader :profile | 10 | attr_reader :profile |
| 11 | 11 | ||
| 12 | should 'refer to products' do | 12 | should 'refer to products' do |
| 13 | + profile = fast_create(Enterprise) | ||
| 13 | products = [] | 14 | products = [] |
| 14 | category = fast_create(ProductCategory) | 15 | category = fast_create(ProductCategory) |
| 15 | 3.times {|n| products.push(Product.create!(:name => "product #{n}", :enterprise_id => profile.id, :product_category_id => category.id)) } | 16 | 3.times {|n| products.push(Product.create!(:name => "product #{n}", :enterprise_id => profile.id, :product_category_id => category.id)) } |
test/unit/manage_products_helper_test.rb
| @@ -191,6 +191,7 @@ class ManageProductsHelperTest < ActiveSupport::TestCase | @@ -191,6 +191,7 @@ class ManageProductsHelperTest < ActiveSupport::TestCase | ||
| 191 | qualifier = fast_create(Qualifier) | 191 | qualifier = fast_create(Qualifier) |
| 192 | certifier = fast_create(Certifier) | 192 | certifier = fast_create(Certifier) |
| 193 | ProductQualifier.create!(:product => product, :qualifier => qualifier, :certifier => certifier) | 193 | ProductQualifier.create!(:product => product, :qualifier => qualifier, :certifier => certifier) |
| 194 | +# The relationship between product, certifiers and qualifiers is extremely complicated | ||
| 194 | certifier.destroy | 195 | certifier.destroy |
| 195 | assert_nothing_raised do | 196 | assert_nothing_raised do |
| 196 | result = display_qualifiers(product) | 197 | result = display_qualifiers(product) |
test/unit/people_block_test.rb
| @@ -40,7 +40,7 @@ class PeopleBlockTest < ActiveSupport::TestCase | @@ -40,7 +40,7 @@ class PeopleBlockTest < ActiveSupport::TestCase | ||
| 40 | block.stubs(:owner).returns(Environment.default) | 40 | block.stubs(:owner).returns(Environment.default) |
| 41 | 41 | ||
| 42 | expects(:_).with('View all').returns('View all people') | 42 | expects(:_).with('View all').returns('View all people') |
| 43 | - expects(:link_to).with('View all people', :controller => 'browse', :action => 'people') | 43 | + expects(:link_to).with('View all people', :controller => 'search', :action => 'people') |
| 44 | instance_eval(&block.footer) | 44 | instance_eval(&block.footer) |
| 45 | end | 45 | end |
| 46 | 46 |
test/unit/product_category_test.rb
| @@ -6,12 +6,13 @@ class ProductCategoryTest < ActiveSupport::TestCase | @@ -6,12 +6,13 @@ class ProductCategoryTest < ActiveSupport::TestCase | ||
| 6 | c0 = ProductCategory.create!(:name => 'base_cat', :environment => Environment.default) | 6 | c0 = ProductCategory.create!(:name => 'base_cat', :environment => Environment.default) |
| 7 | assert_equivalent [], c0.all_products | 7 | assert_equivalent [], c0.all_products |
| 8 | 8 | ||
| 9 | - p0 = Product.create(:name => 'product1', :product_category => c0) | 9 | + profile = fast_create(Enterprise) |
| 10 | + p0 = Product.create(:name => 'product1', :product_category => c0, :enterprise_id => profile.id) | ||
| 10 | c0.reload | 11 | c0.reload |
| 11 | assert_equivalent [p0], c0.all_products | 12 | assert_equivalent [p0], c0.all_products |
| 12 | 13 | ||
| 13 | c1 = ProductCategory.create!(:name => 'cat_1', :parent => c0, :environment => Environment.default) | 14 | c1 = ProductCategory.create!(:name => 'cat_1', :parent => c0, :environment => Environment.default) |
| 14 | - p1 = Product.create(:name => 'product2', :product_category => c1) | 15 | + p1 = Product.create(:name => 'product2', :product_category => c1, :enterprise_id => profile.id) |
| 15 | c0.reload; c1.reload | 16 | c0.reload; c1.reload |
| 16 | assert_equivalent [p0, p1], c0.all_products | 17 | assert_equivalent [p0, p1], c0.all_products |
| 17 | assert_equivalent [p1], c1.all_products | 18 | assert_equivalent [p1], c1.all_products |
test/unit/product_test.rb
| @@ -5,11 +5,12 @@ class ProductTest < ActiveSupport::TestCase | @@ -5,11 +5,12 @@ class ProductTest < ActiveSupport::TestCase | ||
| 5 | def setup | 5 | def setup |
| 6 | ActiveSupport::TestCase::setup | 6 | ActiveSupport::TestCase::setup |
| 7 | @product_category = fast_create(ProductCategory, :name => 'Products') | 7 | @product_category = fast_create(ProductCategory, :name => 'Products') |
| 8 | + @profile = fast_create(Enterprise) | ||
| 8 | end | 9 | end |
| 9 | 10 | ||
| 10 | should 'create product' do | 11 | should 'create product' do |
| 11 | assert_difference Product, :count do | 12 | assert_difference Product, :count do |
| 12 | - p = Product.new(:name => 'test product1', :product_category => @product_category) | 13 | + p = Product.new(:name => 'test product1', :product_category => @product_category, :enterprise_id => @profile.id) |
| 13 | assert p.save | 14 | assert p.save |
| 14 | end | 15 | end |
| 15 | end | 16 | end |
| @@ -68,7 +69,7 @@ class ProductTest < ActiveSupport::TestCase | @@ -68,7 +69,7 @@ class ProductTest < ActiveSupport::TestCase | ||
| 68 | assert_difference Product, :count do | 69 | assert_difference Product, :count do |
| 69 | p = Product.create!(:name => 'test product1', :product_category => @product_category, :image_builder => { | 70 | p = Product.create!(:name => 'test product1', :product_category => @product_category, :image_builder => { |
| 70 | :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png') | 71 | :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png') |
| 71 | - }) | 72 | + }, :enterprise_id => @profile.id) |
| 72 | assert_equal p.image(true).filename, 'rails.png' | 73 | assert_equal p.image(true).filename, 'rails.png' |
| 73 | end | 74 | end |
| 74 | end | 75 | end |
| @@ -89,7 +90,7 @@ class ProductTest < ActiveSupport::TestCase | @@ -89,7 +90,7 @@ class ProductTest < ActiveSupport::TestCase | ||
| 89 | end | 90 | end |
| 90 | 91 | ||
| 91 | should 'be indexed by category full name' do | 92 | should 'be indexed by category full name' do |
| 92 | - p = Product.new(:name => 'a test product', :product_category => @product_category) | 93 | + p = Product.create(:name => 'a test product', :product_category => @product_category, :enterprise_id => @profile.id) |
| 93 | p.stubs(:category_full_name).returns('interesting category') | 94 | p.stubs(:category_full_name).returns('interesting category') |
| 94 | p.save! | 95 | p.save! |
| 95 | 96 | ||
| @@ -147,7 +148,7 @@ class ProductTest < ActiveSupport::TestCase | @@ -147,7 +148,7 @@ class ProductTest < ActiveSupport::TestCase | ||
| 147 | 148 | ||
| 148 | assert ProductCategorization.find(:first, :conditions => {:product_id => p, :category_id => cat}) | 149 | assert ProductCategorization.find(:first, :conditions => {:product_id => p, :category_id => cat}) |
| 149 | end | 150 | end |
| 150 | - | 151 | + |
| 151 | should 'categorize parent cateogries with product categorization' do | 152 | should 'categorize parent cateogries with product categorization' do |
| 152 | parent_cat = fast_create(ProductCategory, :name => 'test cat', :environment_id => Environment.default.id) | 153 | parent_cat = fast_create(ProductCategory, :name => 'test cat', :environment_id => Environment.default.id) |
| 153 | child_cat = fast_create(ProductCategory, :name => 'test cat', :environment_id => Environment.default.id, :parent_id => parent_cat.id) | 154 | child_cat = fast_create(ProductCategory, :name => 'test cat', :environment_id => Environment.default.id, :parent_id => parent_cat.id) |
| @@ -362,7 +363,7 @@ class ProductTest < ActiveSupport::TestCase | @@ -362,7 +363,7 @@ class ProductTest < ActiveSupport::TestCase | ||
| 362 | 363 | ||
| 363 | should 'index by schema name when database is postgresql' do | 364 | should 'index by schema name when database is postgresql' do |
| 364 | uses_postgresql 'schema_one' | 365 | uses_postgresql 'schema_one' |
| 365 | - p1 = Product.create!(:name => 'some thing', :product_category => @product_category) | 366 | + p1 = Product.create!(:name => 'some thing', :product_category => @product_category, :enterprise_id => @profile.id) |
| 366 | assert_equal Product.find_by_contents('thing')[:results], [p1] | 367 | assert_equal Product.find_by_contents('thing')[:results], [p1] |
| 367 | uses_postgresql 'schema_two' | 368 | uses_postgresql 'schema_two' |
| 368 | p2 = Product.create!(:name => 'another thing', :product_category => @product_category) | 369 | p2 = Product.create!(:name => 'another thing', :product_category => @product_category) |
| @@ -376,9 +377,9 @@ class ProductTest < ActiveSupport::TestCase | @@ -376,9 +377,9 @@ class ProductTest < ActiveSupport::TestCase | ||
| 376 | 377 | ||
| 377 | should 'not index by schema name when database is not postgresql' do | 378 | should 'not index by schema name when database is not postgresql' do |
| 378 | uses_sqlite | 379 | uses_sqlite |
| 379 | - p1 = Product.create!(:name => 'some thing', :product_category => @product_category) | 380 | + p1 = Product.create!(:name => 'some thing', :product_category => @product_category, :enterprise_id => @profile.id) |
| 380 | assert_equal Product.find_by_contents('thing')[:results], [p1] | 381 | assert_equal Product.find_by_contents('thing')[:results], [p1] |
| 381 | - p2 = Product.create!(:name => 'another thing', :product_category => @product_category) | 382 | + p2 = Product.create!(:name => 'another thing', :product_category => @product_category, :enterprise_id => @profile.id) |
| 382 | assert_includes Product.find_by_contents('thing')[:results], p1 | 383 | assert_includes Product.find_by_contents('thing')[:results], p1 |
| 383 | assert_includes Product.find_by_contents('thing')[:results], p2 | 384 | assert_includes Product.find_by_contents('thing')[:results], p2 |
| 384 | end | 385 | end |
test/unit/profile_test.rb
| @@ -192,7 +192,8 @@ class ProfileTest < ActiveSupport::TestCase | @@ -192,7 +192,8 @@ class ProfileTest < ActiveSupport::TestCase | ||
| 192 | assert_not_equal list.object_id, other_list.object_id | 192 | assert_not_equal list.object_id, other_list.object_id |
| 193 | end | 193 | end |
| 194 | 194 | ||
| 195 | - should 'be able to find profiles by their names with ferret' do | 195 | +# This problem should be solved; talk to Bráulio if it fails |
| 196 | + should 'be able to find profiles by their names' do | ||
| 196 | small = create(Profile, :name => 'A small profile for testing') | 197 | small = create(Profile, :name => 'A small profile for testing') |
| 197 | big = create(Profile, :name => 'A big profile for testing') | 198 | big = create(Profile, :name => 'A big profile for testing') |
| 198 | 199 | ||
| @@ -1669,7 +1670,7 @@ class ProfileTest < ActiveSupport::TestCase | @@ -1669,7 +1670,7 @@ class ProfileTest < ActiveSupport::TestCase | ||
| 1669 | should 'index by schema name when database is postgresql' do | 1670 | should 'index by schema name when database is postgresql' do |
| 1670 | uses_postgresql 'schema_one' | 1671 | uses_postgresql 'schema_one' |
| 1671 | p1 = Profile.create!(:name => 'some thing', :identifier => 'some-thing') | 1672 | p1 = Profile.create!(:name => 'some thing', :identifier => 'some-thing') |
| 1672 | - assert_equal Profile.find_by_contents('thing')[:results], [p1] | 1673 | + assert_equal [p1], Profile.find_by_contents('thing')[:results] |
| 1673 | uses_postgresql 'schema_two' | 1674 | uses_postgresql 'schema_two' |
| 1674 | p2 = Profile.create!(:name => 'another thing', :identifier => 'another-thing') | 1675 | p2 = Profile.create!(:name => 'another thing', :identifier => 'another-thing') |
| 1675 | assert_not_includes Profile.find_by_contents('thing')[:results], p1 | 1676 | assert_not_includes Profile.find_by_contents('thing')[:results], p1 |
test/unit/search_helper_test.rb
| @@ -1,69 +0,0 @@ | @@ -1,69 +0,0 @@ | ||
| 1 | -require File.dirname(__FILE__) + '/../test_helper' | ||
| 2 | - | ||
| 3 | -class SearchHelperTest < ActiveSupport::TestCase | ||
| 4 | - | ||
| 5 | - include SearchHelper | ||
| 6 | - | ||
| 7 | - def _(any) | ||
| 8 | - any | ||
| 9 | - end | ||
| 10 | - | ||
| 11 | - def setup | ||
| 12 | - @profile = mock | ||
| 13 | - self.stubs(:profile_image).returns('profileimage.png') | ||
| 14 | - self.stubs(:url_for).returns('link to profile') | ||
| 15 | - profile.stubs(:name).returns('Name of Profile') | ||
| 16 | - profile.stubs(:url).returns('') | ||
| 17 | - profile.stubs(:products).returns([Product.new(:name => 'product test')]) | ||
| 18 | - profile.stubs(:identifier).returns('name-of-profile') | ||
| 19 | - profile.stubs(:region).returns(Region.new(:name => 'Brazil')) | ||
| 20 | - end | ||
| 21 | - attr_reader :profile | ||
| 22 | - | ||
| 23 | - should 'display profile info' do | ||
| 24 | - profile.stubs(:address).returns('Address of Profile') | ||
| 25 | - profile.stubs(:contact_email).returns('Email of Profile') | ||
| 26 | - profile.stubs(:contact_phone).returns('Phone of Profile') | ||
| 27 | - | ||
| 28 | - result = self.display_profile_info(profile) | ||
| 29 | - assert_match /profileimage.png/, result | ||
| 30 | - assert_match /link to profile/, result | ||
| 31 | - assert_match /Email of Profile/, result | ||
| 32 | - assert_match /Phone of Profile/, result | ||
| 33 | - assert_match /Address of Profile/, result | ||
| 34 | - end | ||
| 35 | - | ||
| 36 | - should 'not display field if nil in profile info' do | ||
| 37 | - profile.stubs(:address).returns('nil') | ||
| 38 | - profile.stubs(:contact_email).returns('nil') | ||
| 39 | - profile.stubs(:contact_phone).returns('nil') | ||
| 40 | - | ||
| 41 | - result = self.display_profile_info(profile) | ||
| 42 | - assert_match /profileimage.png/, result | ||
| 43 | - assert_match /link to profile/, result | ||
| 44 | - assert_no_match /Email of Profile/, result | ||
| 45 | - assert_no_match /Phone of Profile/, result | ||
| 46 | - assert_no_match /Address of Profile/, result | ||
| 47 | - end | ||
| 48 | - | ||
| 49 | - should 'link to products and services of an profile' do | ||
| 50 | - enterprise = fast_create(Enterprise) | ||
| 51 | - product1 = fast_create(Product, :enterprise_id => enterprise.id) | ||
| 52 | - product2 = fast_create(Product, :enterprise_id => enterprise.id) | ||
| 53 | - result = display_profile_info(enterprise) | ||
| 54 | - assert_tag_in_string result, :tag => 'a', :attributes => {:href => /:id=>#{product1.id}/}, :content => product1.name | ||
| 55 | - assert_tag_in_string result, :tag => 'a', :attributes => {:href => /:id=>#{product2.id}/}, :content => product2.name | ||
| 56 | - end | ||
| 57 | - | ||
| 58 | - should 'link to manage_products controller on display_profile_info' do | ||
| 59 | - enterprise = fast_create(Enterprise) | ||
| 60 | - product = fast_create(Product, :enterprise_id => enterprise.id) | ||
| 61 | - result = display_profile_info(enterprise) | ||
| 62 | - assert_tag_in_string result, :tag => 'a', :attributes => {:href => /:controller=>\"manage_products\"/}, :content => product.name | ||
| 63 | - assert_no_tag_in_string result, :tag => 'a', :attributes => {:href => /:id=>\"catalog\"/}, :content => product.name | ||
| 64 | - end | ||
| 65 | - | ||
| 66 | - protected | ||
| 67 | - include NoosferoTestHelper | ||
| 68 | - | ||
| 69 | -end |