Fixed API file raw functionality, Fixed tree controller tests. Added BlobController specs

This commit is contained in:
Dmitriy Zaporozhets 2013-04-03 15:55:08 +03:00
parent 413a310faa
commit dfeef6c228
5 changed files with 67 additions and 31 deletions

View file

@ -12,30 +12,27 @@
= link_to title, '#'
%div#tree-content-holder.tree-content-holder
- if tree.is_blob?
= render "tree/blob", blob: tree
- else
%table#tree-slider{class: "table_#{@hex_path} tree-table" }
%thead
%tr
%th Name
%th Last Update
%th Last Commit
%th= link_to "history", project_commits_path(@project, @id), class: "btn btn-tiny pull-right"
%table#tree-slider{class: "table_#{@hex_path} tree-table" }
%thead
%tr
%th Name
%th Last Update
%th Last Commit
%th= link_to "history", project_commits_path(@project, @id), class: "btn btn-tiny pull-right"
- if tree.up_dir?
%tr.tree-item
%td.tree-item-file-name
= image_tag "file_empty.png", size: '16x16'
= link_to "..", project_tree_path(@project, up_dir_path(tree))
%td
%td
%td
- if tree.up_dir?
%tr.tree-item
%td.tree-item-file-name
= image_tag "file_empty.png", size: '16x16'
= link_to "..", project_tree_path(@project, up_dir_path(tree))
%td
%td
%td
= render_tree(tree)
= render_tree(tree)
- if tree.readme
= render "tree/readme", readme: tree.readme
- if tree.readme
= render "tree/readme", readme: tree.readme
%div.tree_progress

View file

@ -493,14 +493,16 @@ module Gitlab
ref = params[:sha]
commit = user_project.repository.commit ref
repo = user_project.repository
commit = repo.commit(ref)
not_found! "Commit" unless commit
tree = Tree.new commit.tree, ref, params[:filepath]
not_found! "File" unless tree.try(:tree)
blob = Gitlab::Git::Blob.new(repo, commit.id, ref, params[:filepath])
not_found! "File" unless blob.exists?
content_type tree.mime_type
present tree.data
content_type blob.mime_type
present blob.data
end
# Get a specific project's keys

View file

@ -0,0 +1,37 @@
require 'spec_helper'
describe BlobController do
let(:project) { create(:project_with_code) }
let(:user) { create(:user) }
before do
sign_in(user)
project.team << [user, :master]
project.stub(:branches).and_return(['master', 'foo/bar/baz'])
project.stub(:tags).and_return(['v1.0.0', 'v2.0.0'])
controller.instance_variable_set(:@project, project)
end
describe "GET show" do
render_views
before { get :show, project_id: project.code, id: id }
context "valid branch, valid file" do
let(:id) { 'master/README.md' }
it { should respond_with(:success) }
end
context "valid branch, invalid file" do
let(:id) { 'master/invalid-path.rb' }
it { should respond_with(:not_found) }
end
context "invalid branch, valid file" do
let(:id) { 'invalid-branch/README.md' }
it { should respond_with(:not_found) }
end
end
end

View file

@ -26,17 +26,17 @@ describe TreeController do
end
context "valid branch, valid path" do
let(:id) { 'master/README.md' }
let(:id) { 'master/app/' }
it { should respond_with(:success) }
end
context "valid branch, invalid path" do
let(:id) { 'master/invalid-path.rb' }
let(:id) { 'master/invalid-path/' }
it { should respond_with(:not_found) }
end
context "invalid branch, valid path" do
let(:id) { 'invalid-branch/README.md' }
let(:id) { 'invalid-branch/app/' }
it { should respond_with(:not_found) }
end
end

View file

@ -38,10 +38,10 @@ describe Commit do
it { should respond_to(:message) }
it { should respond_to(:authored_date) }
it { should respond_to(:committed_date) }
it { should respond_to(:committer_email) }
it { should respond_to(:author_email) }
it { should respond_to(:parents) }
it { should respond_to(:date) }
it { should respond_to(:committer) }
it { should respond_to(:author) }
it { should respond_to(:diffs) }
it { should respond_to(:tree) }
it { should respond_to(:id) }