summaryrefslogtreecommitdiff
path: root/spec/controllers
diff options
context:
space:
mode:
authorVinnie Okada <vokada@mrvinn.com>2015-02-21 12:55:28 -0700
committerVinnie Okada <vokada@mrvinn.com>2015-02-21 12:55:28 -0700
commit2a9eed6620fd57c2a82edf5eab95dade3da250d3 (patch)
treed4c33eaaae008510086b0476db9bd4ae32dc298e /spec/controllers
parent83e2a1ca12372279cf7948b4d4b3e8a11c50e428 (diff)
parent71e146999c405ab301cd3c3e3aa03b89d46c461e (diff)
downloadgitlab-ce-2a9eed6620fd57c2a82edf5eab95dade3da250d3.tar.gz
Merge branch 'master' into rails-4.1.9
Conflicts: app/views/projects/commits/_commit.html.haml app/views/projects/issues/_issue.html.haml app/views/projects/issues/_issue_context.html.haml app/views/projects/merge_requests/_merge_request.html.haml app/views/projects/merge_requests/show/_context.html.haml
Diffstat (limited to 'spec/controllers')
-rw-r--r--spec/controllers/import/gitorious_controller_spec.rb67
1 files changed, 67 insertions, 0 deletions
diff --git a/spec/controllers/import/gitorious_controller_spec.rb b/spec/controllers/import/gitorious_controller_spec.rb
new file mode 100644
index 00000000000..07c9484bf1a
--- /dev/null
+++ b/spec/controllers/import/gitorious_controller_spec.rb
@@ -0,0 +1,67 @@
+require 'spec_helper'
+
+describe Import::GitoriousController do
+ let(:user) { create(:user) }
+
+ before do
+ sign_in(user)
+ end
+
+ describe "GET new" do
+ it "redirects to import endpoint on gitorious.org" do
+ get :new
+
+ expect(controller).to redirect_to("https://gitorious.org/gitlab-import?callback_url=http://test.host/import/gitorious/callback")
+ end
+ end
+
+ describe "GET callback" do
+ it "stores repo list in session" do
+ get :callback, repos: 'foo/bar,baz/qux'
+
+ expect(session[:gitorious_repos]).to eq('foo/bar,baz/qux')
+ end
+ end
+
+ describe "GET status" do
+ before do
+ @repo = OpenStruct.new(full_name: 'asd/vim')
+ end
+
+ it "assigns variables" do
+ @project = create(:project, import_type: 'gitorious', creator_id: user.id)
+ controller.stub_chain(:client, :repos).and_return([@repo])
+
+ get :status
+
+ expect(assigns(:already_added_projects)).to eq([@project])
+ expect(assigns(:repos)).to eq([@repo])
+ end
+
+ it "does not show already added project" do
+ @project = create(:project, import_type: 'gitorious', creator_id: user.id, import_source: 'asd/vim')
+ controller.stub_chain(:client, :repos).and_return([@repo])
+
+ get :status
+
+ expect(assigns(:already_added_projects)).to eq([@project])
+ expect(assigns(:repos)).to eq([])
+ end
+ end
+
+ describe "POST create" do
+ before do
+ @repo = Gitlab::GitoriousImport::Repository.new('asd/vim')
+ end
+
+ it "takes already existing namespace" do
+ namespace = create(:namespace, name: "asd", owner: user)
+ expect(Gitlab::GitoriousImport::ProjectCreator).
+ to receive(:new).with(@repo, namespace, user).
+ and_return(double(execute: true))
+ controller.stub_chain(:client, :repo).and_return(@repo)
+
+ post :create, format: :js
+ end
+ end
+end