diff options
author | Johan Sørensen <johan@johansorensen.com> | 2009-12-10 12:49:50 +0100 |
---|---|---|
committer | Johan Sørensen <johan@johansorensen.com> | 2009-12-10 13:54:54 +0100 |
commit | f0f1234cb355a32ba1fc1a7fc0ad1aebe8dea8ff (patch) | |
tree | 5fb365dc2f450cc592d4243081c10996aee0a681 | |
parent | b56343d1811d699e8d93ad1ebef1620058a152f4 (diff) | |
download | gitorious-mainline-outdated-f0f1234cb355a32ba1fc1a7fc0ad1aebe8dea8ff.zip gitorious-mainline-outdated-f0f1234cb355a32ba1fc1a7fc0ad1aebe8dea8ff.tar.gz gitorious-mainline-outdated-f0f1234cb355a32ba1fc1a7fc0ad1aebe8dea8ff.tar.bz2 |
Add repository user as a watcher when creating a new repository
-rw-r--r-- | app/models/merge_request.rb | 6 | ||||
-rw-r--r-- | app/models/repository.rb | 7 | ||||
-rw-r--r-- | test/unit/favorite_test.rb | 3 | ||||
-rw-r--r-- | test/unit/repository_test.rb | 9 |
4 files changed, 20 insertions, 5 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 25cb426..5f4fbc1 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -373,10 +373,10 @@ class MergeRequest < ActiveRecord::Base def notify_subscribers_about_creation reviewers.each { |reviewer| - add_to_reviewers_favorites(reviewer) + add_to_reviewers_favorites(reviewer) } if event = creation_event - FeedItem.bulk_create_from_watcher_list_and_event!(reviewers.map(&:id), event) + FeedItem.bulk_create_from_watcher_list_and_event!(reviewers.map(&:id), event) end end @@ -636,6 +636,6 @@ class MergeRequest < ActiveRecord::Base end def add_to_creators_favorites - user.favorites.create(:watchable => self) + watched_by!(user) end end diff --git a/app/models/repository.rb b/app/models/repository.rb index bd73518..17f2bd9 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -67,7 +67,8 @@ class Repository < ActiveRecord::Base before_create :set_repository_hash after_create :create_initial_committership after_create :create_add_event_if_project_repo - after_create :post_repo_creation_message + after_create :post_repo_creation_message + after_create :add_owner_as_watchers after_destroy :post_repo_deletion_message throttle_records :create, :limit => 5, @@ -710,6 +711,10 @@ class Repository < ActiveRecord::Base end end + def add_owner_as_watchers + watched_by!(user) + end + private def self.create_hooks(path) hooks = File.join(GitoriousConfig["repository_base_path"], ".hooks") diff --git a/test/unit/favorite_test.rb b/test/unit/favorite_test.rb index 0b1b9f8..2c9bbf2 100644 --- a/test/unit/favorite_test.rb +++ b/test/unit/favorite_test.rb @@ -37,13 +37,14 @@ class FavoriteTest < ActiveSupport::TestCase context "Watching a repository" do setup do @user, @project, @repo = create_favorited_repo + @user.favorites.destroy_all end should "be linked with user's favorites" do favorite = @user.favorites.build(:watchable => @repo) assert_equal @repo, favorite.watchable assert_equal @user, favorite.user - assert favorite.save + favorite.save! assert @user.favorites.include?(favorite) end diff --git a/test/unit/repository_test.rb b/test/unit/repository_test.rb index 112b99e..d15be86 100644 --- a/test/unit/repository_test.rb +++ b/test/unit/repository_test.rb @@ -1048,7 +1048,16 @@ class RepositoryTest < ActiveSupport::TestCase assert_equal(100, @repository.next_merge_request_sequence_number) end + end + should "add the owner as a watcher when creating a clone" do + user = users(:mike) + repo = Repository.new_by_cloning(repositories(:johans), "mike") + repo.user = repo.owner = user + assert_difference("user.favorites.reload.count") do + repo.save! + end + assert repo.reload.watched_by?(user) end end |