diff options
| author | Douwe Maan <douwe@gitlab.com> | 2015-04-15 06:53:42 +0000 |
|---|---|---|
| committer | Douwe Maan <douwe@gitlab.com> | 2015-04-15 06:53:42 +0000 |
| commit | 63b21945d2a6d53c7baa65bffcac33ab5fa8bb91 (patch) | |
| tree | 250754a33d53845d5f720d97a7648fd9ebe97eb9 /spec/controllers | |
| parent | 61c79418c46105ecedfca3701b7e4ac9ba6ba601 (diff) | |
| parent | 9d00bb08962e26b0c284bcfc5e7ed52cf141d5c6 (diff) | |
| download | gitlab-ce-63b21945d2a6d53c7baa65bffcac33ab5fa8bb91.tar.gz | |
Merge branch 'google-code-import' into 'master'
Import projects from Google Code.
Resolves #1257.
Issue import logic almost entirely taken from https://gitlab.com/o9000/google-code-to-gitlab ( :hearts: @o9000).
### To do
- [x] List projects from Google Takeout file
- [x] Import Git repository
- [x] Import issues
- [x] Link to correct attachment URL (https://code.google.com/p/support-tools/issues/detail?id=50)
- [x] Handle deleted attachments
- [x] Handle blockedOn attribute
- [x] Add directions on how to get data from Google Takeout
### Import instructions

### Imported issue

See merge request !471
Diffstat (limited to 'spec/controllers')
| -rw-r--r-- | spec/controllers/import/google_code_controller_spec.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/spec/controllers/import/google_code_controller_spec.rb b/spec/controllers/import/google_code_controller_spec.rb new file mode 100644 index 00000000000..037cddb4600 --- /dev/null +++ b/spec/controllers/import/google_code_controller_spec.rb @@ -0,0 +1,47 @@ +require 'spec_helper' + +describe Import::GoogleCodeController do + let(:user) { create(:user) } + let(:dump_file) { fixture_file_upload(Rails.root + 'spec/fixtures/GoogleCodeProjectHosting.json', 'application/json') } + + before do + sign_in(user) + end + + describe "POST callback" do + it "stores Google Takeout dump list in session" do + post :callback, dump_file: dump_file + + expect(session[:google_code_dump]).to be_a(Hash) + expect(session[:google_code_dump]["kind"]).to eq("projecthosting#user") + expect(session[:google_code_dump]).to have_key("projects") + end + end + + describe "GET status" do + before do + @repo = OpenStruct.new(name: 'vim') + controller.stub_chain(:client, :valid?).and_return(true) + end + + it "assigns variables" do + @project = create(:project, import_type: 'google_code', 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: 'google_code', creator_id: user.id, import_source: '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 +end |
