summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/compare_controller.rb7
-rw-r--r--config/routes.rb2
-rw-r--r--spec/routing/project_routing_spec.rb5
3 files changed, 13 insertions, 1 deletions
diff --git a/app/controllers/compare_controller.rb b/app/controllers/compare_controller.rb
index 1124fd0caa3..62f968fd1ed 100644
--- a/app/controllers/compare_controller.rb
+++ b/app/controllers/compare_controller.rb
@@ -8,6 +8,9 @@ class CompareController < ApplicationController
before_filter :authorize_code_access!
before_filter :require_non_empty_project
+ def index
+ end
+
def show
result = Commit.compare(project, params[:from], params[:to])
@@ -19,4 +22,8 @@ class CompareController < ApplicationController
@commits = CommitDecorator.decorate(@commits)
end
+
+ def create
+ redirect_to project_compare_path(@project, params[:from], params[:to])
+ end
end
diff --git a/config/routes.rb b/config/routes.rb
index bc29314e8c5..decf860b143 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -162,7 +162,7 @@ Gitlab::Application.routes.draw do
# XXX: WIP
resources :commit, only: [:show], constraints: {id: /[[:alnum:]]{6,40}/}
resources :commits, only: [:show], constraints: {id: /.+/}
- resources :compare, only: [:index]
+ resources :compare, only: [:index, :create]
resources :blame, only: [:show], constraints: {id: /.+/}
resources :blob, only: [:show], constraints: {id: /.+/}
resources :tree, only: [:show], constraints: {id: /.+/}
diff --git a/spec/routing/project_routing_spec.rb b/spec/routing/project_routing_spec.rb
index 652a75a4ce6..dc687d2a7ac 100644
--- a/spec/routing/project_routing_spec.rb
+++ b/spec/routing/project_routing_spec.rb
@@ -399,12 +399,17 @@ describe TreeController, "routing" do
end
# project_compare_index GET /:project_id/compare(.:format) compare#index {:id=>/[^\/]+/, :project_id=>/[^\/]+/}
+# POST /:project_id/compare(.:format) compare#create {:id=>/[^\/]+/, :project_id=>/[^\/]+/}
# project_compare /:project_id/compare/:from...:to(.:format) compare#show {:from=>/.+/, :to=>/.+/, :id=>/[^\/]+/, :project_id=>/[^\/]+/}
describe CompareController, "routing" do
it "to #index" do
get("/gitlabhq/compare").should route_to('compare#index', project_id: 'gitlabhq')
end
+ it "to #compare" do
+ post("/gitlabhq/compare").should route_to('compare#create', project_id: 'gitlabhq')
+ end
+
it "to #show" do
get("/gitlabhq/compare/master...stable").should route_to('compare#show', project_id: 'gitlabhq', from: 'master', to: 'stable')
get("/gitlabhq/compare/issue/1234...stable").should route_to('compare#show', project_id: 'gitlabhq', from: 'issue/1234', to: 'stable')