# encoding: utf-8
#--
# Copyright (C) 2012 Gitorious AS
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
#++
require "test_helper"
require "libdolt/view"
class Tree
attr_reader :entries
def initialize(entries); @entries = entries; end
end
describe "tree template" do
include Dolt::ViewTest
before do
@repo = "the-dolt"
end
def render(path, tree, options = {})
renderer = prepare_renderer(options)
readme = options[:readme] || nil
renderer.render(:tree, {
:tree => tree,
:repository_slug => @repo,
:ref => options[:ref] || "master",
:path => path,
:readme => readme
})
end
it "renders empty tree" do
tree = Tree.new([])
markup = render("app/models", tree)
assert_match /
:tree, :name => "lib" },
{ :type => :submodule, :name => "ui", :url => "git://git.git" },
{ :type => :blob, :name => "file.txt" }
])
markup = render("app/models", tree)
assert_match /icon-folder-open/, markup
assert_match /tree\/master:app"/, markup
end
it "renders readmes" do
tree = Tree.new([
{:type => :tree, :name => "lib"},
{:type => :blob, :name => "README.md"}
])
blob = mock(:text => "This is a readme")
readme = {:blob => blob, :path => "README.md"}
markup = render("", tree, :readme => readme)
assert_match /README.md<\/h[1-6]>/, markup
end
end