Commit dfeef6c22849c04ffd225a0356fd11fb8e4907f6
1 parent
413a310f
Exists in
master
and in
4 other branches
Fixed API file raw functionality, Fixed tree controller tests. Added BlobController specs
Showing
5 changed files
with
67 additions
and
31 deletions
Show diff stats
app/views/tree/_tree.html.haml
... | ... | @@ -12,30 +12,27 @@ |
12 | 12 | = link_to title, '#' |
13 | 13 | |
14 | 14 | %div#tree-content-holder.tree-content-holder |
15 | - - if tree.is_blob? | |
16 | - = render "tree/blob", blob: tree | |
17 | - - else | |
18 | - %table#tree-slider{class: "table_#{@hex_path} tree-table" } | |
19 | - %thead | |
20 | - %tr | |
21 | - %th Name | |
22 | - %th Last Update | |
23 | - %th Last Commit | |
24 | - %th= link_to "history", project_commits_path(@project, @id), class: "btn btn-tiny pull-right" | |
15 | + %table#tree-slider{class: "table_#{@hex_path} tree-table" } | |
16 | + %thead | |
17 | + %tr | |
18 | + %th Name | |
19 | + %th Last Update | |
20 | + %th Last Commit | |
21 | + %th= link_to "history", project_commits_path(@project, @id), class: "btn btn-tiny pull-right" | |
25 | 22 | |
26 | - - if tree.up_dir? | |
27 | - %tr.tree-item | |
28 | - %td.tree-item-file-name | |
29 | - = image_tag "file_empty.png", size: '16x16' | |
30 | - = link_to "..", project_tree_path(@project, up_dir_path(tree)) | |
31 | - %td | |
32 | - %td | |
33 | - %td | |
23 | + - if tree.up_dir? | |
24 | + %tr.tree-item | |
25 | + %td.tree-item-file-name | |
26 | + = image_tag "file_empty.png", size: '16x16' | |
27 | + = link_to "..", project_tree_path(@project, up_dir_path(tree)) | |
28 | + %td | |
29 | + %td | |
30 | + %td | |
34 | 31 | |
35 | - = render_tree(tree) | |
32 | + = render_tree(tree) | |
36 | 33 | |
37 | - - if tree.readme | |
38 | - = render "tree/readme", readme: tree.readme | |
34 | + - if tree.readme | |
35 | + = render "tree/readme", readme: tree.readme | |
39 | 36 | |
40 | 37 | %div.tree_progress |
41 | 38 | ... | ... |
lib/api/projects.rb
... | ... | @@ -493,14 +493,16 @@ module Gitlab |
493 | 493 | |
494 | 494 | ref = params[:sha] |
495 | 495 | |
496 | - commit = user_project.repository.commit ref | |
496 | + repo = user_project.repository | |
497 | + | |
498 | + commit = repo.commit(ref) | |
497 | 499 | not_found! "Commit" unless commit |
498 | 500 | |
499 | - tree = Tree.new commit.tree, ref, params[:filepath] | |
500 | - not_found! "File" unless tree.try(:tree) | |
501 | + blob = Gitlab::Git::Blob.new(repo, commit.id, ref, params[:filepath]) | |
502 | + not_found! "File" unless blob.exists? | |
501 | 503 | |
502 | - content_type tree.mime_type | |
503 | - present tree.data | |
504 | + content_type blob.mime_type | |
505 | + present blob.data | |
504 | 506 | end |
505 | 507 | |
506 | 508 | # Get a specific project's keys | ... | ... |
... | ... | @@ -0,0 +1,37 @@ |
1 | +require 'spec_helper' | |
2 | + | |
3 | +describe BlobController do | |
4 | + let(:project) { create(:project_with_code) } | |
5 | + let(:user) { create(:user) } | |
6 | + | |
7 | + before do | |
8 | + sign_in(user) | |
9 | + | |
10 | + project.team << [user, :master] | |
11 | + | |
12 | + project.stub(:branches).and_return(['master', 'foo/bar/baz']) | |
13 | + project.stub(:tags).and_return(['v1.0.0', 'v2.0.0']) | |
14 | + controller.instance_variable_set(:@project, project) | |
15 | + end | |
16 | + | |
17 | + describe "GET show" do | |
18 | + render_views | |
19 | + | |
20 | + before { get :show, project_id: project.code, id: id } | |
21 | + | |
22 | + context "valid branch, valid file" do | |
23 | + let(:id) { 'master/README.md' } | |
24 | + it { should respond_with(:success) } | |
25 | + end | |
26 | + | |
27 | + context "valid branch, invalid file" do | |
28 | + let(:id) { 'master/invalid-path.rb' } | |
29 | + it { should respond_with(:not_found) } | |
30 | + end | |
31 | + | |
32 | + context "invalid branch, valid file" do | |
33 | + let(:id) { 'invalid-branch/README.md' } | |
34 | + it { should respond_with(:not_found) } | |
35 | + end | |
36 | + end | |
37 | +end | ... | ... |
spec/controllers/tree_controller_spec.rb
... | ... | @@ -26,17 +26,17 @@ describe TreeController do |
26 | 26 | end |
27 | 27 | |
28 | 28 | context "valid branch, valid path" do |
29 | - let(:id) { 'master/README.md' } | |
29 | + let(:id) { 'master/app/' } | |
30 | 30 | it { should respond_with(:success) } |
31 | 31 | end |
32 | 32 | |
33 | 33 | context "valid branch, invalid path" do |
34 | - let(:id) { 'master/invalid-path.rb' } | |
34 | + let(:id) { 'master/invalid-path/' } | |
35 | 35 | it { should respond_with(:not_found) } |
36 | 36 | end |
37 | 37 | |
38 | 38 | context "invalid branch, valid path" do |
39 | - let(:id) { 'invalid-branch/README.md' } | |
39 | + let(:id) { 'invalid-branch/app/' } | |
40 | 40 | it { should respond_with(:not_found) } |
41 | 41 | end |
42 | 42 | end | ... | ... |
spec/models/commit_spec.rb
... | ... | @@ -38,10 +38,10 @@ describe Commit do |
38 | 38 | it { should respond_to(:message) } |
39 | 39 | it { should respond_to(:authored_date) } |
40 | 40 | it { should respond_to(:committed_date) } |
41 | + it { should respond_to(:committer_email) } | |
42 | + it { should respond_to(:author_email) } | |
41 | 43 | it { should respond_to(:parents) } |
42 | 44 | it { should respond_to(:date) } |
43 | - it { should respond_to(:committer) } | |
44 | - it { should respond_to(:author) } | |
45 | 45 | it { should respond_to(:diffs) } |
46 | 46 | it { should respond_to(:tree) } |
47 | 47 | it { should respond_to(:id) } | ... | ... |