Add tree history
[gitorious:dolt.git] / test / dolt / templates / tree_history_test.rb
1 # encoding: utf-8
2 #--
3 #   Copyright (C) 2012 Gitorious AS
4 #
5 #   This program is free software: you can redistribute it and/or modify
6 #   it under the terms of the GNU Affero General Public License as published by
7 #   the Free Software Foundation, either version 3 of the License, or
8 #   (at your option) any later version.
9 #
10 #   This program is distributed in the hope that it will be useful,
11 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #   GNU Affero General Public License for more details.
14 #
15 #   You should have received a copy of the GNU Affero General Public License
16 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 #++
18 require "test_helper"
19 require "dolt/template_renderer"
20 require "dolt/view"
21 require "json"
22
23 describe "tree_history template" do
24   include Dolt::ViewTest
25
26   before do
27     @repo = "the-dolt"
28     @template_root = File.join(File.dirname(__FILE__), "..", "..", "..", "views")
29     @renderer = prepare_renderer(@template_root)
30     @tree = [{
31       :type => :blob,
32       :oid => "e90021f89616ddf86855d05337c188408d3b417e",
33       :filemode => 33188,
34       :name => ".gitmodules",
35       :history => [{
36         :oid => "906d67b4f3e5de7364ba9b57d174d8998d53ced6",
37         :author => { :name => "Christian Johansen",
38                      :email => "christian@cjohansen.no" },
39         :summary => "Working Moron server for viewing blobs",
40         :date => Time.parse("Mon Sep 10 15:07:39 +0200 2012"),
41         :message => ""
42       }]
43     }, {
44       :type => :blob,
45       :oid => "c80ee3697054566d1a4247d80be78ec3ddfde295",
46       :filemode => 33188,
47       :name => "Gemfile",
48       :history => [{
49         :oid => "26139a3aba4aac8cbf658c0d0ea58b8983e4090b",
50         :author => { :name => "Christian Johansen",
51                      :email => "christian@cjohansen.no" },
52         :summary => "Initial commit",
53         :date => Time.parse("Thu Aug 23 11:40:39 +0200 2012"),
54         :message => ""
55       }]
56     }]
57
58     @tree_array = [{
59       "type" => "blob",
60       "oid" => "e90021f89616ddf86855d05337c188408d3b417e",
61       "filemode" => 33188,
62       "name" => ".gitmodules",
63       "history" => [{
64         "oid" => "906d67b4f3e5de7364ba9b57d174d8998d53ced6",
65         "author" => { "name" => "Christian Johansen",
66                      "email" => "christian@cjohansen.no" },
67         "summary" => "Working Moron server for viewing blobs",
68         "date" => "Mon Sep 10 15:07:39 +0200 2012",
69         "message" => ""
70       }]
71     }, {
72       "type" => "blob",
73       "oid" => "c80ee3697054566d1a4247d80be78ec3ddfde295",
74       "filemode" => 33188,
75       "name" => "Gemfile",
76       "history" => [{
77         "oid" => "26139a3aba4aac8cbf658c0d0ea58b8983e4090b",
78         "author" => { "name" => "Christian Johansen",
79                      "email" => "christian@cjohansen.no" },
80         "summary" => "Initial commit",
81         "date" => "Thu Aug 23 11:40:39 +0200 2012",
82         "message" => ""
83       }]
84     }]
85   end
86
87   it "renders JSON" do
88     data = { "tree" => @tree, "repository" => @repo, "ref" => "master", "path" => "" }
89     json = @renderer.render(:tree_history, data)
90
91     assert_equal @tree_array, JSON.parse(json)
92   end
93 end