diff options
author | Vinnie Okada <vokada@mrvinn.com> | 2015-02-21 12:55:28 -0700 |
---|---|---|
committer | Vinnie Okada <vokada@mrvinn.com> | 2015-02-21 12:55:28 -0700 |
commit | 2a9eed6620fd57c2a82edf5eab95dade3da250d3 (patch) | |
tree | d4c33eaaae008510086b0476db9bd4ae32dc298e /spec/controllers | |
parent | 83e2a1ca12372279cf7948b4d4b3e8a11c50e428 (diff) | |
parent | 71e146999c405ab301cd3c3e3aa03b89d46c461e (diff) | |
download | gitlab-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.rb | 67 |
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 |