Commit b7f7e9fc67014c337d0b50e3424ab8b110751a81
1 parent
6b3ab931
Exists in
master
and in
9 other branches
action_tracker: Don't use user_stamp
user_stamp depends on deprecated Sweeper code and it is quite complicated to understand and use. Use User.current instead
Showing
28 changed files
with
95 additions
and
585 deletions
Show diff stats
config/initializers/action_tracker.rb
test/action_tracker_test_helper.rb
test/functional/profile_controller_test.rb
... | ... | @@ -703,13 +703,13 @@ class ProfileControllerTest < ActionController::TestCase |
703 | 703 | p1= create_user.person |
704 | 704 | p2= create_user.person |
705 | 705 | |
706 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p1) | |
706 | + User.current = p1.user | |
707 | 707 | scrap1 = create(Scrap, defaults_for_scrap(:sender => p1, :receiver => p2)) |
708 | 708 | |
709 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p2) | |
709 | + User.current = p2.user | |
710 | 710 | scrap2 = create(Scrap, defaults_for_scrap(:sender => p2, :receiver => p1)) |
711 | 711 | |
712 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p1) | |
712 | + User.current = p1.user | |
713 | 713 | create(TinyMceArticle, :profile => p1, :name => 'An article about free software') |
714 | 714 | a1 = ActionTracker::Record.last |
715 | 715 | |
... | ... | @@ -738,10 +738,10 @@ class ProfileControllerTest < ActionController::TestCase |
738 | 738 | scrap1 = create(Scrap, defaults_for_scrap(:sender => p2, :receiver => p3)) |
739 | 739 | scrap2 = create(Scrap, defaults_for_scrap(:sender => p2, :receiver => profile)) |
740 | 740 | |
741 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p3) | |
741 | + User.current = p3.user | |
742 | 742 | article1 = TinyMceArticle.create!(:profile => p3, :name => 'An article about free software') |
743 | 743 | |
744 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p2) | |
744 | + User.current = p2.user | |
745 | 745 | article2 = TinyMceArticle.create!(:profile => p2, :name => 'Another article about free software') |
746 | 746 | |
747 | 747 | login_as(profile.identifier) |
... | ... | @@ -761,15 +761,15 @@ class ProfileControllerTest < ActionController::TestCase |
761 | 761 | |
762 | 762 | ActionTracker::Record.delete_all |
763 | 763 | |
764 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p1) | |
764 | + User.current = p1.user | |
765 | 765 | create(Scrap,defaults_for_scrap(:sender => p1, :receiver => p1)) |
766 | 766 | a1 = ActionTracker::Record.last |
767 | 767 | |
768 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p2) | |
768 | + User.current = p2.user | |
769 | 769 | create(Scrap, defaults_for_scrap(:sender => p2, :receiver => p3)) |
770 | 770 | a2 = ActionTracker::Record.last |
771 | 771 | |
772 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p3) | |
772 | + User.current = p3.user | |
773 | 773 | create(Scrap, defaults_for_scrap(:sender => p3, :receiver => p1)) |
774 | 774 | a3 = ActionTracker::Record.last |
775 | 775 | |
... | ... | @@ -791,15 +791,15 @@ class ProfileControllerTest < ActionController::TestCase |
791 | 791 | |
792 | 792 | ActionTracker::Record.delete_all |
793 | 793 | |
794 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p1) | |
794 | + User.current = p1.user | |
795 | 795 | create(Scrap, defaults_for_scrap(:sender => p1, :receiver => p1)) |
796 | 796 | a1 = ActionTracker::Record.last |
797 | 797 | |
798 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p2) | |
798 | + User.current = p2.user | |
799 | 799 | create(Scrap, defaults_for_scrap(:sender => p2, :receiver => p3)) |
800 | 800 | a2 = ActionTracker::Record.last |
801 | 801 | |
802 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p3) | |
802 | + User.current = p3.user | |
803 | 803 | create(Scrap, defaults_for_scrap(:sender => p3, :receiver => p1)) |
804 | 804 | a3 = ActionTracker::Record.last |
805 | 805 | |
... | ... | @@ -833,10 +833,10 @@ class ProfileControllerTest < ActionController::TestCase |
833 | 833 | ActionTracker::Record.destroy_all |
834 | 834 | create(Scrap, defaults_for_scrap(:sender => p1, :receiver => p1)) |
835 | 835 | a1 = ActionTracker::Record.last |
836 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p2) | |
836 | + User.current = p2.user | |
837 | 837 | create(Scrap, defaults_for_scrap(:sender => p2, :receiver => p3)) |
838 | 838 | a2 = ActionTracker::Record.last |
839 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p3) | |
839 | + User.current = p3.user | |
840 | 840 | create(Scrap, defaults_for_scrap(:sender => p3, :receiver => p1)) |
841 | 841 | a3 = ActionTracker::Record.last |
842 | 842 | |
... | ... | @@ -868,7 +868,7 @@ class ProfileControllerTest < ActionController::TestCase |
868 | 868 | ActionTracker::Record.destroy_all |
869 | 869 | create(Article, :name => 'a', :profile_id => community.id) |
870 | 870 | create(Article, :name => 'b', :profile_id => community.id) |
871 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p2) | |
871 | + User.current = p2.user | |
872 | 872 | create(Article, :name => 'c', :profile_id => community.id) |
873 | 873 | process_delayed_job_queue |
874 | 874 | |
... | ... | @@ -895,10 +895,10 @@ class ProfileControllerTest < ActionController::TestCase |
895 | 895 | ActionTracker::Record.destroy_all |
896 | 896 | create(Scrap, defaults_for_scrap(:sender => p1, :receiver => p1)) |
897 | 897 | a1 = ActionTracker::Record.last |
898 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p2) | |
898 | + User.current = p2.user | |
899 | 899 | create(Scrap, defaults_for_scrap(:sender => p2, :receiver => p3)) |
900 | 900 | a2 = ActionTracker::Record.last |
901 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p3) | |
901 | + User.current = p3.user | |
902 | 902 | create(Scrap, defaults_for_scrap(:sender => p3, :receiver => p1)) |
903 | 903 | a3 = ActionTracker::Record.last |
904 | 904 | |
... | ... | @@ -1317,7 +1317,7 @@ class ProfileControllerTest < ActionController::TestCase |
1317 | 1317 | another_person = fast_create(Person) |
1318 | 1318 | create(Scrap, defaults_for_scrap(:sender => another_person, :receiver => profile, :content => 'A scrap')) |
1319 | 1319 | |
1320 | - UserStampSweeper.any_instance.stubs(:current_user).returns(profile) | |
1320 | + User.current = profile.user | |
1321 | 1321 | ActionTracker::Record.destroy_all |
1322 | 1322 | TinyMceArticle.create!(:profile => profile, :name => 'An article about free software') |
1323 | 1323 | |
... | ... | @@ -1332,7 +1332,7 @@ class ProfileControllerTest < ActionController::TestCase |
1332 | 1332 | another_person = fast_create(Person) |
1333 | 1333 | scrap = create(Scrap, defaults_for_scrap(:sender => another_person, :receiver => profile, :content => 'A scrap')) |
1334 | 1334 | |
1335 | - UserStampSweeper.any_instance.stubs(:current_user).returns(profile) | |
1335 | + User.current = profile.user | |
1336 | 1336 | ActionTracker::Record.destroy_all |
1337 | 1337 | TinyMceArticle.create!(:profile => profile, :name => 'An article about free software') |
1338 | 1338 | activity = ActionTracker::Record.last |
... | ... | @@ -1380,7 +1380,7 @@ class ProfileControllerTest < ActionController::TestCase |
1380 | 1380 | end |
1381 | 1381 | |
1382 | 1382 | should 'display comment in wall if user was removed after click in view all comments' do |
1383 | - UserStampSweeper.any_instance.stubs(:current_user).returns(profile) | |
1383 | + User.current = profile.user | |
1384 | 1384 | article = TinyMceArticle.create!(:profile => profile, :name => 'An article about free software') |
1385 | 1385 | to_be_removed = create_user('removed_user').person |
1386 | 1386 | comment = create(Comment, :author => to_be_removed, :title => 'Test Comment', :body => 'My author does not exist =(', :source_id => article.id, :source_type => 'Article') |
... | ... | @@ -1397,7 +1397,7 @@ class ProfileControllerTest < ActionController::TestCase |
1397 | 1397 | end |
1398 | 1398 | |
1399 | 1399 | should 'not display spam comments in wall' do |
1400 | - UserStampSweeper.any_instance.stubs(:current_user).returns(profile) | |
1400 | + User.current = profile.user | |
1401 | 1401 | article = TinyMceArticle.create!(:profile => profile, :name => 'An article about spam\'s nutritional attributes') |
1402 | 1402 | comment = create(Comment, :author => profile, :title => 'Test Comment', :body => 'This article makes me hungry', :source_id => article.id, :source_type => 'Article') |
1403 | 1403 | comment.spam! |
... | ... | @@ -1408,7 +1408,7 @@ class ProfileControllerTest < ActionController::TestCase |
1408 | 1408 | end |
1409 | 1409 | |
1410 | 1410 | should 'display comment in wall from non logged users after click in view all comments' do |
1411 | - UserStampSweeper.any_instance.stubs(:current_user).returns(profile) | |
1411 | + User.current = profile.user | |
1412 | 1412 | article = TinyMceArticle.create!(:profile => profile, :name => 'An article about free software') |
1413 | 1413 | comment = create(Comment, :name => 'outside user', :email => 'outside@localhost.localdomain', :title => 'Test Comment', :body => 'My author does not exist =(', :source_id => article.id, :source_type => 'Article') |
1414 | 1414 | ... | ... |
test/test_helper.rb
test/unit/action_tracker_notification_test.rb
... | ... | @@ -89,7 +89,7 @@ class ActionTrackerNotificationTest < ActiveSupport::TestCase |
89 | 89 | end |
90 | 90 | |
91 | 91 | should "have comments through article action_tracker" do |
92 | - person = fast_create(Person) | |
92 | + person = create_user.person | |
93 | 93 | article = create(TextileArticle, :profile_id => person.id) |
94 | 94 | process_delayed_job_queue |
95 | 95 | notification = ActionTrackerNotification.last | ... | ... |
test/unit/article_test.rb
... | ... | @@ -985,12 +985,12 @@ class ArticleTest < ActiveSupport::TestCase |
985 | 985 | |
986 | 986 | should 'track action when a published article is created in a community' do |
987 | 987 | community = fast_create(Community) |
988 | - p1 = fast_create(Person) | |
989 | - p2 = fast_create(Person) | |
990 | - p3 = fast_create(Person) | |
988 | + p1 = create_user.person | |
989 | + p2 = create_user.person | |
990 | + p3 = create_user.person | |
991 | 991 | community.add_member(p1) |
992 | 992 | community.add_member(p2) |
993 | - UserStampSweeper.any_instance.expects(:current_user).returns(p1).at_least_once | |
993 | + User.current = p1.user | |
994 | 994 | |
995 | 995 | article = create(TinyMceArticle, :profile_id => community.id) |
996 | 996 | activity = article.activity |
... | ... | @@ -1085,11 +1085,11 @@ class ArticleTest < ActiveSupport::TestCase |
1085 | 1085 | end |
1086 | 1086 | |
1087 | 1087 | should 'create the notification to organization and all organization members' do |
1088 | - Profile.delete_all | |
1089 | - ActionTracker::Record.delete_all | |
1088 | + Profile.destroy_all | |
1089 | + ActionTracker::Record.destroy_all | |
1090 | 1090 | |
1091 | 1091 | community = fast_create(Community) |
1092 | - member_1 = fast_create(Person) | |
1092 | + member_1 = create_user.person | |
1093 | 1093 | community.add_member(member_1) |
1094 | 1094 | |
1095 | 1095 | article = create TinyMceArticle, :name => 'Tracked Article 1', :profile_id => community.id |
... | ... | @@ -1116,7 +1116,7 @@ class ArticleTest < ActiveSupport::TestCase |
1116 | 1116 | Article.destroy_all |
1117 | 1117 | ActionTracker::Record.destroy_all |
1118 | 1118 | ActionTrackerNotification.destroy_all |
1119 | - UserStampSweeper.any_instance.expects(:current_user).returns(profile).at_least_once | |
1119 | + User.current = profile.user | |
1120 | 1120 | article = create(TinyMceArticle, :profile_id => profile.id) |
1121 | 1121 | |
1122 | 1122 | process_delayed_job_queue |
... | ... | @@ -1127,7 +1127,7 @@ class ArticleTest < ActiveSupport::TestCase |
1127 | 1127 | f1 = fast_create(Person) |
1128 | 1128 | profile.add_friend(f1) |
1129 | 1129 | |
1130 | - UserStampSweeper.any_instance.expects(:current_user).returns(profile).at_least_once | |
1130 | + User.current = profile.user | |
1131 | 1131 | article = create TinyMceArticle, :name => 'Tracked Article 1', :profile_id => profile.id |
1132 | 1132 | assert_equal 1, ActionTracker::Record.find_all_by_verb('create_article').count |
1133 | 1133 | process_delayed_job_queue |
... | ... | @@ -1147,7 +1147,7 @@ class ArticleTest < ActiveSupport::TestCase |
1147 | 1147 | Article.destroy_all |
1148 | 1148 | ActionTracker::Record.destroy_all |
1149 | 1149 | ActionTrackerNotification.destroy_all |
1150 | - UserStampSweeper.any_instance.expects(:current_user).returns(profile).at_least_once | |
1150 | + User.current = profile.user | |
1151 | 1151 | article = create(TinyMceArticle, :profile_id => profile.id) |
1152 | 1152 | activity = article.activity |
1153 | 1153 | |
... | ... | @@ -1165,11 +1165,11 @@ class ArticleTest < ActiveSupport::TestCase |
1165 | 1165 | |
1166 | 1166 | should 'destroy action_tracker and notifications when an article is destroyed in a community' do |
1167 | 1167 | community = fast_create(Community) |
1168 | - p1 = fast_create(Person) | |
1169 | - p2 = fast_create(Person) | |
1168 | + p1 = create_user.person | |
1169 | + p2 = create_user.person | |
1170 | 1170 | community.add_member(p1) |
1171 | 1171 | community.add_member(p2) |
1172 | - UserStampSweeper.any_instance.expects(:current_user).returns(p1).at_least_once | |
1172 | + User.current = p1.user | |
1173 | 1173 | |
1174 | 1174 | article = create(TinyMceArticle, :profile_id => community.id) |
1175 | 1175 | activity = article.activity | ... | ... |
test/unit/comment_test.rb
... | ... | @@ -286,7 +286,7 @@ class CommentTest < ActiveSupport::TestCase |
286 | 286 | end |
287 | 287 | |
288 | 288 | should "return activities comments as a thread" do |
289 | - person = fast_create(Person) | |
289 | + person = create_user.person | |
290 | 290 | a = TextileArticle.create!(:profile => person, :name => 'My article', :body => 'Article body') |
291 | 291 | c0 = Comment.create!(:source => a, :body => 'My comment', :author => person) |
292 | 292 | c1 = Comment.create!(:reply_of_id => c0.id, :source => a, :body => 'bla', :author => person) |
... | ... | @@ -302,7 +302,7 @@ class CommentTest < ActiveSupport::TestCase |
302 | 302 | end |
303 | 303 | |
304 | 304 | should "return activities comments when some comment on thread is spam and not display its replies" do |
305 | - person = fast_create(Person) | |
305 | + person = create_user.person | |
306 | 306 | a = TextileArticle.create!(:profile => person, :name => 'My article', :body => 'Article body') |
307 | 307 | c0 = Comment.create(:source => a, :body => 'Root comment', :author => person) |
308 | 308 | c1 = Comment.create(:reply_of_id => c0.id, :source => a, :body => 'c1', :author => person) | ... | ... |
test/unit/community_test.rb
... | ... | @@ -301,8 +301,8 @@ class CommunityTest < ActiveSupport::TestCase |
301 | 301 | ActionTrackerNotification.delete_all |
302 | 302 | p1 = Person.first |
303 | 303 | community = fast_create(Community) |
304 | - p2 = fast_create(Person) | |
305 | - p3 = fast_create(Person) | |
304 | + p2 = create_user.person | |
305 | + p3 = create_user.person | |
306 | 306 | community.add_member(p3) |
307 | 307 | article = create(TextileArticle, :profile_id => community.id) |
308 | 308 | time = article.activity.updated_at + 1.day |
... | ... | @@ -372,10 +372,10 @@ class CommunityTest < ActiveSupport::TestCase |
372 | 372 | end |
373 | 373 | |
374 | 374 | should 'return tracked_actions of community as activities' do |
375 | - person = fast_create(Person) | |
375 | + person = create_user.person | |
376 | 376 | community = fast_create(Community) |
377 | 377 | |
378 | - UserStampSweeper.any_instance.expects(:current_user).returns(person).at_least_once | |
378 | + User.current = person.user | |
379 | 379 | assert_difference 'ActionTracker::Record.count', 1 do |
380 | 380 | article = create(TinyMceArticle, :profile => community, :name => 'An article about free software') |
381 | 381 | assert_equal [article.activity], community.activities.map { |a| a.klass.constantize.find(a.id) } |
... | ... | @@ -387,7 +387,7 @@ class CommunityTest < ActiveSupport::TestCase |
387 | 387 | community = fast_create(Community) |
388 | 388 | community2 = fast_create(Community) |
389 | 389 | |
390 | - UserStampSweeper.any_instance.expects(:current_user).returns(person).at_least_once | |
390 | + User.current = person.user | |
391 | 391 | article = create(TinyMceArticle, :profile => community2, :name => 'Another article about free software') |
392 | 392 | |
393 | 393 | assert_not_includes community.activities.map { |a| a.klass.constantize.find(a.id) }, article.activity | ... | ... |
test/unit/enterprise_test.rb
... | ... | @@ -475,7 +475,7 @@ class EnterpriseTest < ActiveSupport::TestCase |
475 | 475 | person = fast_create(Person) |
476 | 476 | enterprise = fast_create(Enterprise) |
477 | 477 | |
478 | - UserStampSweeper.any_instance.expects(:current_user).returns(person).at_least_once | |
478 | + User.current = person.user | |
479 | 479 | article = create(TinyMceArticle, :profile => enterprise, :name => 'An article about free software') |
480 | 480 | |
481 | 481 | assert_equal [article.activity], enterprise.activities.map { |a| a.klass.constantize.find(a.id) } |
... | ... | @@ -486,7 +486,7 @@ class EnterpriseTest < ActiveSupport::TestCase |
486 | 486 | enterprise = fast_create(Enterprise) |
487 | 487 | enterprise2 = fast_create(Enterprise) |
488 | 488 | |
489 | - UserStampSweeper.any_instance.expects(:current_user).returns(person).at_least_once | |
489 | + User.current = person.user | |
490 | 490 | article = create(TinyMceArticle, :profile => enterprise2, :name => 'Another article about free software') |
491 | 491 | |
492 | 492 | assert_not_includes enterprise.activities.map { |a| a.klass.constantize.find(a.id) }, article.activity | ... | ... |
test/unit/person_test.rb
... | ... | @@ -1249,9 +1249,9 @@ class PersonTest < ActiveSupport::TestCase |
1249 | 1249 | person = create_user.person |
1250 | 1250 | another_person = create_user.person |
1251 | 1251 | |
1252 | - UserStampSweeper.any_instance.stubs(:current_user).returns(another_person) | |
1252 | + User.current = another_person.user | |
1253 | 1253 | scrap = create(Scrap, defaults_for_scrap(:sender => another_person, :receiver => person, :content => 'A scrap')) |
1254 | - UserStampSweeper.any_instance.expects(:current_user).returns(person).at_least_once | |
1254 | + User.current = person.user | |
1255 | 1255 | article = create(TinyMceArticle, :profile => person, :name => 'An article about free software') |
1256 | 1256 | |
1257 | 1257 | assert_equivalent [scrap,article.activity], person.activities.map { |a| a.klass.constantize.find(a.id) } |
... | ... | @@ -1259,17 +1259,17 @@ class PersonTest < ActiveSupport::TestCase |
1259 | 1259 | |
1260 | 1260 | should 'not return tracked_actions and scraps from others as activities' do |
1261 | 1261 | ActionTracker::Record.destroy_all |
1262 | - person = fast_create(Person) | |
1263 | - another_person = fast_create(Person) | |
1262 | + person = create_user.person | |
1263 | + another_person = create_user.person | |
1264 | 1264 | |
1265 | 1265 | person_scrap = create(Scrap, defaults_for_scrap(:sender => person, :receiver => person, :content => 'A scrap from person')) |
1266 | 1266 | another_person_scrap = create(Scrap, defaults_for_scrap(:sender => another_person, :receiver => another_person, :content => 'A scrap from another person')) |
1267 | 1267 | |
1268 | - UserStampSweeper.any_instance.stubs(:current_user).returns(another_person) | |
1268 | + User.current = another_person.user | |
1269 | 1269 | create(TinyMceArticle, :profile => another_person, :name => 'An article about free software from another person') |
1270 | 1270 | another_person_activity = ActionTracker::Record.last |
1271 | 1271 | |
1272 | - UserStampSweeper.any_instance.stubs(:current_user).returns(person) | |
1272 | + User.current = person.user | |
1273 | 1273 | create(TinyMceArticle, :profile => person, :name => 'An article about free software') |
1274 | 1274 | person_activity = ActionTracker::Record.last |
1275 | 1275 | ... | ... |
test/unit/textile_article_test.rb
1 | 1 | require_relative "../test_helper" |
2 | 2 | |
3 | 3 | class TextileArticleTest < ActiveSupport::TestCase |
4 | - | |
4 | + | |
5 | 5 | def setup |
6 | 6 | @profile = create_user('testing').person |
7 | - ActionTracker::Record.stubs(:current_user_from_model).returns(fast_create(Person)) | |
8 | 7 | end |
9 | 8 | attr_reader :profile |
10 | 9 | |
... | ... | @@ -128,7 +127,7 @@ class TextileArticleTest < ActiveSupport::TestCase |
128 | 127 | assert_equal true, a.notifiable? |
129 | 128 | assert_equal true, a.advertise? |
130 | 129 | assert_equal true, a.is_trackable? |
131 | - | |
130 | + | |
132 | 131 | a.published=false |
133 | 132 | assert_equal false, a.published? |
134 | 133 | assert_equal false, a.is_trackable? | ... | ... |
test/unit/uploaded_file_test.rb
... | ... | @@ -325,7 +325,6 @@ class UploadedFileTest < ActiveSupport::TestCase |
325 | 325 | |
326 | 326 | should 'group trackers activity of image\'s upload' do |
327 | 327 | ActionTracker::Record.delete_all |
328 | - ActionTracker::Record.stubs(:current_user_from_model).returns(profile) | |
329 | 328 | gallery = fast_create(Gallery, :profile_id => profile.id) |
330 | 329 | |
331 | 330 | image1 = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => gallery, :profile => profile) | ... | ... |
vendor/plugins/action_tracker/init.rb
vendor/plugins/action_tracker/lib/action_tracker.rb
... | ... | @@ -5,7 +5,6 @@ module ActionTracker |
5 | 5 | module ControllerMethods |
6 | 6 | |
7 | 7 | def self.included(base) |
8 | - base.send :user_stamp, ActionTracker::Record | |
9 | 8 | base.send :extend, ClassMethods |
10 | 9 | end |
11 | 10 | |
... | ... | @@ -42,7 +41,7 @@ module ActionTracker |
42 | 41 | elsif keep_params.to_s == 'all' |
43 | 42 | stored_params = params |
44 | 43 | end |
45 | - user = send ActionTrackerConfig.current_user_method | |
44 | + user = send ActionTrackerConfig.current_user | |
46 | 45 | tracked_action = case ActionTrackerConfig.verb_type(verb) |
47 | 46 | when :groupable |
48 | 47 | Record.add_or_create :verb => verb, :user => user, :params => stored_params |
... | ... | @@ -90,7 +89,7 @@ module ActionTracker |
90 | 89 | |
91 | 90 | def save_action_for_verb(verb, keep_params = :all, post_proc = Proc.new{}, custom_user = nil, custom_target = nil) |
92 | 91 | user = self.send(custom_user) unless custom_user.blank? |
93 | - user ||= ActionTracker::Record.current_user_from_model | |
92 | + user ||= ActionTracker::Record.current_user | |
94 | 93 | target = self.send(custom_target) unless custom_target.blank? |
95 | 94 | return nil if user.nil? |
96 | 95 | if keep_params.is_a? Array |
... | ... | @@ -115,7 +114,7 @@ module ActionTracker |
115 | 114 | end |
116 | 115 | tracked_action.target = target || self |
117 | 116 | user.tracked_actions << tracked_action |
118 | - post_proc.call tracked_action.reload | |
117 | + post_proc.call tracked_action | |
119 | 118 | end |
120 | 119 | |
121 | 120 | end | ... | ... |
vendor/plugins/action_tracker/lib/action_tracker_config.rb
... | ... | @@ -20,12 +20,12 @@ class ActionTrackerConfig |
20 | 20 | verbs.keys.map(&:to_s) |
21 | 21 | end |
22 | 22 | |
23 | - def self.current_user_method | |
24 | - config[:current_user_method] || :current_user | |
23 | + def self.current_user | |
24 | + config[:current_user] || proc{ nil } | |
25 | 25 | end |
26 | 26 | |
27 | - def self.current_user_method=(method_name) | |
28 | - UserStamp.current_user_method = config[:current_user_method] = method_name | |
27 | + def self.current_user= block | |
28 | + config[:current_user] = block | |
29 | 29 | end |
30 | 30 | |
31 | 31 | def self.default_filter_time | ... | ... |
vendor/plugins/action_tracker/lib/action_tracker_model.rb
... | ... | @@ -27,14 +27,12 @@ module ActionTracker |
27 | 27 | scope :recent, :conditions => ['created_at >= ?', RECENT_DELAY.days.ago] |
28 | 28 | scope :visible, :conditions => { :visible => true } |
29 | 29 | |
30 | - def self.current_user_from_model | |
31 | - u = new | |
32 | - u.valid? | |
33 | - u.user | |
30 | + def self.current_user | |
31 | + ActionTrackerConfig.current_user.call | |
34 | 32 | end |
35 | 33 | |
36 | 34 | def self.update_or_create(params) |
37 | - u = params[:user] || current_user_from_model | |
35 | + u = params[:user] || current_user | |
38 | 36 | return if u.nil? |
39 | 37 | target_hash = params[:target].nil? ? {} : {:target_type => params[:target].class.base_class.to_s, :target_id => params[:target].id} |
40 | 38 | conditions = { :user_id => u.id, :user_type => u.class.base_class.to_s, :verb => params[:verb].to_s }.merge(target_hash) |
... | ... | @@ -44,7 +42,7 @@ module ActionTracker |
44 | 42 | end |
45 | 43 | |
46 | 44 | def self.add_or_create(params) |
47 | - u = params[:user] || current_user_from_model | |
45 | + u = params[:user] || current_user | |
48 | 46 | return if u.nil? |
49 | 47 | target_hash = params[:target].nil? ? {} : {:target_type => params[:target].class.base_class.to_s, :target_id => params[:target].id} |
50 | 48 | l = last :conditions => { :user_id => u.id, :user_type => u.class.base_class.to_s, :verb => params[:verb].to_s }.merge(target_hash) | ... | ... |
vendor/plugins/action_tracker/test/action_tracker_config_test.rb
... | ... | @@ -33,16 +33,6 @@ class ActionTrackerConfigTest < ActiveSupport::TestCase |
33 | 33 | %w(search delete login).each { |verb| assert ActionTrackerConfig.verb_names.include?(verb) } |
34 | 34 | end |
35 | 35 | |
36 | - def test_current_user_is_default_method | |
37 | - ActionTrackerConfig.config[:current_user_method] = nil | |
38 | - assert_equal :current_user, ActionTrackerConfig.current_user_method | |
39 | - end | |
40 | - | |
41 | - def test_current_user_can_be_set | |
42 | - ActionTrackerConfig.current_user_method = :logged_in_user | |
43 | - assert_equal :logged_in_user, ActionTrackerConfig.current_user_method | |
44 | - end | |
45 | - | |
46 | 36 | def test_default_filter_time_is_after |
47 | 37 | ActionTrackerConfig.config[:default_filter_time] = nil |
48 | 38 | assert_equal :after, ActionTrackerConfig.default_filter_time |
... | ... | @@ -66,7 +56,7 @@ class ActionTrackerConfigTest < ActiveSupport::TestCase |
66 | 56 | def test_get_verb_return_hash |
67 | 57 | assert_kind_of Hash, ActionTrackerConfig.get_verb(:search) |
68 | 58 | end |
69 | - | |
59 | + | |
70 | 60 | def test_get_verb_symbol_search_by_symbol |
71 | 61 | ActionTrackerConfig.verbs = { :search => { :description => "Got it" } } |
72 | 62 | assert_equal "Got it", ActionTrackerConfig.get_verb(:search)[:description] | ... | ... |
vendor/plugins/action_tracker/test/action_tracker_test.rb
... | ... | @@ -43,10 +43,6 @@ class ThingsController < ActionController::Base |
43 | 43 | render :text => "test" |
44 | 44 | end |
45 | 45 | |
46 | - def current_user | |
47 | - SomeModel.first || SomeModel.create! | |
48 | - end | |
49 | - | |
50 | 46 | def rescue_action(e) |
51 | 47 | raise e |
52 | 48 | end |
... | ... | @@ -58,9 +54,7 @@ ActionController::Routing::Routes.draw { |map| map.resources :things, :collectio |
58 | 54 | class ActionTrackerTest < ActiveSupport::TestCase |
59 | 55 | |
60 | 56 | def setup |
61 | - UserStamp.creator_attribute = :user | |
62 | - UserStamp.updater_attribute = :user | |
63 | - ActionTrackerConfig.current_user_method = :current_user | |
57 | + ActionTrackerConfig.current_user = proc{ SomeModel.first || SomeModel.create! } | |
64 | 58 | ActionTracker::Record.delete_all |
65 | 59 | ActionTrackerConfig.verbs = { :some_verb => { :description => "Did something" } } |
66 | 60 | @request = ActionController::TestRequest.new |
... | ... | @@ -108,7 +102,7 @@ class ActionTrackerTest < ActiveSupport::TestCase |
108 | 102 | end |
109 | 103 | |
110 | 104 | def test_track_actions_executes_block |
111 | - @controller = create_controller do | |
105 | + @controller = create_controller do | |
112 | 106 | track_actions :some_verb do |
113 | 107 | throw :some_symbol |
114 | 108 | end |
... | ... | @@ -162,7 +156,7 @@ class ActionTrackerTest < ActiveSupport::TestCase |
162 | 156 | assert_difference 'ActionTracker::Record.count' do |
163 | 157 | get :index, :foo => 5 |
164 | 158 | end |
165 | - assert_equal({"action"=>"index", "foo"=>"5", "controller"=>"things"}, ActionTracker::Record.first.params) | |
159 | + assert_equal({"action"=>"index", "foo"=>"5", "controller"=>"things"}, ActionTracker::Record.first.params) | |
166 | 160 | end |
167 | 161 | |
168 | 162 | def test_keep_params_not_set_should_store_all_params |
... | ... | @@ -228,16 +222,15 @@ class ActionTrackerTest < ActiveSupport::TestCase |
228 | 222 | def test_store_user |
229 | 223 | @controller = create_controller do |
230 | 224 | track_actions_before :some_verb |
231 | - def current_user | |
232 | - SomeModel.create! :some_column => "test" | |
233 | - end | |
234 | 225 | end |
226 | + ActionTrackerConfig.current_user = proc{ SomeModel.create! :some_column => "test" } | |
227 | + | |
235 | 228 | assert_difference 'ActionTracker::Record.count' do |
236 | 229 | get :test |
237 | 230 | end |
238 | 231 | assert_equal "test", ActionTracker::Record.last.user.some_column |
239 | 232 | end |
240 | - | |
233 | + | |
241 | 234 | def test_should_update_when_verb_is_updatable_and_no_timeout |
242 | 235 | ActionTrackerConfig.verbs = { :some_verb => { :description => "Did something", :type => :updatable } } |
243 | 236 | ActionTrackerConfig.timeout = 5.minutes |
... | ... | @@ -252,7 +245,7 @@ class ActionTrackerTest < ActiveSupport::TestCase |
252 | 245 | assert_no_difference 'ActionTracker::Record.count' do |
253 | 246 | get :test |
254 | 247 | end |
255 | - end | |
248 | + end | |
256 | 249 | |
257 | 250 | def test_should_create_when_verb_is_updatable_and_timeout |
258 | 251 | ActionTrackerConfig.verbs = { :some_verb => { :description => "Did something", :type => :updatable } } |
... | ... | @@ -268,7 +261,7 @@ class ActionTrackerTest < ActiveSupport::TestCase |
268 | 261 | assert_difference 'ActionTracker::Record.count' do |
269 | 262 | get :test |
270 | 263 | end |
271 | - end | |
264 | + end | |
272 | 265 | |
273 | 266 | def test_should_update_when_verb_is_groupable_and_no_timeout |
274 | 267 | ActionTrackerConfig.verbs = { :some_verb => { :description => "Did something", :type => :groupable } } |
... | ... | @@ -284,7 +277,7 @@ class ActionTrackerTest < ActiveSupport::TestCase |
284 | 277 | assert_no_difference 'ActionTracker::Record.count' do |
285 | 278 | get :test, :foo => "test" |
286 | 279 | end |
287 | - end | |
280 | + end | |
288 | 281 | |
289 | 282 | def test_should_create_when_verb_is_groupable_and_timeout |
290 | 283 | ActionTrackerConfig.verbs = { :some_verb => { :description => "Did something", :type => :groupable } } |
... | ... | @@ -330,7 +323,7 @@ class ActionTrackerTest < ActiveSupport::TestCase |
330 | 323 | def test_should_get_time_spent_doing_something |
331 | 324 | ActionTrackerConfig.verbs = { :some_verb => { :type => :updatable }, :other_verb => { :type => :updatable } } |
332 | 325 | m = SomeModel.create! |
333 | - @controller = create_controller do | |
326 | + @controller = create_controller do | |
334 | 327 | track_actions :some_verb |
335 | 328 | end |
336 | 329 | @controller.stubs(:current_user).returns(m) |
... | ... | @@ -394,7 +387,7 @@ class ActionTrackerTest < ActiveSupport::TestCase |
394 | 387 | assert_equal "foo", ActionTracker::Record.last.params["other_column"] |
395 | 388 | assert_nil ActionTracker::Record.last.params["another_column"] |
396 | 389 | end |
397 | - | |
390 | + | |
398 | 391 | def test_replace_dots_by_underline_in_param_name |
399 | 392 | ActionTrackerConfig.verbs = { :test => { :description => "Some" } } |
400 | 393 | model = create_model do |
... | ... | @@ -407,7 +400,7 @@ class ActionTrackerTest < ActiveSupport::TestCase |
407 | 400 | assert_equal 3, ActionTracker::Record.last.params["other_column_size"] |
408 | 401 | assert_equal 5, ActionTracker::Record.last.params["another_column"] |
409 | 402 | end |
410 | - | |
403 | + | |
411 | 404 | def test_track_actions_store_all_params |
412 | 405 | ActionTrackerConfig.verbs = { :test => { :description => "Some" } } |
413 | 406 | model = create_model do |
... | ... | @@ -452,7 +445,7 @@ class ActionTrackerTest < ActiveSupport::TestCase |
452 | 445 | model = create_model { track_actions :test, :after_create, :keep_params => :all, :if => Proc.new { 2 > 1 } } |
453 | 446 | @controller = create_controller_for_model(model) |
454 | 447 | assert_difference('ActionTracker::Record.count') { get :test } |
455 | - | |
448 | + | |
456 | 449 | model = create_model { track_actions :test, :after_create, :keep_params => :all, :if => Proc.new { 2 < 1 } } |
457 | 450 | @controller = create_controller_for_model(model) |
458 | 451 | assert_no_difference('ActionTracker::Record.count') { get :test } |
... | ... | @@ -460,7 +453,7 @@ class ActionTrackerTest < ActiveSupport::TestCase |
460 | 453 | model = create_model { track_actions :test, :after_create, :keep_params => :all, :unless => Proc.new { 2 > 1 } } |
461 | 454 | @controller = create_controller_for_model(model) |
462 | 455 | assert_no_difference('ActionTracker::Record.count') { get :test } |
463 | - | |
456 | + | |
464 | 457 | model = create_model { track_actions :test, :after_create, :keep_params => :all, :unless => Proc.new { 2 < 1 } } |
465 | 458 | @controller = create_controller_for_model(model) |
466 | 459 | assert_difference('ActionTracker::Record.count') { get :test } |
... | ... | @@ -498,13 +491,11 @@ class ActionTrackerTest < ActiveSupport::TestCase |
498 | 491 | ActionTrackerConfig.verbs = { :test => { :description => "Some" } } |
499 | 492 | model = create_model do |
500 | 493 | track_actions :test, :after_create, :custom_user => :test_custom_user |
501 | - def current_user | |
502 | - SomeModel.create! | |
503 | - end | |
504 | 494 | def test_custom_user |
505 | 495 | OtherModel.create! |
506 | 496 | end |
507 | 497 | end |
498 | + ActionTrackerConfig.current_user = proc{ SomeModel.create! } | |
508 | 499 | @controller = create_controller_for_model(model, :another_column => 2) |
509 | 500 | assert_difference('ActionTracker::Record.count') { get :test } |
510 | 501 | assert_kind_of OtherModel, ActionTracker::Record.last.user |
... | ... | @@ -514,13 +505,11 @@ class ActionTrackerTest < ActiveSupport::TestCase |
514 | 505 | ActionTrackerConfig.verbs = { :test => { :description => "Some" } } |
515 | 506 | model = create_model do |
516 | 507 | track_actions :test, :after_create, "custom_user" => :test_custom_user |
517 | - def current_user | |
518 | - SomeModel.create! | |
519 | - end | |
520 | 508 | def test_custom_user |
521 | 509 | OtherModel.create! |
522 | 510 | end |
523 | 511 | end |
512 | + ActionTrackerConfig.current_user = proc{ SomeModel.create! } | |
524 | 513 | @controller = create_controller_for_model(model, :another_column => 2) |
525 | 514 | assert_difference('ActionTracker::Record.count') { get :test } |
526 | 515 | assert_kind_of OtherModel, ActionTracker::Record.last.user |
... | ... | @@ -530,13 +519,11 @@ class ActionTrackerTest < ActiveSupport::TestCase |
530 | 519 | ActionTrackerConfig.verbs = { :test => { :description => "Some" } } |
531 | 520 | model = create_model do |
532 | 521 | track_actions :test, :after_create |
533 | - def current_user | |
534 | - SomeModel.create! | |
535 | - end | |
536 | 522 | def test_custom_user |
537 | 523 | OtherModel.create! |
538 | 524 | end |
539 | 525 | end |
526 | + ActionTrackerConfig.current_user = proc{ SomeModel.create! } | |
540 | 527 | @controller = create_controller_for_model(model, :another_column => 2) |
541 | 528 | assert_difference('ActionTracker::Record.count') { get :test } |
542 | 529 | assert_kind_of SomeModel, ActionTracker::Record.last.user |
... | ... | @@ -625,10 +612,8 @@ class ActionTrackerTest < ActiveSupport::TestCase |
625 | 612 | render :text => "test" |
626 | 613 | end |
627 | 614 | |
628 | - def current_user | |
629 | - SomeModel.create! :some_column => "test" | |
630 | - end | |
631 | 615 | end |
616 | + ActionTrackerConfig.current_user = proc{ SomeModel.create! :some_column => "test" } | |
632 | 617 | end |
633 | 618 | |
634 | 619 | end | ... | ... |
vendor/plugins/user_stamp/MIT-LICENSE
... | ... | @@ -1,20 +0,0 @@ |
1 | -Copyright (c) 2008 [John Nunemaker] | |
2 | - | |
3 | -Permission is hereby granted, free of charge, to any person obtaining | |
4 | -a copy of this software and associated documentation files (the | |
5 | -"Software"), to deal in the Software without restriction, including | |
6 | -without limitation the rights to use, copy, modify, merge, publish, | |
7 | -distribute, sublicense, and/or sell copies of the Software, and to | |
8 | -permit persons to whom the Software is furnished to do so, subject to | |
9 | -the following conditions: | |
10 | - | |
11 | -The above copyright notice and this permission notice shall be | |
12 | -included in all copies or substantial portions of the Software. | |
13 | - | |
14 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
15 | -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
16 | -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
17 | -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | |
18 | -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | |
19 | -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
20 | -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
vendor/plugins/user_stamp/README
... | ... | @@ -1,37 +0,0 @@ |
1 | -= UserStamp | |
2 | - | |
3 | -Rails plugin that makes stamping records with a user when they are | |
4 | -created and updated dirt simple. It assumes that your controller has | |
5 | -a current_user method. It also assumes that any record being stamped | |
6 | -has two attributes--creator_id and updater_id. You can override both | |
7 | -of these assumptions easily. | |
8 | - | |
9 | -== Setup | |
10 | - | |
11 | -1. script/plugin install git://github.com/jnunemaker/user_stamp.git | |
12 | -2. Add user_stamp to application.rb, like the following: | |
13 | - | |
14 | - class ApplicationController < ActionController::Base | |
15 | - user_stamp Post, Asset, Job | |
16 | - end | |
17 | - | |
18 | - | |
19 | -== Defaults | |
20 | - | |
21 | - UserStamp.creator_attribute = :creator_id | |
22 | - UserStamp.updater_attribute = :updater_id | |
23 | - UserStamp.current_user_method = :current_user | |
24 | - | |
25 | -If your user stamped columns and current_user method are different, | |
26 | -just create an initializer such as config/initializers/user_stamp.rb | |
27 | -and copy and paste the defaults above, changing them to fit your app. | |
28 | - | |
29 | -== Problems? | |
30 | - | |
31 | -Use the issue tracker on Github. | |
32 | - | |
33 | -== Docs | |
34 | - | |
35 | -http://rdoc.info/projects/jnunemaker/user_stamp | |
36 | - | |
37 | -Copyright (c) 2008 [John Nunemaker], released under the MIT license |
vendor/plugins/user_stamp/Rakefile
... | ... | @@ -1,11 +0,0 @@ |
1 | -require 'rake' | |
2 | -require 'spec/rake/spectask' | |
3 | - | |
4 | -desc 'Default: run specs.' | |
5 | -task :default => :spec | |
6 | - | |
7 | -desc 'Run the specs' | |
8 | -Spec::Rake::SpecTask.new(:spec) do |t| | |
9 | - t.spec_opts = ['--colour --format progress --loadby mtime --reverse'] | |
10 | - t.spec_files = FileList['spec/**/*_spec.rb'] | |
11 | -end | |
12 | 0 | \ No newline at end of file |
vendor/plugins/user_stamp/init.rb
vendor/plugins/user_stamp/install.rb
... | ... | @@ -1,15 +0,0 @@ |
1 | -instructions = <<EOF | |
2 | - | |
3 | -#{'*' * 62} | |
4 | -Don't forget to add user stamp to your application controller. | |
5 | - | |
6 | - class ApplicationController < ActionController::Base | |
7 | - user_stamp Post, Asset, Job | |
8 | - end | |
9 | - | |
10 | -View the README for more information. | |
11 | -#{'*' * 62} | |
12 | - | |
13 | -EOF | |
14 | - | |
15 | -puts instructions | |
16 | 0 | \ No newline at end of file |
vendor/plugins/user_stamp/lib/user_stamp.rb
... | ... | @@ -1,50 +0,0 @@ |
1 | -module UserStamp | |
2 | - mattr_accessor :creator_attribute | |
3 | - mattr_accessor :updater_attribute | |
4 | - mattr_accessor :current_user_method | |
5 | - | |
6 | - def self.creator_assignment_method | |
7 | - "#{UserStamp.creator_attribute}=" | |
8 | - end | |
9 | - | |
10 | - def self.updater_assignment_method | |
11 | - "#{UserStamp.updater_attribute}=" | |
12 | - end | |
13 | - | |
14 | - module ClassMethods | |
15 | - def user_stamp(*models) | |
16 | - models.each { |klass| UserStampSweeper.observe(klass) } | |
17 | - | |
18 | - class_eval do | |
19 | - cache_sweeper :user_stamp_sweeper | |
20 | - end | |
21 | - end | |
22 | - end | |
23 | -end | |
24 | - | |
25 | -UserStamp.creator_attribute = :creator_id | |
26 | -UserStamp.updater_attribute = :updater_id | |
27 | -UserStamp.current_user_method = :current_user | |
28 | - | |
29 | -class UserStampSweeper < ActionController::Caching::Sweeper | |
30 | - def before_validation(record) | |
31 | - return unless current_user | |
32 | - | |
33 | - attribute, method = UserStamp.creator_attribute, UserStamp.creator_assignment_method | |
34 | - if record.respond_to?(method) && record.new_record? | |
35 | - record.send(method, current_user) unless record.send("#{attribute}_id_changed?") || record.send("#{attribute}_type_changed?") | |
36 | - end | |
37 | - | |
38 | - attribute, method = UserStamp.updater_attribute, UserStamp.updater_assignment_method | |
39 | - if record.respond_to?(method) | |
40 | - record.send(method, current_user) if record.send(attribute).blank? | |
41 | - end | |
42 | - end | |
43 | - | |
44 | - private | |
45 | - def current_user | |
46 | - if controller.respond_to?(UserStamp.current_user_method) | |
47 | - controller.send UserStamp.current_user_method | |
48 | - end | |
49 | - end | |
50 | -end |
vendor/plugins/user_stamp/spec/spec_helper.rb
... | ... | @@ -1,24 +0,0 @@ |
1 | -require 'rubygems' | |
2 | - | |
3 | -gem 'rspec' | |
4 | -require 'spec' | |
5 | - | |
6 | -%w[activesupport activerecord actionpack].each do |lib| | |
7 | - gem lib | |
8 | - require lib | |
9 | -end | |
10 | - | |
11 | -require 'action_controller' | |
12 | - | |
13 | -$:.unshift File.join(File.dirname(__FILE__), '..', 'lib') | |
14 | -require 'user_stamp' | |
15 | - | |
16 | -UserStampSweeper.instance | |
17 | - | |
18 | -class User | |
19 | - attr_accessor :id | |
20 | - | |
21 | - def initialize(id); | |
22 | - @id = id | |
23 | - end | |
24 | -end |
vendor/plugins/user_stamp/spec/user_stamp_class_methods_spec.rb
... | ... | @@ -1,51 +0,0 @@ |
1 | -require File.dirname(__FILE__) + '/spec_helper' | |
2 | - | |
3 | -class FauxModelBase | |
4 | - def self.add_observer(observer_instance); end | |
5 | -end | |
6 | - | |
7 | -class Post < FauxModelBase; end | |
8 | -class Category < FauxModelBase; end | |
9 | -class Label < FauxModelBase; end | |
10 | - | |
11 | -class FauxApplicationController | |
12 | - def self.cache_sweeper(sweepers); end | |
13 | - | |
14 | - def self.current_user | |
15 | - User.new(220) | |
16 | - end | |
17 | -end | |
18 | - | |
19 | -class PostsController < FauxApplicationController | |
20 | - extend UserStamp::ClassMethods | |
21 | -end | |
22 | - | |
23 | -describe UserStamp::ClassMethods do | |
24 | - before do | |
25 | - UserStamp.creator_attribute = :creator_id | |
26 | - UserStamp.updater_attribute = :updater_id | |
27 | - UserStamp.current_user_method = :current_user | |
28 | - end | |
29 | - | |
30 | - it "should add user_stamp method" do | |
31 | - PostsController.respond_to?(:user_stamp).should == true | |
32 | - end | |
33 | - | |
34 | - def user_stamp | |
35 | - PostsController.user_stamp Post, Category, Label | |
36 | - end | |
37 | - | |
38 | - describe "#user_stamp" do | |
39 | - it "should add UserStampSweeper as observer for each model" do | |
40 | - [Post, Category, Label].each do |klass| | |
41 | - klass.should_receive(:add_observer).with(UserStampSweeper.instance).once | |
42 | - end | |
43 | - user_stamp | |
44 | - end | |
45 | - | |
46 | - it "should setup cache sweeper for controller" do | |
47 | - PostsController.should_receive(:cache_sweeper).with(:user_stamp_sweeper).once | |
48 | - user_stamp | |
49 | - end | |
50 | - end | |
51 | -end | |
52 | 0 | \ No newline at end of file |
vendor/plugins/user_stamp/spec/user_stamp_spec.rb
... | ... | @@ -1,51 +0,0 @@ |
1 | -require File.dirname(__FILE__) + '/spec_helper' | |
2 | - | |
3 | -describe UserStamp do | |
4 | - before do | |
5 | - UserStamp.creator_attribute = :creator_id | |
6 | - UserStamp.updater_attribute = :updater_id | |
7 | - UserStamp.current_user_method = :current_user | |
8 | - end | |
9 | - | |
10 | - it "should default creator_attribute to creator_id" do | |
11 | - UserStamp.creator_attribute.should == :creator_id | |
12 | - end | |
13 | - | |
14 | - it "should default updater_attribute to updater_id" do | |
15 | - UserStamp.updater_attribute.should == :updater_id | |
16 | - end | |
17 | - | |
18 | - it "should default current_user_method to current_user" do | |
19 | - UserStamp.current_user_method.should == :current_user | |
20 | - end | |
21 | - | |
22 | - it "should have accessor for creator_attribute" do | |
23 | - UserStamp.creator_attribute = 'mofo_id' | |
24 | - UserStamp.creator_attribute.should == 'mofo_id' | |
25 | - end | |
26 | - | |
27 | - it "should have accessor for updater_attribute" do | |
28 | - UserStamp.updater_attribute = 'mofo_id' | |
29 | - UserStamp.updater_attribute.should == 'mofo_id' | |
30 | - end | |
31 | - | |
32 | - it "should have accessor for current_user_method" do | |
33 | - UserStamp.current_user_method = 'my_current_user' | |
34 | - UserStamp.current_user_method.should == 'my_current_user' | |
35 | - end | |
36 | - | |
37 | - describe "assignment methods" do | |
38 | - before do | |
39 | - UserStamp.creator_attribute = 'creator_mofo_id' | |
40 | - UserStamp.updater_attribute = 'updater_mofo_id' | |
41 | - end | |
42 | - | |
43 | - it "should include creator assignment method" do | |
44 | - UserStamp.creator_assignment_method.should == 'creator_mofo_id=' | |
45 | - end | |
46 | - | |
47 | - it "should include updater assignment method" do | |
48 | - UserStamp.updater_assignment_method.should == 'updater_mofo_id=' | |
49 | - end | |
50 | - end | |
51 | -end | |
52 | 0 | \ No newline at end of file |
vendor/plugins/user_stamp/spec/user_stamp_sweeper_spec.rb
... | ... | @@ -1,194 +0,0 @@ |
1 | -require File.dirname(__FILE__) + '/spec_helper' | |
2 | - | |
3 | -class PostsController | |
4 | - def self.current_user | |
5 | - @@user | |
6 | - end | |
7 | -end | |
8 | - | |
9 | -describe UserStampSweeper, "#before_validation" do | |
10 | - before do | |
11 | - @@user = User.new(220) | |
12 | - UserStamp.creator_attribute = :creator | |
13 | - UserStamp.updater_attribute = :updater | |
14 | - UserStamp.current_user_method = :current_user | |
15 | - @sweeper = UserStampSweeper.instance | |
16 | - @sweeper.stub!(:controller).and_return(PostsController) | |
17 | - end | |
18 | - | |
19 | - describe "(with new record)" do | |
20 | - it "should set creator if attribute exists" do | |
21 | - record = mock('Record', :creator= => nil, :updater= => nil, :new_record? => true, :updater => nil, :creator_id_changed? => false, :creator_type_changed? => false, :updater_id_changed? => false, :updater_type_changed? => false) | |
22 | - record.should_receive(:creator=).with(@@user).once | |
23 | - @sweeper.before_validation(record) | |
24 | - end | |
25 | - | |
26 | - it "should NOT set creator if attribute does not exist" do | |
27 | - record = mock('Record', :new_record? => true, :updater= => nil, :respond_to? => false) | |
28 | - record.should_receive(:respond_to?).with("creator=").and_return(false) | |
29 | - record.should_not_receive(:creator=) | |
30 | - @sweeper.before_validation(record) | |
31 | - end | |
32 | - end | |
33 | - | |
34 | - describe "(with non new record)" do | |
35 | - it "should NOT set creator if attribute exists" do | |
36 | - record = mock('Record', :creator= => nil, :updater= => nil, :updater => nil, :new_record? => false, :creator_id_changed? => false, :creator_type_changed? => false, :updater_id_changed? => false, :updater_type_changed? => false) | |
37 | - record.should_not_receive(:creator=) | |
38 | - @sweeper.before_validation(record) | |
39 | - end | |
40 | - | |
41 | - it "should NOT set creator if attribute does not exist" do | |
42 | - record = mock('Record', :updater= => nil, :updater => nil, :new_record? => false, :creator_id_changed? => false, :creator_type_changed? => false, :updater_id_changed? => false, :updater_type_changed? => false) | |
43 | - record.should_not_receive(:creator=) | |
44 | - @sweeper.before_validation(record) | |
45 | - end | |
46 | - end | |
47 | - | |
48 | - it "should set updater if attribute exists" do | |
49 | - record = mock('Record', :creator= => nil, :updater= => nil, :new_record? => false, :updater => nil) | |
50 | - record.should_receive(:updater=) | |
51 | - @sweeper.before_validation(record) | |
52 | - end | |
53 | - | |
54 | - it "should NOT set updater if attribute does not exist" do | |
55 | - record = mock('Record', :creator= => nil, :updater= => nil, :new_record? => :false, :respond_to? => false) | |
56 | - record.should_receive(:respond_to?).with("updater=").and_return(false) | |
57 | - record.should_not_receive(:updater=) | |
58 | - @sweeper.before_validation(record) | |
59 | - end | |
60 | -end | |
61 | - | |
62 | -describe UserStampSweeper, "#before_validation (with custom attribute names)" do | |
63 | - before do | |
64 | - UserStamp.creator_attribute = :created_by | |
65 | - UserStamp.updater_attribute = :updated_by | |
66 | - UserStamp.current_user_method = :current_user | |
67 | - @sweeper = UserStampSweeper.instance | |
68 | - @sweeper.stub!(:controller).and_return(PostsController) | |
69 | - end | |
70 | - | |
71 | - describe "(with new record)" do | |
72 | - it "should set created_by if attribute exists" do | |
73 | - record = mock('Record', :created_by= => nil, :updated_by => nil, :updated_by= => nil, :new_record? => true, :created_by_id_changed? => false, :created_by_type_changed? => false, :updated_by_id_changed? => false, :updated_by_type_changed? => false) | |
74 | - record.should_receive(:created_by=).with(@@user).once | |
75 | - @sweeper.before_validation(record) | |
76 | - end | |
77 | - | |
78 | - it "should NOT set created_by if attribute does not exist" do | |
79 | - record = mock('Record', :new_record? => true, :updated_by= => nil, :respond_to? => false) | |
80 | - record.should_receive(:respond_to?).with("created_by=").and_return(false) | |
81 | - record.should_not_receive(:created_by=) | |
82 | - @sweeper.before_validation(record) | |
83 | - end | |
84 | - end | |
85 | - | |
86 | - describe "(with non new record)" do | |
87 | - it "should NOT set created_by if attribute exists" do | |
88 | - record = mock('Record', :created_by= => nil, :updated_by => nil, :updated_by= => nil, :new_record? => false, :updated_by_id_changed? => false, :updated_by_type_changed? => false) | |
89 | - record.should_not_receive(:created_by=) | |
90 | - @sweeper.before_validation(record) | |
91 | - end | |
92 | - | |
93 | - it "should NOT set created_by if attribute does not exist" do | |
94 | - record = mock('Record', :updated_by= => nil, :updated_by => nil, :new_record? => false, :updated_by_id_changed? => false, :updated_by_type_changed? => false) | |
95 | - record.should_not_receive(:created_by=) | |
96 | - @sweeper.before_validation(record) | |
97 | - end | |
98 | - end | |
99 | - | |
100 | - it "should set updated_by if attribute exists" do | |
101 | - record = mock('Record', :created_by= => nil, :updated_by= => nil, :updated_by => nil, :new_record? => :false, :created_by_id_changed? => false, :created_by_type_changed? => false, :updated_by_id_changed? => false, :updated_by_type_changed? => false) | |
102 | - record.should_receive(:updated_by=) | |
103 | - @sweeper.before_validation(record) | |
104 | - end | |
105 | - | |
106 | - it "should NOT set updated_by if attribute does not exist" do | |
107 | - record = mock('Record', :created_by= => nil, :updated_by= => nil, :new_record? => :false, :respond_to? => false) | |
108 | - record.should_receive(:respond_to?).with("updated_by=").and_return(false) | |
109 | - record.should_not_receive(:updated_by=) | |
110 | - @sweeper.before_validation(record) | |
111 | - end | |
112 | - | |
113 | - it "should NOT set created_by if attribute changed" do | |
114 | - record = mock('Record', :created_by= => nil, :updated_by= => nil, :new_record? => true, :created_by_id_changed? => true, :created_by_type_changed? => true) | |
115 | - record.should_receive(:respond_to?).with("updated_by=").and_return(false) | |
116 | - record.should_receive(:respond_to?).with("created_by=").and_return(true) | |
117 | - record.should_not_receive(:created_by=) | |
118 | - @sweeper.before_validation(record) | |
119 | - end | |
120 | - | |
121 | - it "should NOT set updated_by if attribute is not nil" do | |
122 | - record = mock('Record', :created_by= => nil, :updated_by= => nil, :updated_by => 1, :new_record? => false) | |
123 | - record.should_receive(:respond_to?).with("updated_by=").and_return(true) | |
124 | - record.should_receive(:respond_to?).with("created_by=").and_return(false) | |
125 | - record.should_not_receive(:updated_by=) | |
126 | - @sweeper.before_validation(record) | |
127 | - end | |
128 | - | |
129 | - it "should set created_by if attribute has not changed" do | |
130 | - record = mock('Record', :created_by= => nil, :updated_by= => nil, :new_record? => true, :created_by_id_changed? => false, :created_by_type_changed? => false) | |
131 | - record.should_receive(:respond_to?).with("updated_by=").and_return(false) | |
132 | - record.should_receive(:respond_to?).with("created_by=").and_return(true) | |
133 | - record.should_receive(:created_by=) | |
134 | - @sweeper.before_validation(record) | |
135 | - end | |
136 | - | |
137 | - it "should set updated_by if attribute is nil" do | |
138 | - record = mock('Record', :created_by= => nil, :updated_by= => nil, :updated_by => nil, :new_record? => false) | |
139 | - record.should_receive(:respond_to?).with("updated_by=").and_return(true) | |
140 | - record.should_receive(:respond_to?).with("created_by=").and_return(false) | |
141 | - record.should_receive(:updated_by=) | |
142 | - @sweeper.before_validation(record) | |
143 | - end | |
144 | -end | |
145 | - | |
146 | -describe UserStampSweeper, "#current_user" do | |
147 | - before do | |
148 | - UserStamp.creator_attribute = :creator | |
149 | - UserStamp.updater_attribute = :updater | |
150 | - UserStamp.current_user_method = :current_user | |
151 | - @sweeper = UserStampSweeper.instance | |
152 | - end | |
153 | - | |
154 | - it "should send current_user if controller responds to it" do | |
155 | - user = mock('User') | |
156 | - controller = mock('Controller', :current_user => user) | |
157 | - @sweeper.stub!(:controller).and_return(controller) | |
158 | - controller.should_receive(:current_user) | |
159 | - @sweeper.send(:current_user) | |
160 | - end | |
161 | - | |
162 | - it "should not send current_user if controller does not respond to it" do | |
163 | - user = mock('User') | |
164 | - controller = mock('Controller', :respond_to? => false) | |
165 | - @sweeper.stub!(:controller).and_return(controller) | |
166 | - controller.should_not_receive(:current_user) | |
167 | - @sweeper.send(:current_user) | |
168 | - end | |
169 | -end | |
170 | - | |
171 | -describe UserStampSweeper, "#current_user (with custom current_user_method)" do | |
172 | - before do | |
173 | - UserStamp.creator_attribute = :creator | |
174 | - UserStamp.updater_attribute = :updater | |
175 | - UserStamp.current_user_method = :my_user | |
176 | - @sweeper = UserStampSweeper.instance | |
177 | - end | |
178 | - | |
179 | - it "should send current_user if controller responds to it" do | |
180 | - user = mock('User') | |
181 | - controller = mock('Controller', :my_user => user) | |
182 | - @sweeper.stub!(:controller).and_return(controller) | |
183 | - controller.should_receive(:my_user) | |
184 | - @sweeper.send(:current_user) | |
185 | - end | |
186 | - | |
187 | - it "should not send current_user if controller does not respond to it" do | |
188 | - user = mock('User') | |
189 | - controller = mock('Controller', :respond_to? => false) | |
190 | - @sweeper.stub!(:controller).and_return(controller) | |
191 | - controller.should_not_receive(:my_user) | |
192 | - @sweeper.send(:current_user) | |
193 | - end | |
194 | -end |