Commit 362d23e0a51611ad95c926c483bbcd2e9db54e01
1 parent
d2dc1474
Exists in
staging
and in
42 other branches
Move to vote plugin all modifications on core related to vote_fu
(ActionItem2786)
Showing
12 changed files
with
238 additions
and
194 deletions
Show diff stats
app/models/article.rb
| ... | ... | @@ -76,8 +76,6 @@ class Article < ActiveRecord::Base |
| 76 | 76 | belongs_to :translation_of, :class_name => 'Article', :foreign_key => :translation_of_id |
| 77 | 77 | before_destroy :rotate_translations |
| 78 | 78 | |
| 79 | - acts_as_voteable | |
| 80 | - | |
| 81 | 79 | before_create do |article| |
| 82 | 80 | article.published_at ||= Time.now |
| 83 | 81 | if article.reference_article && !article.parent | ... | ... |
app/models/comment.rb
app/models/person.rb
| ... | ... | @@ -0,0 +1,24 @@ |
| 1 | +require 'test_helper' | |
| 2 | + | |
| 3 | +class ArticleTest < ActiveSupport::TestCase | |
| 4 | + | |
| 5 | + def setup | |
| 6 | + @profile = create_user('testing').person | |
| 7 | + end | |
| 8 | + | |
| 9 | + attr_reader :profile | |
| 10 | + | |
| 11 | + should 'vote in a article' do | |
| 12 | + article = Article.create!(:name => 'Test', :profile => profile, :last_changed_by => nil) | |
| 13 | + profile.vote(article, 5) | |
| 14 | + assert_equal 1, article.voters_who_voted.length | |
| 15 | + assert_equal 5, article.votes_total | |
| 16 | + end | |
| 17 | + | |
| 18 | + should 'be able to remove a voted article' do | |
| 19 | + article = Article.create!(:name => 'Test', :profile => profile, :last_changed_by => nil) | |
| 20 | + profile.vote(article, 5) | |
| 21 | + article.destroy | |
| 22 | + end | |
| 23 | + | |
| 24 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,59 @@ |
| 1 | +require 'test_helper' | |
| 2 | + | |
| 3 | +class CommentTest < ActiveSupport::TestCase | |
| 4 | + | |
| 5 | + should 'vote in a comment' do | |
| 6 | + comment = create_comment | |
| 7 | + person = create_user('voter').person | |
| 8 | + person.vote(comment, 5) | |
| 9 | + assert_equal 1, comment.voters_who_voted.length | |
| 10 | + assert_equal 5, comment.votes_total | |
| 11 | + end | |
| 12 | + | |
| 13 | + should 'like a comment' do | |
| 14 | + comment = create_comment | |
| 15 | + person = create_user('voter').person | |
| 16 | + assert !comment.voted_by?(person, true) | |
| 17 | + person.vote_for(comment) | |
| 18 | + assert comment.voted_by?(person, true) | |
| 19 | + assert !comment.voted_by?(person, false) | |
| 20 | + end | |
| 21 | + | |
| 22 | + should 'count voters for' do | |
| 23 | + comment = create_comment | |
| 24 | + person = create_user('voter').person | |
| 25 | + person2 = create_user('voter2').person | |
| 26 | + person3 = create_user('voter3').person | |
| 27 | + person.vote_for(comment) | |
| 28 | + person2.vote_for(comment) | |
| 29 | + person3.vote_against(comment) | |
| 30 | + assert_equal 2, comment.votes_for | |
| 31 | + end | |
| 32 | + | |
| 33 | + should 'count votes againts' do | |
| 34 | + comment = create_comment | |
| 35 | + person = create_user('voter').person | |
| 36 | + person2 = create_user('voter2').person | |
| 37 | + person3 = create_user('voter3').person | |
| 38 | + person.vote_against(comment) | |
| 39 | + person2.vote_against(comment) | |
| 40 | + person3.vote_for(comment) | |
| 41 | + assert_equal 2, comment.votes_against | |
| 42 | + end | |
| 43 | + | |
| 44 | + should 'be able to remove a voted comment' do | |
| 45 | + comment = create_comment | |
| 46 | + person = create_user('voter').person | |
| 47 | + person.vote(comment, 5) | |
| 48 | + comment.destroy | |
| 49 | + end | |
| 50 | + | |
| 51 | + private | |
| 52 | + | |
| 53 | + def create_comment(args = {}) | |
| 54 | + owner = create_user('testuser').person | |
| 55 | + article = create(TextileArticle, :profile_id => owner.id) | |
| 56 | + create(Comment, { :name => 'foo', :email => 'foo@example.com', :source => article }.merge(args)) | |
| 57 | + end | |
| 58 | + | |
| 59 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,134 @@ |
| 1 | +require 'test_helper' | |
| 2 | + | |
| 3 | +class PersonTest < ActiveSupport::TestCase | |
| 4 | + | |
| 5 | + should 'vote in a comment with value greater than 1' do | |
| 6 | + comment = fast_create(Comment) | |
| 7 | + person = fast_create(Person) | |
| 8 | + | |
| 9 | + person.vote(comment, 5) | |
| 10 | + assert_equal 1, person.vote_count | |
| 11 | + assert_equal 5, person.votes.first.vote | |
| 12 | + assert person.voted_on?(comment) | |
| 13 | + end | |
| 14 | + | |
| 15 | + should 'vote in a comment with value lesser than -1' do | |
| 16 | + comment = fast_create(Comment) | |
| 17 | + person = fast_create(Person) | |
| 18 | + | |
| 19 | + person.vote(comment, -5) | |
| 20 | + assert_equal 1, person.vote_count | |
| 21 | + assert_equal -5, person.votes.first.vote | |
| 22 | + end | |
| 23 | + | |
| 24 | + should 'vote for a comment' do | |
| 25 | + comment = fast_create(Comment) | |
| 26 | + person = fast_create(Person) | |
| 27 | + | |
| 28 | + assert !person.voted_for?(comment) | |
| 29 | + person.vote_for(comment) | |
| 30 | + assert person.voted_for?(comment) | |
| 31 | + assert !person.voted_against?(comment) | |
| 32 | + end | |
| 33 | + | |
| 34 | + should 'vote against a comment' do | |
| 35 | + comment = fast_create(Comment) | |
| 36 | + person = fast_create(Person) | |
| 37 | + | |
| 38 | + assert !person.voted_against?(comment) | |
| 39 | + person.vote_against(comment) | |
| 40 | + assert !person.voted_for?(comment) | |
| 41 | + assert person.voted_against?(comment) | |
| 42 | + end | |
| 43 | + | |
| 44 | + should 'do not vote against a comment twice' do | |
| 45 | + comment = fast_create(Comment) | |
| 46 | + person = fast_create(Person) | |
| 47 | + | |
| 48 | + assert person.vote_against(comment) | |
| 49 | + assert !person.vote_against(comment) | |
| 50 | + end | |
| 51 | + | |
| 52 | + should 'do not vote for a comment twice' do | |
| 53 | + comment = fast_create(Comment) | |
| 54 | + person = fast_create(Person) | |
| 55 | + | |
| 56 | + assert person.vote_for(comment) | |
| 57 | + assert !person.vote_for(comment) | |
| 58 | + end | |
| 59 | + | |
| 60 | + should 'not vote against a voted for comment' do | |
| 61 | + comment = fast_create(Comment) | |
| 62 | + person = fast_create(Person) | |
| 63 | + | |
| 64 | + person.vote_for(comment) | |
| 65 | + person.vote_against(comment) | |
| 66 | + assert person.voted_for?(comment) | |
| 67 | + assert !person.voted_against?(comment) | |
| 68 | + end | |
| 69 | + | |
| 70 | + should 'not vote for a voted against comment' do | |
| 71 | + comment = fast_create(Comment) | |
| 72 | + person = fast_create(Person) | |
| 73 | + | |
| 74 | + person.vote_against(comment) | |
| 75 | + person.vote_for(comment) | |
| 76 | + assert !person.voted_for?(comment) | |
| 77 | + assert person.voted_against?(comment) | |
| 78 | + end | |
| 79 | + | |
| 80 | + should 'undo a vote for a comment' do | |
| 81 | + comment = fast_create(Comment) | |
| 82 | + person = fast_create(Person) | |
| 83 | + | |
| 84 | + person.vote_for(comment) | |
| 85 | + assert person.voted_for?(comment) | |
| 86 | + person.votes.for_voteable(comment).destroy_all | |
| 87 | + assert !person.voted_for?(comment) | |
| 88 | + end | |
| 89 | + | |
| 90 | + should 'count comments voted' do | |
| 91 | + comment = fast_create(Comment) | |
| 92 | + person = fast_create(Person) | |
| 93 | + | |
| 94 | + comment2 = fast_create(Comment) | |
| 95 | + comment3 = fast_create(Comment) | |
| 96 | + person.vote_for(comment) | |
| 97 | + person.vote_for(comment2) | |
| 98 | + person.vote_against(comment3) | |
| 99 | + assert_equal 3, person.vote_count | |
| 100 | + assert_equal 2, person.vote_count(true) | |
| 101 | + assert_equal 1, person.vote_count(false) | |
| 102 | + end | |
| 103 | + | |
| 104 | + should 'vote in a article with value greater than 1' do | |
| 105 | + article = fast_create(Article) | |
| 106 | + person = fast_create(Person) | |
| 107 | + | |
| 108 | + person.vote(article, 5) | |
| 109 | + assert_equal 1, person.vote_count | |
| 110 | + assert_equal 5, person.votes.first.vote | |
| 111 | + assert person.voted_on?(article) | |
| 112 | + end | |
| 113 | + | |
| 114 | + should 'vote for a article' do | |
| 115 | + article = fast_create(Article) | |
| 116 | + person = fast_create(Person) | |
| 117 | + | |
| 118 | + assert !person.voted_for?(article) | |
| 119 | + person.vote_for(article) | |
| 120 | + assert person.voted_for?(article) | |
| 121 | + assert !person.voted_against?(article) | |
| 122 | + end | |
| 123 | + | |
| 124 | + should 'vote against a article' do | |
| 125 | + article = fast_create(Article) | |
| 126 | + person = fast_create(Person) | |
| 127 | + | |
| 128 | + assert !person.voted_against?(article) | |
| 129 | + person.vote_against(article) | |
| 130 | + assert !person.voted_for?(article) | |
| 131 | + assert person.voted_against?(article) | |
| 132 | + end | |
| 133 | + | |
| 134 | +end | ... | ... |
test/unit/article_test.rb
| ... | ... | @@ -1744,17 +1744,4 @@ class ArticleTest < ActiveSupport::TestCase |
| 1744 | 1744 | assert_nil article.author_id |
| 1745 | 1745 | end |
| 1746 | 1746 | |
| 1747 | - should 'vote in a article' do | |
| 1748 | - article = Article.create!(:name => 'Test', :profile => profile, :last_changed_by => nil) | |
| 1749 | - profile.vote(article, 5) | |
| 1750 | - assert_equal 1, article.voters_who_voted.length | |
| 1751 | - assert_equal 5, article.votes_total | |
| 1752 | - end | |
| 1753 | - | |
| 1754 | - should 'be able to remove a voted article' do | |
| 1755 | - article = Article.create!(:name => 'Test', :profile => profile, :last_changed_by => nil) | |
| 1756 | - profile.vote(article, 5) | |
| 1757 | - article.destroy | |
| 1758 | - end | |
| 1759 | - | |
| 1760 | 1747 | end | ... | ... |
test/unit/comment_test.rb
| ... | ... | @@ -685,52 +685,6 @@ class CommentTest < ActiveSupport::TestCase |
| 685 | 685 | assert_equivalent [c1,c4], Comment.without_reply |
| 686 | 686 | end |
| 687 | 687 | |
| 688 | - should 'vote in a comment' do | |
| 689 | - comment = create_comment | |
| 690 | - person = create_user('voter').person | |
| 691 | - person.vote(comment, 5) | |
| 692 | - assert_equal 1, comment.voters_who_voted.length | |
| 693 | - assert_equal 5, comment.votes_total | |
| 694 | - end | |
| 695 | - | |
| 696 | - should 'like a comment' do | |
| 697 | - comment = create_comment | |
| 698 | - person = create_user('voter').person | |
| 699 | - assert !comment.voted_by?(person, true) | |
| 700 | - person.vote_for(comment) | |
| 701 | - assert comment.voted_by?(person, true) | |
| 702 | - assert !comment.voted_by?(person, false) | |
| 703 | - end | |
| 704 | - | |
| 705 | - should 'count voters for' do | |
| 706 | - comment = create_comment | |
| 707 | - person = create_user('voter').person | |
| 708 | - person2 = create_user('voter2').person | |
| 709 | - person3 = create_user('voter3').person | |
| 710 | - person.vote_for(comment) | |
| 711 | - person2.vote_for(comment) | |
| 712 | - person3.vote_against(comment) | |
| 713 | - assert_equal 2, comment.votes_for | |
| 714 | - end | |
| 715 | - | |
| 716 | - should 'count votes againts' do | |
| 717 | - comment = create_comment | |
| 718 | - person = create_user('voter').person | |
| 719 | - person2 = create_user('voter2').person | |
| 720 | - person3 = create_user('voter3').person | |
| 721 | - person.vote_against(comment) | |
| 722 | - person2.vote_against(comment) | |
| 723 | - person3.vote_for(comment) | |
| 724 | - assert_equal 2, comment.votes_against | |
| 725 | - end | |
| 726 | - | |
| 727 | - should 'be able to remove a voted comment' do | |
| 728 | - comment = create_comment | |
| 729 | - person = create_user('voter').person | |
| 730 | - person.vote(comment, 5) | |
| 731 | - comment.destroy | |
| 732 | - end | |
| 733 | - | |
| 734 | 688 | private |
| 735 | 689 | |
| 736 | 690 | def create_comment(args = {}) | ... | ... |
test/unit/person_test.rb
| ... | ... | @@ -1335,133 +1335,4 @@ class PersonTest < ActiveSupport::TestCase |
| 1335 | 1335 | assert_includes non_abusers, not_abuser |
| 1336 | 1336 | end |
| 1337 | 1337 | |
| 1338 | - should 'vote in a comment with value greater than 1' do | |
| 1339 | - comment = fast_create(Comment) | |
| 1340 | - person = fast_create(Person) | |
| 1341 | - | |
| 1342 | - person.vote(comment, 5) | |
| 1343 | - assert_equal 1, person.vote_count | |
| 1344 | - assert_equal 5, person.votes.first.vote | |
| 1345 | - assert person.voted_on?(comment) | |
| 1346 | - end | |
| 1347 | - | |
| 1348 | - should 'vote in a comment with value lesser than -1' do | |
| 1349 | - comment = fast_create(Comment) | |
| 1350 | - person = fast_create(Person) | |
| 1351 | - | |
| 1352 | - person.vote(comment, -5) | |
| 1353 | - assert_equal 1, person.vote_count | |
| 1354 | - assert_equal -5, person.votes.first.vote | |
| 1355 | - end | |
| 1356 | - | |
| 1357 | - should 'vote for a comment' do | |
| 1358 | - comment = fast_create(Comment) | |
| 1359 | - person = fast_create(Person) | |
| 1360 | - | |
| 1361 | - assert !person.voted_for?(comment) | |
| 1362 | - person.vote_for(comment) | |
| 1363 | - assert person.voted_for?(comment) | |
| 1364 | - assert !person.voted_against?(comment) | |
| 1365 | - end | |
| 1366 | - | |
| 1367 | - should 'vote against a comment' do | |
| 1368 | - comment = fast_create(Comment) | |
| 1369 | - person = fast_create(Person) | |
| 1370 | - | |
| 1371 | - assert !person.voted_against?(comment) | |
| 1372 | - person.vote_against(comment) | |
| 1373 | - assert !person.voted_for?(comment) | |
| 1374 | - assert person.voted_against?(comment) | |
| 1375 | - end | |
| 1376 | - | |
| 1377 | - should 'do not vote against a comment twice' do | |
| 1378 | - comment = fast_create(Comment) | |
| 1379 | - person = fast_create(Person) | |
| 1380 | - | |
| 1381 | - assert person.vote_against(comment) | |
| 1382 | - assert !person.vote_against(comment) | |
| 1383 | - end | |
| 1384 | - | |
| 1385 | - should 'do not vote for a comment twice' do | |
| 1386 | - comment = fast_create(Comment) | |
| 1387 | - person = fast_create(Person) | |
| 1388 | - | |
| 1389 | - assert person.vote_for(comment) | |
| 1390 | - assert !person.vote_for(comment) | |
| 1391 | - end | |
| 1392 | - | |
| 1393 | - should 'not vote against a voted for comment' do | |
| 1394 | - comment = fast_create(Comment) | |
| 1395 | - person = fast_create(Person) | |
| 1396 | - | |
| 1397 | - person.vote_for(comment) | |
| 1398 | - person.vote_against(comment) | |
| 1399 | - assert person.voted_for?(comment) | |
| 1400 | - assert !person.voted_against?(comment) | |
| 1401 | - end | |
| 1402 | - | |
| 1403 | - should 'not vote for a voted against comment' do | |
| 1404 | - comment = fast_create(Comment) | |
| 1405 | - person = fast_create(Person) | |
| 1406 | - | |
| 1407 | - person.vote_against(comment) | |
| 1408 | - person.vote_for(comment) | |
| 1409 | - assert !person.voted_for?(comment) | |
| 1410 | - assert person.voted_against?(comment) | |
| 1411 | - end | |
| 1412 | - | |
| 1413 | - should 'undo a vote for a comment' do | |
| 1414 | - comment = fast_create(Comment) | |
| 1415 | - person = fast_create(Person) | |
| 1416 | - | |
| 1417 | - person.vote_for(comment) | |
| 1418 | - assert person.voted_for?(comment) | |
| 1419 | - person.votes.for_voteable(comment).destroy_all | |
| 1420 | - assert !person.voted_for?(comment) | |
| 1421 | - end | |
| 1422 | - | |
| 1423 | - should 'count comments voted' do | |
| 1424 | - comment = fast_create(Comment) | |
| 1425 | - person = fast_create(Person) | |
| 1426 | - | |
| 1427 | - comment2 = fast_create(Comment) | |
| 1428 | - comment3 = fast_create(Comment) | |
| 1429 | - person.vote_for(comment) | |
| 1430 | - person.vote_for(comment2) | |
| 1431 | - person.vote_against(comment3) | |
| 1432 | - assert_equal 3, person.vote_count | |
| 1433 | - assert_equal 2, person.vote_count(true) | |
| 1434 | - assert_equal 1, person.vote_count(false) | |
| 1435 | - end | |
| 1436 | - | |
| 1437 | - should 'vote in a article with value greater than 1' do | |
| 1438 | - article = fast_create(Article) | |
| 1439 | - person = fast_create(Person) | |
| 1440 | - | |
| 1441 | - person.vote(article, 5) | |
| 1442 | - assert_equal 1, person.vote_count | |
| 1443 | - assert_equal 5, person.votes.first.vote | |
| 1444 | - assert person.voted_on?(article) | |
| 1445 | - end | |
| 1446 | - | |
| 1447 | - should 'vote for a article' do | |
| 1448 | - article = fast_create(Article) | |
| 1449 | - person = fast_create(Person) | |
| 1450 | - | |
| 1451 | - assert !person.voted_for?(article) | |
| 1452 | - person.vote_for(article) | |
| 1453 | - assert person.voted_for?(article) | |
| 1454 | - assert !person.voted_against?(article) | |
| 1455 | - end | |
| 1456 | - | |
| 1457 | - should 'vote against a article' do | |
| 1458 | - article = fast_create(Article) | |
| 1459 | - person = fast_create(Person) | |
| 1460 | - | |
| 1461 | - assert !person.voted_against?(article) | |
| 1462 | - person.vote_against(article) | |
| 1463 | - assert !person.voted_for?(article) | |
| 1464 | - assert person.voted_against?(article) | |
| 1465 | - end | |
| 1466 | - | |
| 1467 | 1338 | end | ... | ... |