summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Sørensen <johan@johansorensen.com>2009-12-10 12:49:50 +0100
committerJohan Sørensen <johan@johansorensen.com>2009-12-10 13:54:54 +0100
commitf0f1234cb355a32ba1fc1a7fc0ad1aebe8dea8ff (patch)
tree5fb365dc2f450cc592d4243081c10996aee0a681
parentb56343d1811d699e8d93ad1ebef1620058a152f4 (diff)
downloadgitorious-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.rb6
-rw-r--r--app/models/repository.rb7
-rw-r--r--test/unit/favorite_test.rb3
-rw-r--r--test/unit/repository_test.rb9
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