Commit 46f1339016b6ab52786ba332a78990f20da02e2b
1 parent
0945abec
Exists in
master
and in
22 other branches
rails3: fix article tests
PS: still breaking some tests due to action_tracker problem and html generation on models problem.
Showing
1 changed file
with
128 additions
and
128 deletions
Show diff stats
test/unit/article_test.rb
| ... | ... | @@ -31,7 +31,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 31 | 31 | end |
| 32 | 32 | |
| 33 | 33 | should 'limit length of names' do |
| 34 | - a = Article.new(:name => 'a'*151) | |
| 34 | + a = build(Article, :name => 'a'*151) | |
| 35 | 35 | a.valid? |
| 36 | 36 | assert a.errors[:name.to_s].present? |
| 37 | 37 | |
| ... | ... | @@ -41,7 +41,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 41 | 41 | end |
| 42 | 42 | |
| 43 | 43 | should 'require value for slug and path if name is filled' do |
| 44 | - a = Article.new(:name => 'test article') | |
| 44 | + a = build(Article, :name => 'test article') | |
| 45 | 45 | a.slug = nil |
| 46 | 46 | a.path = nil |
| 47 | 47 | a.valid? |
| ... | ... | @@ -57,7 +57,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 57 | 57 | end |
| 58 | 58 | |
| 59 | 59 | should 'act as versioned' do |
| 60 | - a = Article.create!(:name => 'my article', :body => 'my text', :profile_id => profile.id) | |
| 60 | + a = create(Article, :name => 'my article', :body => 'my text', :profile_id => profile.id) | |
| 61 | 61 | assert_equal 1, a.versions(true).size |
| 62 | 62 | a.name = 'some other name' |
| 63 | 63 | a.save! |
| ... | ... | @@ -65,7 +65,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 65 | 65 | end |
| 66 | 66 | |
| 67 | 67 | should 'act as taggable' do |
| 68 | - a = Article.create!(:name => 'my article', :profile_id => profile.id) | |
| 68 | + a = create(Article, :name => 'my article', :profile_id => profile.id) | |
| 69 | 69 | a.tag_list = ['one', 'two'] |
| 70 | 70 | tags = a.tag_list.names |
| 71 | 71 | assert tags.include?('one') |
| ... | ... | @@ -73,16 +73,17 @@ class ArticleTest < ActiveSupport::TestCase |
| 73 | 73 | end |
| 74 | 74 | |
| 75 | 75 | should 'act as filesystem' do |
| 76 | - a = Article.create!(:name => 'my article', :profile_id => profile.id) | |
| 77 | - b = a.children.build(:name => 'child article', :profile_id => profile.id) | |
| 76 | + a = create(Article, :profile_id => profile.id) | |
| 77 | + b = create(Article, :profile_id => profile.id, :parent_id => a.id) | |
| 78 | 78 | b.save! |
| 79 | - assert_equal 'my-article/child-article', b.path | |
| 79 | + assert_equal "#{a.slug}/#{b.slug}", b.path | |
| 80 | 80 | |
| 81 | 81 | a = Article.find(a.id); |
| 82 | 82 | a.name = 'another name' |
| 83 | 83 | a.save! |
| 84 | + b.reload | |
| 84 | 85 | |
| 85 | - assert_equal 'another-name/child-article', Article.find(b.id).path | |
| 86 | + assert_equal "another-name/#{b.slug}", b.path | |
| 86 | 87 | end |
| 87 | 88 | |
| 88 | 89 | should 'provide HTML version' do |
| ... | ... | @@ -226,13 +227,14 @@ class ArticleTest < ActiveSupport::TestCase |
| 226 | 227 | |
| 227 | 228 | now = Time.now |
| 228 | 229 | |
| 229 | - first = p.articles.build(:name => 'first', :published => true, :created_at => now, :published_at => now); first.save! | |
| 230 | - second = p.articles.build(:name => 'second', :published => true, :updated_at => now, :published_at => now + 1.second); second.save! | |
| 230 | + first = create(Article, :name => 'first', :published => true, :created_at => now, :published_at => now, :profile_id => p.id) | |
| 231 | + second = create(Article, :name => 'second', :published => true, :updated_at => now, :published_at => now + 1.second, :profile_id => p.id) | |
| 231 | 232 | |
| 232 | 233 | assert_equal [ second, first ], Article.recent(2) |
| 233 | 234 | |
| 234 | 235 | Article.record_timestamps = false |
| 235 | - first.update_attributes!(:published_at => second.published_at + 1.second) | |
| 236 | + first.published_at = second.published_at + 1.second | |
| 237 | + first.save! | |
| 236 | 238 | Article.record_timestamps = true |
| 237 | 239 | |
| 238 | 240 | assert_equal [ first, second ], Article.recent(2) |
| ... | ... | @@ -242,7 +244,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 242 | 244 | p = create_user('usr1').person |
| 243 | 245 | Article.destroy_all |
| 244 | 246 | |
| 245 | - first = UploadedFile.new(:profile => p, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')); first.save! | |
| 247 | + first = build(UploadedFile, :profile => p, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')); first.save! | |
| 246 | 248 | second = fast_create(TextArticle, :profile_id => p.id, :name => 'second') |
| 247 | 249 | |
| 248 | 250 | assert_equal [ second ], Article.recent(nil) |
| ... | ... | @@ -262,7 +264,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 262 | 264 | p = create_user('usr1').person |
| 263 | 265 | Article.destroy_all |
| 264 | 266 | first = fast_create(Blog, :profile_id => p.id, :name => 'my blog', :advertise => true) |
| 265 | - second = p.articles.build(:name => 'second'); second.save! | |
| 267 | + second = create(Article, :name => 'second', :profile_id => p.id) | |
| 266 | 268 | |
| 267 | 269 | assert_equal [ second ], Article.recent(nil) |
| 268 | 270 | end |
| ... | ... | @@ -270,8 +272,8 @@ class ArticleTest < ActiveSupport::TestCase |
| 270 | 272 | should 'accept extra conditions to find recent' do |
| 271 | 273 | p = create_user('usr1').person |
| 272 | 274 | Article.destroy_all |
| 273 | - a1 = p.articles.create!(:name => 'first') | |
| 274 | - a2 = p.articles.create!(:name => 'second') | |
| 275 | + a1 = create(Article, :name => 'first', :profile_id => p.id) | |
| 276 | + a2 = create(Article, :name => 'second', :profile_id => p.id) | |
| 275 | 277 | |
| 276 | 278 | assert_equal [ a1 ], Article.recent(nil, :name => 'first') |
| 277 | 279 | end |
| ... | ... | @@ -293,27 +295,24 @@ class ArticleTest < ActiveSupport::TestCase |
| 293 | 295 | end |
| 294 | 296 | |
| 295 | 297 | should 'provide a url to itself' do |
| 296 | - article = profile.articles.build(:name => 'myarticle') | |
| 297 | - article.save! | |
| 298 | - | |
| 298 | + article = create(Article, :name => 'myarticle', :profile_id => profile.id) | |
| 299 | 299 | assert_equal(profile.url.merge(:page => ['myarticle']), article.url) |
| 300 | 300 | end |
| 301 | 301 | |
| 302 | 302 | should 'provide a url to itself having a parent topic' do |
| 303 | - parent = profile.articles.build(:name => 'parent'); parent.save! | |
| 304 | - child = profile.articles.build(:name => 'child', :parent => parent); child.save! | |
| 303 | + parent = create(Article, :name => 'parent', :profile_id => profile.id) | |
| 304 | + child = create(Article, :name => 'child', :parent => parent, :profile_id => profile.id) | |
| 305 | 305 | |
| 306 | 306 | assert_equal(profile.url.merge(:page => [ 'parent', 'child']), child.url) |
| 307 | 307 | end |
| 308 | 308 | |
| 309 | 309 | should 'associate with categories' do |
| 310 | 310 | env = Environment.default |
| 311 | - parent_cat = env.categories.build(:name => "parent category") | |
| 312 | - parent_cat.save! | |
| 313 | - c1 = env.categories.build(:name => "test category 1", :parent_id => parent_cat.id); c1.save! | |
| 314 | - c2 = env.categories.build(:name => "test category 2"); c2.save! | |
| 311 | + parent_cat = create(Category, :name => "parent category", :environment_id => env.id) | |
| 312 | + c1 = create(Category, :name => "test category 1", :parent_id => parent_cat.id, :environment_id => env.id) | |
| 313 | + c2 = create(Category, :name => "test category 2", :environment_id => env.id) | |
| 315 | 314 | |
| 316 | - article = profile.articles.build(:name => 'withcategories') | |
| 315 | + article = create(Article, :name => 'withcategories', :profile_id => profile.id) | |
| 317 | 316 | article.save! |
| 318 | 317 | |
| 319 | 318 | article.add_category c1 |
| ... | ... | @@ -325,8 +324,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 325 | 324 | |
| 326 | 325 | should 'remove comments when removing article' do |
| 327 | 326 | assert_no_difference Comment, :count do |
| 328 | - a = profile.articles.build(:name => 'test article') | |
| 329 | - a.save! | |
| 327 | + a = create(Article, :name => 'test article', :profile_id => profile.id) | |
| 330 | 328 | |
| 331 | 329 | assert_difference Comment, :count, 1 do |
| 332 | 330 | comment = a.comments.build |
| ... | ... | @@ -346,10 +344,10 @@ class ArticleTest < ActiveSupport::TestCase |
| 346 | 344 | create(TextileArticle, :name => "art #{n}", :profile_id => profile.id) |
| 347 | 345 | end |
| 348 | 346 | first_article = profile.articles.first |
| 349 | - 2.times { Comment.create(:title => 'test', :body => 'asdsad', :author => profile, :source => first_article).save! } | |
| 347 | + 2.times { create(Comment, :title => 'test', :body => 'asdsad', :author => profile, :source => first_article).save! } | |
| 350 | 348 | |
| 351 | 349 | last_article = profile.articles.last |
| 352 | - 4.times { Comment.create(:title => 'test', :body => 'asdsad', :author => profile, :source => last_article).save! } | |
| 350 | + 4.times { create(Comment, :title => 'test', :body => 'asdsad', :author => profile, :source => last_article).save! } | |
| 353 | 351 | # should respect the order (more commented comes first) |
| 354 | 352 | assert_equal [last_article, first_article], profile.articles.most_commented(2) |
| 355 | 353 | end |
| ... | ... | @@ -370,20 +368,21 @@ class ArticleTest < ActiveSupport::TestCase |
| 370 | 368 | should 'display to owner' do |
| 371 | 369 | # a person with private contents ... |
| 372 | 370 | person = create_user('testuser').person |
| 373 | - person.update_attributes!(:public_content => false) | |
| 371 | + person.public_content = false | |
| 372 | + person.save! | |
| 374 | 373 | |
| 375 | 374 | # ... can see his own articles |
| 376 | - a = person.articles.create!(:name => 'test article') | |
| 375 | + a = create(Article, :name => 'test article', :profile_id => person.id) | |
| 377 | 376 | assert_equal true, a.display_to?(person) |
| 378 | 377 | end |
| 379 | 378 | |
| 380 | 379 | should 'cache children count' do |
| 381 | 380 | owner = create_user('testuser').person |
| 382 | - art = owner.articles.build(:name => 'ytest'); art.save! | |
| 381 | + art = create(Article, :name => 'ytest', :profile_id => owner.id) | |
| 383 | 382 | |
| 384 | 383 | # two children articles |
| 385 | - art.children.create!(:profile => owner, :name => 'c1') | |
| 386 | - art.children.create!(:profile => owner, :name => 'c2') | |
| 384 | + create(Article, :profile => owner, :name => 'c1', :parent_id => art.id) | |
| 385 | + create(Article, :profile => owner, :name => 'c2', :parent_id => art.id) | |
| 387 | 386 | |
| 388 | 387 | art.reload |
| 389 | 388 | |
| ... | ... | @@ -393,12 +392,12 @@ class ArticleTest < ActiveSupport::TestCase |
| 393 | 392 | end |
| 394 | 393 | |
| 395 | 394 | should 'categorize in the entire category hierarchy' do |
| 396 | - c1 = Category.create!(:environment => Environment.default, :name => 'c1') | |
| 397 | - c2 = c1.children.create!(:environment => Environment.default, :name => 'c2') | |
| 398 | - c3 = c2.children.create!(:environment => Environment.default, :name => 'c3') | |
| 395 | + c1 = create(Category, :environment => Environment.default, :name => 'c1') | |
| 396 | + c2 = create(Category, :environment => Environment.default, :name => 'c2', :parent_id => c1.id) | |
| 397 | + c3 = create(Category, :environment => Environment.default, :name => 'c3', :parent_id => c2.id) | |
| 399 | 398 | |
| 400 | 399 | owner = create_user('testuser').person |
| 401 | - art = owner.articles.create!(:name => 'ytest') | |
| 400 | + art = create(Article, :name => 'ytest', :profile_id => owner.id) | |
| 402 | 401 | |
| 403 | 402 | art.add_category(c3) |
| 404 | 403 | |
| ... | ... | @@ -414,12 +413,12 @@ class ArticleTest < ActiveSupport::TestCase |
| 414 | 413 | end |
| 415 | 414 | |
| 416 | 415 | should 'redefine the entire category set at once' do |
| 417 | - c1 = Category.create!(:environment => Environment.default, :name => 'c1') | |
| 418 | - c2 = c1.children.create!(:environment => Environment.default, :name => 'c2') | |
| 419 | - c3 = c2.children.create!(:environment => Environment.default, :name => 'c3') | |
| 420 | - c4 = c1.children.create!(:environment => Environment.default, :name => 'c4') | |
| 416 | + c1 = create(Category, :environment => Environment.default, :name => 'c1') | |
| 417 | + c2 = create(Category, :environment => Environment.default, :name => 'c2', :parent_id => c1) | |
| 418 | + c3 = create(Category, :environment => Environment.default, :name => 'c3', :parent_id => c2) | |
| 419 | + c4 = create(Category, :environment => Environment.default, :name => 'c4', :parent_id => c1) | |
| 421 | 420 | owner = create_user('testuser').person |
| 422 | - art = owner.articles.create!(:name => 'ytest') | |
| 421 | + art = create(Article, :name => 'ytest', :profile_id => owner.id) | |
| 423 | 422 | |
| 424 | 423 | art.add_category(c4) |
| 425 | 424 | |
| ... | ... | @@ -436,7 +435,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 436 | 435 | c2 = fast_create(Category, :environment_id => Environment.default.id, :name => 'c2') |
| 437 | 436 | |
| 438 | 437 | p = create_user('testinguser').person |
| 439 | - a = p.articles.create!(:name => 'test', :category_ids => [c1.id, c2.id]) | |
| 438 | + a = create(Article, :name => 'test', :category_ids => [c1.id, c2.id], :profile_id => p) | |
| 440 | 439 | |
| 441 | 440 | assert_equivalent [c1, c2], a.categories(true) |
| 442 | 441 | assert_includes a.categories_including_virtual(true), parent1 |
| ... | ... | @@ -444,10 +443,10 @@ class ArticleTest < ActiveSupport::TestCase |
| 444 | 443 | |
| 445 | 444 | should 'not add a category twice to article' do |
| 446 | 445 | c1 = fast_create(Category, :environment_id => Environment.default.id, :name => 'c1') |
| 447 | - c2 = c1.children.create!(:environment => Environment.default, :name => 'c2', :parent_id => c1.id) | |
| 448 | - c3 = c1.children.create!(:environment => Environment.default, :name => 'c3', :parent_id => c1.id) | |
| 446 | + c2 = create(Category, :environment => Environment.default, :name => 'c2', :parent_id => c1.id) | |
| 447 | + c3 = create(Category, :environment => Environment.default, :name => 'c3', :parent_id => c1.id) | |
| 449 | 448 | owner = create_user('testuser').person |
| 450 | - art = owner.articles.create!(:name => 'ytest') | |
| 449 | + art = create(Article, :name => 'ytest', :profile_id => owner) | |
| 451 | 450 | art.category_ids = [c2,c3,c3].map(&:id) |
| 452 | 451 | assert_equal [c2, c3], art.categories(true) |
| 453 | 452 | assert_equal [c2, c1, c3], art.categories_including_virtual(true) |
| ... | ... | @@ -538,7 +537,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 538 | 537 | |
| 539 | 538 | should 'not allow friends of private person see the article' do |
| 540 | 539 | person = create_user('test_user').person |
| 541 | - article = Article.create!(:name => 'test article', :profile => person, :published => false) | |
| 540 | + article = create(Article, :name => 'test article', :profile => person, :published => false) | |
| 542 | 541 | friend = create_user('test_friend').person |
| 543 | 542 | person.add_friend(friend) |
| 544 | 543 | person.save! |
| ... | ... | @@ -559,7 +558,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 559 | 558 | |
| 560 | 559 | should 'make a copy of the article as child of it' do |
| 561 | 560 | person = create_user('test_user').person |
| 562 | - a = person.articles.create!(:name => 'test article', :body => 'some text') | |
| 561 | + a = create(Article, :name => 'test article', :body => 'some text', :profile_id => person.id) | |
| 563 | 562 | b = a.copy(:parent => a, :profile => a.profile) |
| 564 | 563 | |
| 565 | 564 | assert_includes a.children, b |
| ... | ... | @@ -569,7 +568,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 569 | 568 | should 'make a copy of the article to other profile' do |
| 570 | 569 | p1 = create_user('test_user1').person |
| 571 | 570 | p2 = create_user('test_user2').person |
| 572 | - a = p1.articles.create!(:name => 'test article', :body => 'some text') | |
| 571 | + a = create(Article, :name => 'test article', :body => 'some text', :profile_id => p1) | |
| 573 | 572 | b = a.copy(:parent => a, :profile => p2) |
| 574 | 573 | |
| 575 | 574 | p2 = Person.find(p2.id) |
| ... | ... | @@ -593,7 +592,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 593 | 592 | |
| 594 | 593 | should 'load article under an old path' do |
| 595 | 594 | p = create_user('test_user').person |
| 596 | - a = p.articles.create(:name => 'old-name') | |
| 595 | + a = create(Article, :name => 'old-name', :profile_id => p.id) | |
| 597 | 596 | old_path = a.explode_path |
| 598 | 597 | a.name = 'new-name' |
| 599 | 598 | a.save! |
| ... | ... | @@ -605,7 +604,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 605 | 604 | |
| 606 | 605 | should 'load new article name equal of another article old name' do |
| 607 | 606 | p = create_user('test_user').person |
| 608 | - a1 = p.articles.create!(:name => 'old-name') | |
| 607 | + a1 = create(Article, :name => 'old-name', :profile_id => p.id) | |
| 609 | 608 | old_path = a1.explode_path |
| 610 | 609 | a1.name = 'new-name' |
| 611 | 610 | a1.save! |
| ... | ... | @@ -618,11 +617,11 @@ class ArticleTest < ActiveSupport::TestCase |
| 618 | 617 | |
| 619 | 618 | should 'article with most recent version with the name must be loaded if no aritcle with the name' do |
| 620 | 619 | p = create_user('test_user').person |
| 621 | - a1 = p.articles.create!(:name => 'old-name') | |
| 620 | + a1 = create(Article, :name => 'old-name', :profile_id => p.id) | |
| 622 | 621 | old_path = a1.explode_path |
| 623 | 622 | a1.name = 'new-name' |
| 624 | 623 | a1.save! |
| 625 | - a2 = p.articles.create!(:name => 'old-name') | |
| 624 | + a2 = create(Article, :name => 'old-name', :profile_id => p.id) | |
| 626 | 625 | a2.name = 'other-new-name' |
| 627 | 626 | a2.save! |
| 628 | 627 | |
| ... | ... | @@ -633,7 +632,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 633 | 632 | |
| 634 | 633 | should 'not return an article of a different user' do |
| 635 | 634 | p1 = create_user('test_user').person |
| 636 | - a = p1.articles.create!(:name => 'old-name') | |
| 635 | + a = create(Article, :name => 'old-name', :profile_id => p1.id) | |
| 637 | 636 | old_path = a.explode_path |
| 638 | 637 | a.name = 'new-name' |
| 639 | 638 | a.save! |
| ... | ... | @@ -665,13 +664,13 @@ class ArticleTest < ActiveSupport::TestCase |
| 665 | 664 | end |
| 666 | 665 | |
| 667 | 666 | should 'has moderate comments false by default' do |
| 668 | - a = Article.create!(:name => 'my article', :body => 'my text', :profile_id => profile.id) | |
| 667 | + a = create(Article, :name => 'my article', :body => 'my text', :profile_id => profile.id) | |
| 669 | 668 | a.reload |
| 670 | 669 | assert a.moderate_comments == false |
| 671 | 670 | end |
| 672 | 671 | |
| 673 | 672 | should 'save a article with moderate comments as true' do |
| 674 | - a = Article.create!(:name => 'my article', :body => 'my text', :profile_id => profile.id, :moderate_comments => true) | |
| 673 | + a = create(Article, :name => 'my article', :body => 'my text', :profile_id => profile.id, :moderate_comments => true) | |
| 675 | 674 | a.reload |
| 676 | 675 | assert a.moderate_comments |
| 677 | 676 | end |
| ... | ... | @@ -717,7 +716,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 717 | 716 | end |
| 718 | 717 | |
| 719 | 718 | should 'return a view url when image' do |
| 720 | - image = UploadedFile.create!(:profile => profile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) | |
| 719 | + image = create(UploadedFile, :profile => profile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) | |
| 721 | 720 | |
| 722 | 721 | assert_equal image.url.merge(:view => true), image.view_url |
| 723 | 722 | end |
| ... | ... | @@ -775,7 +774,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 775 | 774 | end |
| 776 | 775 | |
| 777 | 776 | should 'ignore category with zero as id' do |
| 778 | - a = profile.articles.create!(:name => 'a test article') | |
| 777 | + a = create(Article, :name => 'a test article', :profile_id => profile.id) | |
| 779 | 778 | c = fast_create(Category, :name => 'test category', :environment_id => profile.environment.id, :parent_id => 0) |
| 780 | 779 | a.category_ids = ['0', c.id, nil] |
| 781 | 780 | assert a.save |
| ... | ... | @@ -788,25 +787,25 @@ class ArticleTest < ActiveSupport::TestCase |
| 788 | 787 | end |
| 789 | 788 | |
| 790 | 789 | should 'add owner on cache_key when has profile' do |
| 791 | - a = profile.articles.create!(:name => 'a test article') | |
| 790 | + a = create(Article, :name => 'a test article', :profile_id => profile.id) | |
| 792 | 791 | assert_match(/-owner/, a.cache_key({}, profile)) |
| 793 | 792 | end |
| 794 | 793 | |
| 795 | 794 | should 'not add owner on cache_key when has no profile' do |
| 796 | - a = profile.articles.create!(:name => 'a test article') | |
| 795 | + a = create(Article, :name => 'a test article', :profile_id => profile.id) | |
| 797 | 796 | assert_no_match(/-owner/, a.cache_key({})) |
| 798 | 797 | end |
| 799 | 798 | |
| 800 | 799 | should 'add owner on cache_key when profile is community' do |
| 801 | 800 | c = fast_create(Community) |
| 802 | - a = c.articles.create!(:name => 'a test article') | |
| 801 | + a = create(Article, :name => 'a test article', :profile_id => c.id) | |
| 803 | 802 | assert_match(/-owner/, a.cache_key({}, c)) |
| 804 | 803 | end |
| 805 | 804 | |
| 806 | 805 | should 'allow author to edit if is publisher' do |
| 807 | 806 | c = fast_create(Community) |
| 808 | 807 | p = create_user_with_permission('test_user', 'publish_content', c) |
| 809 | - a = c.articles.create!(:name => 'a test article', :last_changed_by => p) | |
| 808 | + a = create(Article, :name => 'a test article', :last_changed_by => p, :profile_id => c.id) | |
| 810 | 809 | |
| 811 | 810 | assert a.allow_post_content?(p) |
| 812 | 811 | end |
| ... | ... | @@ -814,13 +813,13 @@ class ArticleTest < ActiveSupport::TestCase |
| 814 | 813 | should 'allow user with "Manage content" permissions to edit' do |
| 815 | 814 | c = fast_create(Community) |
| 816 | 815 | p = create_user_with_permission('test_user', 'post_content', c) |
| 817 | - a = c.articles.create!(:name => 'a test article') | |
| 816 | + a = create(Article, :name => 'a test article', :profile_id => c.id) | |
| 818 | 817 | |
| 819 | 818 | assert a.allow_post_content?(p) |
| 820 | 819 | end |
| 821 | 820 | |
| 822 | 821 | should 'update slug from name' do |
| 823 | - article = Article.create!(:name => 'A test article', :profile_id => profile.id) | |
| 822 | + article = create(Article, :name => 'A test article', :profile_id => profile.id) | |
| 824 | 823 | assert_equal 'a-test-article', article.slug |
| 825 | 824 | article.name = 'Changed name' |
| 826 | 825 | assert_equal 'changed-name', article.slug |
| ... | ... | @@ -828,11 +827,11 @@ class ArticleTest < ActiveSupport::TestCase |
| 828 | 827 | |
| 829 | 828 | should 'find articles in a specific category' do |
| 830 | 829 | env = Environment.default |
| 831 | - parent_category = env.categories.create!(:name => "parent category") | |
| 832 | - category_with_articles = env.categories.create!(:name => "Category with articles", :parent_id => parent_category.id) | |
| 833 | - category_without_articles = env.categories.create!(:name => "Category without articles") | |
| 830 | + parent_category = create(Category, :name => "parent category", :environment_id => env.id) | |
| 831 | + category_with_articles = create(Category, :name => "Category with articles", :parent_id => parent_category.id, :environment_id => env.id) | |
| 832 | + category_without_articles = create(Category, :name => "Category without articles", :environment_id => env.id) | |
| 834 | 833 | |
| 835 | - article_in_category = profile.articles.create!(:name => 'Article in category') | |
| 834 | + article_in_category = create(Article, :name => 'Article in category', :profile_id => profile.id) | |
| 836 | 835 | |
| 837 | 836 | article_in_category.add_category(category_with_articles) |
| 838 | 837 | |
| ... | ... | @@ -843,33 +842,33 @@ class ArticleTest < ActiveSupport::TestCase |
| 843 | 842 | |
| 844 | 843 | should 'has external_link attr' do |
| 845 | 844 | assert_nothing_raised NoMethodError do |
| 846 | - Article.new(:external_link => 'http://some.external.link') | |
| 845 | + build(Article, :external_link => 'http://some.external.link') | |
| 847 | 846 | end |
| 848 | 847 | end |
| 849 | 848 | |
| 850 | 849 | should 'validates format of external_link' do |
| 851 | - article = Article.new(:external_link => 'http://invalid-url') | |
| 850 | + article = build(Article, :external_link => 'http://invalid-url') | |
| 852 | 851 | article.valid? |
| 853 | 852 | assert_not_nil article.errors[:external_link] |
| 854 | 853 | end |
| 855 | 854 | |
| 856 | 855 | should 'put http in external_link' do |
| 857 | - article = Article.new(:external_link => 'url.without.http') | |
| 856 | + article = build(Article, :external_link => 'url.without.http') | |
| 858 | 857 | assert_equal 'http://url.without.http', article.external_link |
| 859 | 858 | end |
| 860 | 859 | |
| 861 | 860 | should 'list only published articles' do |
| 862 | 861 | profile = fast_create(Person) |
| 863 | 862 | |
| 864 | - published = profile.articles.create(:name => 'Published', :published => true) | |
| 865 | - unpublished = profile.articles.create(:name => 'Unpublished', :published => false) | |
| 863 | + published = create(Article, :name => 'Published', :published => true, :profile_id => profile.id) | |
| 864 | + unpublished = create(Article, :name => 'Unpublished', :published => false, :profile_id => profile.id) | |
| 866 | 865 | |
| 867 | 866 | assert_equal [ published ], profile.articles.published |
| 868 | 867 | end |
| 869 | 868 | |
| 870 | 869 | should 'sanitize tags after save article' do |
| 871 | 870 | article = fast_create(Article, :slug => 'article-with-tags', :profile_id => profile.id) |
| 872 | - article.tags << Tag.new(:name => "TV Web w<script type='javascript'></script>") | |
| 871 | + article.tags << build(Tag, :name => "TV Web w<script type='javascript'></script>") | |
| 873 | 872 | assert_match /[<>]/, article.tags.last.name |
| 874 | 873 | article.save! |
| 875 | 874 | assert_no_match /[<>]/, article.tags.last.name |
| ... | ... | @@ -877,7 +876,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 877 | 876 | |
| 878 | 877 | should 'strip HTML from tag names after save article' do |
| 879 | 878 | article = fast_create(Article, :slug => 'article-with-tags', :profile_id => profile.id) |
| 880 | - article.tags << Tag.new(:name => "TV Web w<script type=...") | |
| 879 | + article.tags << build(Tag, :name => "TV Web w<script type=...") | |
| 881 | 880 | assert_match /</, article.tags.last.name |
| 882 | 881 | article.save! |
| 883 | 882 | assert_no_match /</, article.tags.last.name |
| ... | ... | @@ -895,7 +894,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 895 | 894 | person = fast_create(Person) |
| 896 | 895 | community = fast_create(Community) |
| 897 | 896 | article = fast_create(Article, :name => 'article name', :profile_id => person.id) |
| 898 | - a = ApproveArticle.create!(:article => article, :target => community, :requestor => profile) | |
| 897 | + a = create(ApproveArticle, :article => article, :target => community, :requestor => profile) | |
| 899 | 898 | a.finish |
| 900 | 899 | |
| 901 | 900 | published = community.articles.find_by_name('article name') |
| ... | ... | @@ -905,7 +904,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 905 | 904 | end |
| 906 | 905 | |
| 907 | 906 | should 'remove script tags from name' do |
| 908 | - a = Article.new(:name => 'hello <script>alert(1)</script>') | |
| 907 | + a = build(Article, :name => 'hello <script>alert(1)</script>') | |
| 909 | 908 | a.valid? |
| 910 | 909 | |
| 911 | 910 | assert_no_match(/<script>/, a.name) |
| ... | ... | @@ -926,7 +925,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 926 | 925 | end |
| 927 | 926 | |
| 928 | 927 | should 'return abstract as lead' do |
| 929 | - a = Article.new(:abstract => 'lead') | |
| 928 | + a = build(Article, :abstract => 'lead') | |
| 930 | 929 | assert_equal 'lead', a.lead |
| 931 | 930 | end |
| 932 | 931 | |
| ... | ... | @@ -937,13 +936,13 @@ class ArticleTest < ActiveSupport::TestCase |
| 937 | 936 | end |
| 938 | 937 | |
| 939 | 938 | should 'return first paragraph as lead with empty but non-null abstract' do |
| 940 | - a = Article.new(:abstract => '') | |
| 939 | + a = build(Article, :abstract => '') | |
| 941 | 940 | a.stubs(:first_paragraph).returns('<p>first</p>') |
| 942 | 941 | assert_equal '<p>first</p>', a.lead |
| 943 | 942 | end |
| 944 | 943 | |
| 945 | 944 | should 'return blank as lead when article has no paragraphs' do |
| 946 | - a = Article.new(:body => "<div>an article with content <em>but without</em> a paragraph</div>") | |
| 945 | + a = build(Article, :body => "<div>an article with content <em>but without</em> a paragraph</div>") | |
| 947 | 946 | assert_equal '', a.lead |
| 948 | 947 | end |
| 949 | 948 | |
| ... | ... | @@ -953,7 +952,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 953 | 952 | end |
| 954 | 953 | |
| 955 | 954 | should 'remove html from short lead' do |
| 956 | - a = Article.new(:body => "<p>an article with html that should be <em>removed</em></p>") | |
| 955 | + a = build(Article, :body => "<p>an article with html that should be <em>removed</em></p>") | |
| 957 | 956 | assert_equal 'an article with html that should be removed', a.short_lead |
| 958 | 957 | end |
| 959 | 958 | |
| ... | ... | @@ -995,13 +994,13 @@ class ArticleTest < ActiveSupport::TestCase |
| 995 | 994 | |
| 996 | 995 | should 'not notify activity by default on create' do |
| 997 | 996 | ActionTracker::Record.delete_all |
| 998 | - Article.create! :name => 'test', :profile_id => fast_create(Profile).id, :published => true | |
| 997 | + create Article, :name => 'test', :profile_id => fast_create(Profile).id, :published => true | |
| 999 | 998 | assert_equal 0, ActionTracker::Record.count |
| 1000 | 999 | end |
| 1001 | 1000 | |
| 1002 | 1001 | should 'not notify activity by default on update' do |
| 1003 | 1002 | ActionTracker::Record.delete_all |
| 1004 | - a = Article.create! :name => 'bar', :profile_id => fast_create(Profile).id, :published => true | |
| 1003 | + a = create Article, :name => 'bar', :profile_id => fast_create(Profile).id, :published => true | |
| 1005 | 1004 | a.name = 'foo' |
| 1006 | 1005 | a.save! |
| 1007 | 1006 | assert_equal 0, ActionTracker::Record.count |
| ... | ... | @@ -1009,13 +1008,13 @@ class ArticleTest < ActiveSupport::TestCase |
| 1009 | 1008 | |
| 1010 | 1009 | should 'not notify activity by default on destroy' do |
| 1011 | 1010 | ActionTracker::Record.delete_all |
| 1012 | - a = Article.create! :name => 'bar', :profile_id => fast_create(Profile).id, :published => true | |
| 1011 | + a = create Article, :name => 'bar', :profile_id => fast_create(Profile).id, :published => true | |
| 1013 | 1012 | a.destroy |
| 1014 | 1013 | assert_equal 0, ActionTracker::Record.count |
| 1015 | 1014 | end |
| 1016 | 1015 | |
| 1017 | 1016 | should 'create activity' do |
| 1018 | - a = TextileArticle.create! :name => 'bar', :profile_id => fast_create(Profile).id, :published => true | |
| 1017 | + a = create TextileArticle, :name => 'bar', :profile_id => fast_create(Profile).id, :published => true | |
| 1019 | 1018 | a.activity.destroy |
| 1020 | 1019 | assert_nil a.activity |
| 1021 | 1020 | |
| ... | ... | @@ -1070,7 +1069,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 1070 | 1069 | member_1 = Person.first |
| 1071 | 1070 | community.add_member(member_1) |
| 1072 | 1071 | |
| 1073 | - article = TinyMceArticle.create! :name => 'Tracked Article 1', :profile_id => community.id | |
| 1072 | + article = create TinyMceArticle, :name => 'Tracked Article 1', :profile_id => community.id | |
| 1074 | 1073 | first_activity = article.activity |
| 1075 | 1074 | assert_equal [first_activity], ActionTracker::Record.find_all_by_verb('create_article') |
| 1076 | 1075 | |
| ... | ... | @@ -1080,7 +1079,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 1080 | 1079 | member_2 = fast_create(Person) |
| 1081 | 1080 | community.add_member(member_2) |
| 1082 | 1081 | |
| 1083 | - article2 = TinyMceArticle.create! :name => 'Tracked Article 2', :profile_id => community.id | |
| 1082 | + article2 = create TinyMceArticle, :name => 'Tracked Article 2', :profile_id => community.id | |
| 1084 | 1083 | second_activity = article2.activity |
| 1085 | 1084 | assert_equivalent [first_activity, second_activity], ActionTracker::Record.find_all_by_verb('create_article') |
| 1086 | 1085 | |
| ... | ... | @@ -1106,14 +1105,14 @@ class ArticleTest < ActiveSupport::TestCase |
| 1106 | 1105 | profile.add_friend(f1) |
| 1107 | 1106 | |
| 1108 | 1107 | UserStampSweeper.any_instance.expects(:current_user).returns(profile).at_least_once |
| 1109 | - article = TinyMceArticle.create! :name => 'Tracked Article 1', :profile_id => profile.id | |
| 1108 | + article = create TinyMceArticle, :name => 'Tracked Article 1', :profile_id => profile.id | |
| 1110 | 1109 | assert_equal 1, ActionTracker::Record.find_all_by_verb('create_article').count |
| 1111 | 1110 | process_delayed_job_queue |
| 1112 | 1111 | assert_equal 2, ActionTrackerNotification.find_all_by_action_tracker_id(article.activity.id).count |
| 1113 | 1112 | |
| 1114 | 1113 | f2 = fast_create(Person) |
| 1115 | 1114 | profile.add_friend(f2) |
| 1116 | - article2 = TinyMceArticle.create! :name => 'Tracked Article 2', :profile_id => profile.id | |
| 1115 | + article2 = create TinyMceArticle, :name => 'Tracked Article 2', :profile_id => profile.id | |
| 1117 | 1116 | assert_equal 2, ActionTracker::Record.find_all_by_verb('create_article').count |
| 1118 | 1117 | process_delayed_job_queue |
| 1119 | 1118 | assert_equal 3, ActionTrackerNotification.find_all_by_action_tracker_id(article2.activity.id).count |
| ... | ... | @@ -1378,7 +1377,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 1378 | 1377 | |
| 1379 | 1378 | should "the author_name returns the name of the article's author" do |
| 1380 | 1379 | author = fast_create(Person) |
| 1381 | - a = profile.articles.create!(:name => 'a test article', :last_changed_by => author) | |
| 1380 | + a = create(Article, :name => 'a test article', :last_changed_by => author, :profile_id => profile.id) | |
| 1382 | 1381 | assert_equal author.name, a.author_name |
| 1383 | 1382 | author.destroy |
| 1384 | 1383 | a.reload |
| ... | ... | @@ -1397,7 +1396,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 1397 | 1396 | should 'retrieve latest info from comment when has comments' do |
| 1398 | 1397 | forum = fast_create(Forum, :name => 'Forum test', :profile_id => profile.id) |
| 1399 | 1398 | post = fast_create(TextileArticle, :name => 'First post', :profile_id => profile.id, :parent_id => forum.id, :updated_at => Time.now) |
| 1400 | - post.comments << Comment.new(:name => 'Guest', :email => 'guest@example.com', :title => 'test comment', :body => 'hello!') | |
| 1399 | + post.comments << build(Comment, :name => 'Guest', :email => 'guest@example.com', :title => 'test comment', :body => 'hello!') | |
| 1401 | 1400 | assert_equal post.comments.last.created_at, post.info_from_last_update[:date] |
| 1402 | 1401 | assert_equal "Guest", post.info_from_last_update[:author_name] |
| 1403 | 1402 | assert_nil post.info_from_last_update[:author_url] |
| ... | ... | @@ -1463,7 +1462,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 1463 | 1462 | |
| 1464 | 1463 | should 'get images paths in article body' do |
| 1465 | 1464 | Environment.any_instance.stubs(:default_hostname).returns('noosfero.org') |
| 1466 | - a = TinyMceArticle.new :profile => @profile | |
| 1465 | + a = build TinyMceArticle, :profile => @profile | |
| 1467 | 1466 | a.body = 'Noosfero <img src="http://noosfero.com/test.png" /> test <img src="http://test.com/noosfero.png" />' |
| 1468 | 1467 | assert_includes a.body_images_paths, 'http://noosfero.com/test.png' |
| 1469 | 1468 | assert_includes a.body_images_paths, 'http://test.com/noosfero.png' |
| ... | ... | @@ -1471,7 +1470,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 1471 | 1470 | |
| 1472 | 1471 | should 'get absolute images paths in article body' do |
| 1473 | 1472 | Environment.any_instance.stubs(:default_hostname).returns('noosfero.org') |
| 1474 | - a = TinyMceArticle.new :profile => @profile | |
| 1473 | + a = build TinyMceArticle, :profile => @profile | |
| 1475 | 1474 | a.body = 'Noosfero <img src="test.png" alt="Absolute" /> test <img src="/relative/path.png" />' |
| 1476 | 1475 | assert_includes a.body_images_paths, 'http://noosfero.org/test.png' |
| 1477 | 1476 | assert_includes a.body_images_paths, 'http://noosfero.org/relative/path.png' |
| ... | ... | @@ -1479,20 +1478,20 @@ class ArticleTest < ActiveSupport::TestCase |
| 1479 | 1478 | |
| 1480 | 1479 | should 'return empty if there are no images in article body' do |
| 1481 | 1480 | Environment.any_instance.stubs(:default_hostname).returns('noosfero.org') |
| 1482 | - a = Event.new :profile => @profile | |
| 1481 | + a = build Event, :profile => @profile | |
| 1483 | 1482 | a.body = 'Noosfero test' |
| 1484 | 1483 | assert_equal [], a.body_images_paths |
| 1485 | 1484 | end |
| 1486 | 1485 | |
| 1487 | 1486 | should 'return empty if body is nil' do |
| 1488 | 1487 | Environment.any_instance.stubs(:default_hostname).returns('noosfero.org') |
| 1489 | - a = Article.new :profile => @profile | |
| 1488 | + a = build Article, :profile => @profile | |
| 1490 | 1489 | assert_equal [], a.body_images_paths |
| 1491 | 1490 | end |
| 1492 | 1491 | |
| 1493 | 1492 | should 'survive to a invalid src attribute while looking for images in body' do |
| 1494 | - domain = Environment.default.domains.first || Domain.new(:name => 'localhost') | |
| 1495 | - article = Article.new(:body => "An article with invalid src in img tag <img src='path with spaces.png' />", :profile => @profile) | |
| 1493 | + domain = Environment.default.domains.first || build(Domain, :name => 'localhost') | |
| 1494 | + article = build(Article, :body => "An article with invalid src in img tag <img src='path with spaces.png' />", :profile => @profile) | |
| 1496 | 1495 | assert_nothing_raised URI::InvalidURIError do |
| 1497 | 1496 | assert_equal ["http://#{profile.environment.default_hostname}/path%20with%20spaces.png"], article.body_images_paths |
| 1498 | 1497 | end |
| ... | ... | @@ -1531,13 +1530,13 @@ class ArticleTest < ActiveSupport::TestCase |
| 1531 | 1530 | end |
| 1532 | 1531 | |
| 1533 | 1532 | should "return 1 comment on label if the content has 1 comment" do |
| 1534 | - a = Article.new(:comments_count => 1) | |
| 1533 | + a = build(Article, :comments_count => 1) | |
| 1535 | 1534 | assert_equal 1, a.comments_count |
| 1536 | 1535 | assert_equal "one comment", a.more_comments_label |
| 1537 | 1536 | end |
| 1538 | 1537 | |
| 1539 | 1538 | should "return number of comments on label if the content has more than one comment" do |
| 1540 | - a = Article.new(:comments_count => 4) | |
| 1539 | + a = build(Article, :comments_count => 4) | |
| 1541 | 1540 | assert_equal 4, a.comments_count |
| 1542 | 1541 | assert_equal "4 comments", a.more_comments_label |
| 1543 | 1542 | end |
| ... | ... | @@ -1549,13 +1548,13 @@ class ArticleTest < ActiveSupport::TestCase |
| 1549 | 1548 | end |
| 1550 | 1549 | |
| 1551 | 1550 | should "return 1 view on label if the content has 1 view" do |
| 1552 | - a = Article.new(:hits => 1) | |
| 1551 | + a = build(Article, :hits => 1) | |
| 1553 | 1552 | assert_equal 1, a.hits |
| 1554 | 1553 | assert_equal "one view", a.more_popular_label |
| 1555 | 1554 | end |
| 1556 | 1555 | |
| 1557 | 1556 | should "return number of views on label if the content has more than one view" do |
| 1558 | - a = Article.new(:hits => 4) | |
| 1557 | + a = build(Article, :hits => 4) | |
| 1559 | 1558 | assert_equal 4, a.hits |
| 1560 | 1559 | assert_equal "4 views", a.more_popular_label |
| 1561 | 1560 | end |
| ... | ... | @@ -1591,8 +1590,8 @@ class ArticleTest < ActiveSupport::TestCase |
| 1591 | 1590 | end |
| 1592 | 1591 | |
| 1593 | 1592 | should 'remove all categorizations when destroyed' do |
| 1594 | - art = Article.create!(:name => 'article 1', :profile_id => fast_create(Person).id) | |
| 1595 | - cat = Category.create!(:name => 'category 1', :environment_id => Environment.default.id) | |
| 1593 | + art = create(Article, :name => 'article 1', :profile_id => fast_create(Person).id) | |
| 1594 | + cat = create(Category, :name => 'category 1', :environment_id => Environment.default.id) | |
| 1596 | 1595 | art.add_category cat |
| 1597 | 1596 | art.destroy |
| 1598 | 1597 | assert cat.articles.reload.empty? |
| ... | ... | @@ -1600,9 +1599,9 @@ class ArticleTest < ActiveSupport::TestCase |
| 1600 | 1599 | |
| 1601 | 1600 | should 'show more popular articles' do |
| 1602 | 1601 | Article.destroy_all |
| 1603 | - art1 = Article.create!(:name => 'article 1', :profile_id => fast_create(Person).id) | |
| 1604 | - art2 = Article.create!(:name => 'article 2', :profile_id => fast_create(Person).id) | |
| 1605 | - art3 = Article.create!(:name => 'article 3', :profile_id => fast_create(Person).id) | |
| 1602 | + art1 = create(Article, :name => 'article 1', :profile_id => fast_create(Person).id) | |
| 1603 | + art2 = create(Article, :name => 'article 2', :profile_id => fast_create(Person).id) | |
| 1604 | + art3 = create(Article, :name => 'article 3', :profile_id => fast_create(Person).id) | |
| 1606 | 1605 | |
| 1607 | 1606 | art1.hits = 56; art1.save! |
| 1608 | 1607 | art3.hits = 92; art3.save! |
| ... | ... | @@ -1612,11 +1611,11 @@ class ArticleTest < ActiveSupport::TestCase |
| 1612 | 1611 | end |
| 1613 | 1612 | |
| 1614 | 1613 | should 'show if article is public' do |
| 1615 | - art1 = Article.create!(:name => 'article 1', :profile_id => fast_create(Person).id) | |
| 1616 | - art2 = Article.create!(:name => 'article 2', :profile_id => fast_create(Person).id, :advertise => false) | |
| 1617 | - art3 = Article.create!(:name => 'article 3', :profile_id => fast_create(Person).id, :published => false) | |
| 1618 | - art4 = Article.create!(:name => 'article 4', :profile_id => fast_create(Person, :visible => false).id) | |
| 1619 | - art5 = Article.create!(:name => 'article 5', :profile_id => fast_create(Person, :public_profile => false).id) | |
| 1614 | + art1 = create(Article, :name => 'article 1', :profile_id => fast_create(Person).id) | |
| 1615 | + art2 = create(Article, :name => 'article 2', :profile_id => fast_create(Person).id, :advertise => false) | |
| 1616 | + art3 = create(Article, :name => 'article 3', :profile_id => fast_create(Person).id, :published => false) | |
| 1617 | + art4 = create(Article, :name => 'article 4', :profile_id => fast_create(Person, :visible => false).id) | |
| 1618 | + art5 = create(Article, :name => 'article 5', :profile_id => fast_create(Person, :public_profile => false).id) | |
| 1620 | 1619 | |
| 1621 | 1620 | articles = Article.public |
| 1622 | 1621 | assert_includes articles, art1 |
| ... | ... | @@ -1633,7 +1632,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 1633 | 1632 | |
| 1634 | 1633 | community.add_admin(admin) |
| 1635 | 1634 | community.add_member(member) |
| 1636 | - a = Article.new(:profile => community) | |
| 1635 | + a = build(Article, :profile => community) | |
| 1637 | 1636 | |
| 1638 | 1637 | assert_equal false, a.allow_members_to_edit |
| 1639 | 1638 | assert_equal false, a.allow_edit?(member) |
| ... | ... | @@ -1646,7 +1645,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 1646 | 1645 | |
| 1647 | 1646 | community.add_admin(admin) |
| 1648 | 1647 | community.add_member(member) |
| 1649 | - a = Article.new(:profile => community) | |
| 1648 | + a = build(Article, :profile => community) | |
| 1650 | 1649 | |
| 1651 | 1650 | a.allow_members_to_edit = true |
| 1652 | 1651 | |
| ... | ... | @@ -1681,20 +1680,20 @@ class ArticleTest < ActiveSupport::TestCase |
| 1681 | 1680 | end |
| 1682 | 1681 | |
| 1683 | 1682 | should 'store first image in tracked action' do |
| 1684 | - a = TinyMceArticle.create! :name => 'Tracked Article', :body => '<p>Foo<img src="foo.png" />Bar</p>', :profile_id => profile.id | |
| 1683 | + a = create TinyMceArticle, :name => 'Tracked Article', :body => '<p>Foo<img src="foo.png" />Bar</p>', :profile_id => profile.id | |
| 1685 | 1684 | assert_equal 'foo.png', ActionTracker::Record.last.get_first_image |
| 1686 | 1685 | end |
| 1687 | 1686 | |
| 1688 | 1687 | should 'be able to have a license' do |
| 1689 | - license = License.create!(:name => 'GPLv3', :environment => Environment.default) | |
| 1690 | - article = Article.new(:license_id => license.id) | |
| 1688 | + license = create(License, :name => 'GPLv3', :environment => Environment.default) | |
| 1689 | + article = build(Article, :license_id => license.id) | |
| 1691 | 1690 | assert_equal license, article.license |
| 1692 | 1691 | end |
| 1693 | 1692 | |
| 1694 | 1693 | should 'update path if parent is changed' do |
| 1695 | - f1 = Folder.create!(:name => 'Folder 1', :profile => profile) | |
| 1696 | - f2 = Folder.create!(:name => 'Folder 2', :profile => profile) | |
| 1697 | - article = TinyMceArticle.create!(:name => 'Sample Article', :parent_id => f1.id, :profile => profile) | |
| 1694 | + f1 = create(Folder, :name => 'Folder 1', :profile => profile) | |
| 1695 | + f2 = create(Folder, :name => 'Folder 2', :profile => profile) | |
| 1696 | + article = create(TinyMceArticle, :name => 'Sample Article', :parent_id => f1.id, :profile => profile) | |
| 1698 | 1697 | assert_equal [f1.path,article.slug].join('/'), article.path |
| 1699 | 1698 | |
| 1700 | 1699 | article.parent = f2 |
| ... | ... | @@ -1705,12 +1704,13 @@ class ArticleTest < ActiveSupport::TestCase |
| 1705 | 1704 | article.save! |
| 1706 | 1705 | assert_equal article.slug, article.path |
| 1707 | 1706 | |
| 1708 | - article.update_attributes({:parent_id => f2.id}) | |
| 1707 | + article.parent = f2 | |
| 1708 | + article.save! | |
| 1709 | 1709 | assert_equal [f2.path,article.slug].join('/'), article.path |
| 1710 | 1710 | end |
| 1711 | 1711 | |
| 1712 | 1712 | should 'not allow parent as itself' do |
| 1713 | - article = Article.create!(:name => 'Sample Article', :profile => profile) | |
| 1713 | + article = create(Article, :name => 'Sample Article', :profile => profile) | |
| 1714 | 1714 | article.parent = article |
| 1715 | 1715 | article.valid? |
| 1716 | 1716 | |
| ... | ... | @@ -1718,9 +1718,9 @@ class ArticleTest < ActiveSupport::TestCase |
| 1718 | 1718 | end |
| 1719 | 1719 | |
| 1720 | 1720 | should 'not allow cyclical paternity' do |
| 1721 | - a1 = Article.create!(:name => 'Sample Article 1', :profile => profile) | |
| 1722 | - a2 = Article.create!(:name => 'Sample Article 2', :profile => profile, :parent => a1) | |
| 1723 | - a3 = Article.create!(:name => 'Sample Article 3', :profile => profile, :parent => a2) | |
| 1721 | + a1 = create(Article, :name => 'Sample Article 1', :profile => profile) | |
| 1722 | + a2 = create(Article, :name => 'Sample Article 2', :profile => profile, :parent => a1) | |
| 1723 | + a3 = create(Article, :name => 'Sample Article 3', :profile => profile, :parent => a2) | |
| 1724 | 1724 | a1.parent = a3 |
| 1725 | 1725 | a1.valid? |
| 1726 | 1726 | |
| ... | ... | @@ -1729,7 +1729,7 @@ class ArticleTest < ActiveSupport::TestCase |
| 1729 | 1729 | |
| 1730 | 1730 | should 'set author_name before creating article if there is an author' do |
| 1731 | 1731 | author = fast_create(Person) |
| 1732 | - article = Article.create!(:name => 'Test', :profile => profile, :last_changed_by => author) | |
| 1732 | + article = create(Article, :name => 'Test', :profile => profile, :last_changed_by => author) | |
| 1733 | 1733 | assert_equal author.name, article.author_name |
| 1734 | 1734 | |
| 1735 | 1735 | author_name = author.name |
| ... | ... | @@ -1740,12 +1740,12 @@ class ArticleTest < ActiveSupport::TestCase |
| 1740 | 1740 | |
| 1741 | 1741 | should "author_id return the author id of the article's author" do |
| 1742 | 1742 | author = fast_create(Person) |
| 1743 | - article = Article.create!(:name => 'Test', :profile => profile, :last_changed_by => author) | |
| 1743 | + article = create(Article, :name => 'Test', :profile => profile, :last_changed_by => author) | |
| 1744 | 1744 | assert_equal author.id, article.author_id |
| 1745 | 1745 | end |
| 1746 | 1746 | |
| 1747 | 1747 | should "author_id return nil if there is no article's author" do |
| 1748 | - article = Article.create!(:name => 'Test', :profile => profile, :last_changed_by => nil) | |
| 1748 | + article = create(Article, :name => 'Test', :profile => profile, :last_changed_by => nil) | |
| 1749 | 1749 | assert_nil article.author_id |
| 1750 | 1750 | end |
| 1751 | 1751 | ... | ... |