diff options
author | Sean McGivern <sean@gitlab.com> | 2016-06-09 14:26:52 +0100 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2016-06-09 14:26:52 +0100 |
commit | bf63964b4d1f42f7f091e25c81b87a1ddb110cba (patch) | |
tree | 3a580f32f7f33356abc840367bc50bb8618b8ffe | |
parent | df5fb28a3a7f3bae496805716211eb47936ecc81 (diff) | |
download | gitlab-ce-bf63964b4d1f42f7f091e25c81b87a1ddb110cba.tar.gz |
Add test for getting info/refs from repo
-rw-r--r-- | spec/requests/git_http_spec.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/requests/git_http_spec.rb b/spec/requests/git_http_spec.rb index df6a6d5da7c..c44a4a7a1fc 100644 --- a/spec/requests/git_http_spec.rb +++ b/spec/requests/git_http_spec.rb @@ -321,6 +321,34 @@ describe 'Git HTTP requests', lib: true do end end + context "retrieving an info/refs file" do + before { project.update_attribute(:visibility_level, Project::PUBLIC) } + + context "when the file exists" do + before do + # Provide a dummy file in its place + allow_any_instance_of(Repository).to receive(:blob_at).and_call_original + allow_any_instance_of(Repository).to receive(:blob_at).with('5937ac0a7beb003549fc5fd26fc247adbce4a52e', 'info/refs') do + Gitlab::Git::Blob.find(project.repository, 'master', '.gitignore') + end + + get "/#{project.path_with_namespace}/blob/master/info/refs" + end + + it "returns the file" do + expect(response.status).to eq(200) + end + end + + context "when the file exists" do + before { get "/#{project.path_with_namespace}/blob/master/info/refs" } + + it "returns not found" do + expect(response.status).to eq(404) + end + end + end + def clone_get(project, options={}) get "/#{project}/info/refs", { service: 'git-upload-pack' }, auth_env(*options.values_at(:user, :password)) end |