Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/contexts/projects/create_context.rb10
-rw-r--r--app/controllers/projects_controller.rb2
-rw-r--r--lib/api/projects.rb2
-rw-r--r--spec/contexts/projects_create_context_spec.rb38
-rw-r--r--spec/models/project_spec.rb30
5 files changed, 47 insertions, 35 deletions
diff --git a/app/contexts/projects/create_context.rb b/app/contexts/projects/create_context.rb
index 5329443c5f7..e644d89a356 100644
--- a/app/contexts/projects/create_context.rb
+++ b/app/contexts/projects/create_context.rb
@@ -1,10 +1,14 @@
module Projects
class CreateContext < BaseContext
+ def initialize(user, params)
+ @current_user, @params = user, params.dup
+ end
+
def execute
# get namespace id
- namespace_id = params[:project].delete(:namespace_id)
+ namespace_id = params.delete(:namespace_id)
- @project = Project.new(params[:project])
+ @project = Project.new(params)
# Parametrize path for project
#
@@ -25,7 +29,7 @@ module Projects
end
else
# Set current user namespace if namespace_id is nil
- @project.namespace_id = current_user.id
+ @project.namespace_id = current_user.namespace_id
end
Project.transaction do
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 46096f280b8..6a7d7f8fa6e 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -19,7 +19,7 @@ class ProjectsController < ProjectResourceController
end
def create
- @project = Projects::CreateContext.new(nil, current_user, params).execute
+ @project = Projects::CreateContext.new(current_user, params).execute
respond_to do |format|
flash[:notice] = 'Project was successfully created.' if @project.saved?
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index c4717d11155..cbef1ed3b50 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -43,7 +43,7 @@ module Gitlab
:wall_enabled,
:merge_requests_enabled,
:wiki_enabled]
- @project = Projects::CreateContext.new(nil, attrs, current_user).execute
+ @project = ::Projects::CreateContext.new(current_user, attrs).execute
if @project.saved?
present @project, with: Entities::Project
else
diff --git a/spec/contexts/projects_create_context_spec.rb b/spec/contexts/projects_create_context_spec.rb
new file mode 100644
index 00000000000..dd10dd3ede8
--- /dev/null
+++ b/spec/contexts/projects_create_context_spec.rb
@@ -0,0 +1,38 @@
+require 'spec_helper'
+
+describe Projects::CreateContext do
+ describe :create_by_user do
+ before do
+ @user = create :user
+ @opts = {
+ name: "GitLab"
+ }
+ end
+
+ context 'user namespace' do
+ before do
+ @project = create_project(@user, @opts)
+ end
+
+ it { @project.should be_valid }
+ it { @project.owner.should == @user }
+ it { @project.namespace.should == @user.namespace }
+ end
+
+ context 'group namespace' do
+ before do
+ @group = create :group, owner: @user
+ @opts.merge!(namespace_id: @group.id)
+ @project = create_project(@user, @opts)
+ end
+
+ it { @project.should be_valid }
+ it { @project.owner.should == @user }
+ it { @project.namespace.should == @group }
+ end
+ end
+
+ def create_project(user, opts)
+ Projects::CreateContext.new(user, opts).execute
+ end
+end
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 223b9d48c01..17bc988bf05 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -153,36 +153,6 @@ describe Project do
end
end
- describe :create_by_user do
- before do
- @user = create :user
- @opts = {
- name: "GitLab"
- }
- end
-
- context 'user namespace' do
- before do
- @project = Project.create_by_user(@opts, @user)
- end
-
- it { @project.should be_valid }
- it { @project.owner.should == @user }
- it { @project.namespace.should == @user.namespace }
- end
-
- context 'user namespace' do
- before do
- @group = create :group, owner: @user
- @opts.merge!(namespace_id: @group.id)
- @project = Project.create_by_user(@opts, @user)
- end
-
- it { @project.should be_valid }
- it { @project.owner.should == @user }
- it { @project.namespace.should == @group }
- end
- end
describe :find_with_namespace do
context 'with namespace' do