OSDN Git Service

Rebase on master
authorIzaak Alpert <ialpert@blackberry.com>
Wed, 26 Jun 2013 20:45:57 +0000 (16:45 -0400)
committerIzaak Alpert <ialpert@blackberry.com>
Thu, 18 Jul 2013 02:45:03 +0000 (22:45 -0400)
Trying to retrigger travis
Change-Id: Ifd86fb4c6b2791ad176230254fbf69a9ade979fb

app/models/merge_request.rb
app/observers/merge_request_observer.rb
features/steps/project/project_merge_requests.rb
spec/contexts/filter_context_spec.rb
spec/services/notification_service_spec.rb

index 050dc49..b5d1a34 100644 (file)
@@ -105,11 +105,11 @@ class MergeRequest < ActiveRecord::Base
     end
 
     if opened? || reopened?
-      similar_mrs = self.project.merge_requests.where(source_branch: source_branch, target_branch: target_branch).opened
+      similar_mrs = self.target_project.merge_requests.where(source_branch: source_branch, target_branch: target_branch, source_project_id: source_project.id).opened
       similar_mrs = similar_mrs.where('id not in (?)', self.id) if self.id
 
       if similar_mrs.any?
-        errors.add :base, "There is already an open merge request for this branches"
+        errors.add :base, "Cannot Create: This merge request already exists: #{similar_mrs.pluck(:title)}"
       end
     end
   end
index 6260b79..2c6cfd2 100644 (file)
@@ -1,6 +1,5 @@
 class MergeRequestObserver < ActivityObserver
   observe :merge_request
-  cattr_accessor :current_user
 
   def after_create(merge_request)
     event_author_id = merge_request.author_id
index 0ebfe96..64dde14 100644 (file)
@@ -57,11 +57,17 @@ class ProjectMergeRequests < Spinach::FeatureSteps
   end
 
   And 'I submit new merge request "Wiki Feature"' do
-    fill_in "merge_request_title", :with => "Wiki Feature"
+    #this must come first, so that the target branch is set by the time the "select" for "notes_refactoring" is executed
     select project.path_with_namespace, :from => "merge_request_target_project_id"
+    fill_in "merge_request_title", :with => "Wiki Feature"
     select "master", :from => "merge_request_source_branch"
-    select "stable", :from => "merge_request_target_branch"
-    find(:select, "merge_request_target_branch", {}).find(:option, "stable", {}).value.should == "stable"
+    find(:select, "merge_request_target_project_id", {}).value.should == project.id.to_s
+    find(:select, "merge_request_source_project_id", {}).value.should == project.id.to_s
+
+    #using "notes_refactoring" because "Bug NS-04" uses master/stable, this will fail merge_request validation if the branches are the same
+    find(:select, "merge_request_target_branch", {}).find(:option, "notes_refactoring", {}).value.should == "notes_refactoring"
+    select "notes_refactoring", :from => "merge_request_target_branch"
+
     click_button "Submit merge request"
   end
 
index 1732353..0ecdb74 100644 (file)
@@ -9,7 +9,7 @@ describe FilterContext do
   let(:merge_request1) { create(:merge_request, author_id: user.id, source_project: project1, target_project: project2) }
   let(:merge_request2) { create(:merge_request, author_id: user.id, source_project: project2, target_project: project1) }
   let(:merge_request3) { create(:merge_request, author_id: user.id, source_project: project2, target_project: project2) }
-  let(:merge_request4) { create(:merge_request, author_id: user2.id, source_project: project2, target_project: project2) }
+  let(:merge_request4) { create(:merge_request, author_id: user2.id, source_project: project2, target_project: project2, target_branch:"notes_refactoring") }
   let(:issue1) { create(:issue, assignee_id: user.id, project: project1) }
   let(:issue2) { create(:issue, assignee_id: user.id, project: project2) }
   let(:issue3) { create(:issue, assignee_id: user2.id, project: project2) }
index 1a7a866..8428326 100644 (file)
@@ -232,11 +232,16 @@ describe NotificationService do
     end
   end
 
+  let(:u_watcher) { create(:user, notification_level: Notification::N_WATCH) }
+  let(:u_participating) { create(:user, notification_level: Notification::N_PARTICIPATING) }
+  let(:u_disabled) { create(:user, notification_level: Notification::N_DISABLED) }
+  let(:u_mentioned) { create(:user, username: 'mention', notification_level: Notification::N_WATCH) }
+
   def build_team(project)
-    @u_watcher = create(:user, notification_level: Notification::N_WATCH)
-    @u_participating = create(:user, notification_level: Notification::N_PARTICIPATING)
-    @u_disabled = create(:user, notification_level: Notification::N_DISABLED)
-    @u_mentioned = create(:user, username: 'mention', notification_level: Notification::N_WATCH)
+    @u_watcher = u_watcher
+    @u_participating = u_participating
+    @u_disabled = u_disabled
+    @u_mentioned = u_mentioned
 
     project.team << [@u_watcher, :master]
     project.team << [@u_participating, :master]