dolt 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +21 -18
- data/Readme.md +3 -5
- data/bin/dolt +3 -6
- data/dolt.gemspec +5 -16
- data/lib/dolt/sinatra/multi_repo_browser.rb +3 -3
- data/lib/dolt/sinatra/single_repo_browser.rb +3 -3
- data/test/test_helper.rb +5 -3
- data/vendor/ui/css/gitorious.css +5 -0
- metadata +23 -239
- data/lib/dolt/async/when.rb +0 -128
- data/lib/dolt/disk_repo_resolver.rb +0 -39
- data/lib/dolt/git/blame.rb +0 -112
- data/lib/dolt/git/commit.rb +0 -73
- data/lib/dolt/git/repository.rb +0 -139
- data/lib/dolt/git/submodule.rb +0 -35
- data/lib/dolt/git/tree.rb +0 -42
- data/lib/dolt/repo_actions.rb +0 -91
- data/lib/dolt/template_renderer.rb +0 -67
- data/lib/dolt/version.rb +0 -21
- data/lib/dolt/view.rb +0 -23
- data/lib/dolt/view/binary_blob_embedder.rb +0 -41
- data/lib/dolt/view/blame.rb +0 -57
- data/lib/dolt/view/blob.rb +0 -97
- data/lib/dolt/view/breadcrumb.rb +0 -47
- data/lib/dolt/view/commit.rb +0 -27
- data/lib/dolt/view/gravatar.rb +0 -29
- data/lib/dolt/view/markup.rb +0 -107
- data/lib/dolt/view/multi_repository.rb +0 -27
- data/lib/dolt/view/object.rb +0 -44
- data/lib/dolt/view/single_repository.rb +0 -27
- data/lib/dolt/view/smart_blob_renderer.rb +0 -33
- data/lib/dolt/view/syntax_highlight.rb +0 -90
- data/lib/dolt/view/tab_width.rb +0 -30
- data/lib/dolt/view/tree.rb +0 -100
- data/test/dolt/async/when_test.rb +0 -112
- data/test/dolt/git/blame_test.rb +0 -128
- data/test/dolt/git/commit_test.rb +0 -89
- data/test/dolt/git/repository_test.rb +0 -186
- data/test/dolt/repo_actions_test.rb +0 -236
- data/test/dolt/template_renderer_test.rb +0 -122
- data/test/dolt/templates/blame_test.rb +0 -56
- data/test/dolt/templates/blob_test.rb +0 -118
- data/test/dolt/templates/commits_test.rb +0 -61
- data/test/dolt/templates/raw_test.rb +0 -41
- data/test/dolt/templates/refs_test.rb +0 -38
- data/test/dolt/templates/tree_history_test.rb +0 -93
- data/test/dolt/templates/tree_test.rb +0 -65
- data/test/dolt/view/binary_blob_embedder_test.rb +0 -49
- data/test/dolt/view/blame_test.rb +0 -122
- data/test/dolt/view/blob_test.rb +0 -116
- data/test/dolt/view/breadcrumb_test.rb +0 -46
- data/test/dolt/view/commit_test.rb +0 -31
- data/test/dolt/view/gravatar_test.rb +0 -30
- data/test/dolt/view/markup_test.rb +0 -94
- data/test/dolt/view/multi_repository_test.rb +0 -35
- data/test/dolt/view/object_test.rb +0 -83
- data/test/dolt/view/single_repository_test.rb +0 -30
- data/test/dolt/view/smart_blob_renderer_test.rb +0 -38
- data/test/dolt/view/syntax_highlight_test.rb +0 -108
- data/test/dolt/view/tab_width_test.rb +0 -40
- data/test/dolt/view/tree_test.rb +0 -199
- data/views/500.erb +0 -22
- data/views/blame.erb +0 -42
- data/views/blob.erb +0 -31
- data/views/commits.erb +0 -26
- data/views/index.erb +0 -25
- data/views/layout.erb +0 -45
- data/views/raw.erb +0 -19
- data/views/refs.erb +0 -22
- data/views/tree.erb +0 -50
- data/views/tree_history.erb +0 -19
@@ -1,61 +0,0 @@
|
|
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
|
-
|
22
|
-
describe "commits template" do
|
23
|
-
include Dolt::ViewTest
|
24
|
-
|
25
|
-
def commit(num)
|
26
|
-
{ :oid => num + ("0" * 39),
|
27
|
-
:summary => "Commit ##{num}",
|
28
|
-
:author => @author,
|
29
|
-
:date => Time.now }
|
30
|
-
end
|
31
|
-
|
32
|
-
before do
|
33
|
-
@repo = "the-dolt"
|
34
|
-
@author = {
|
35
|
-
:name => "Christian Johansen",
|
36
|
-
:email => "christian@gitorious.com"
|
37
|
-
}
|
38
|
-
@commit1 = commit("1")
|
39
|
-
@commit2 = commit("2")
|
40
|
-
@commit3 = commit("3")
|
41
|
-
@template_root = File.join(File.dirname(__FILE__), "..", "..", "..", "views")
|
42
|
-
end
|
43
|
-
|
44
|
-
def render(path, commits, options = {})
|
45
|
-
renderer = prepare_renderer(@template_root, options)
|
46
|
-
renderer.render(:commits, {
|
47
|
-
:commits => commits,
|
48
|
-
:repository => @repo,
|
49
|
-
:ref => options[:ref] || "master",
|
50
|
-
:path => path
|
51
|
-
})
|
52
|
-
end
|
53
|
-
|
54
|
-
it "renders history" do
|
55
|
-
markup = render("app/models/repository.rb", [@commit1, @commit2, @commit3])
|
56
|
-
|
57
|
-
assert_match /Commit #1/, markup
|
58
|
-
assert_match /Commit #2/, markup
|
59
|
-
assert_match /Commit #3/, markup
|
60
|
-
end
|
61
|
-
end
|
@@ -1,41 +0,0 @@
|
|
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
|
-
|
22
|
-
class Blob
|
23
|
-
attr_reader :content
|
24
|
-
def initialize(content); @content = content; end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe "raw template" do
|
28
|
-
include Dolt::ViewTest
|
29
|
-
|
30
|
-
before do
|
31
|
-
@repo = "the-dolt"
|
32
|
-
@template_root = File.join(File.dirname(__FILE__), "..", "..", "..", "views")
|
33
|
-
end
|
34
|
-
|
35
|
-
it "renders raw contents" do
|
36
|
-
renderer = prepare_renderer(@template_root)
|
37
|
-
html = renderer.render(:raw, { :blob => Blob.new("Something something") })
|
38
|
-
|
39
|
-
assert_equal "Something something\n", html
|
40
|
-
end
|
41
|
-
end
|
@@ -1,38 +0,0 @@
|
|
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 "refs 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
|
-
end
|
31
|
-
|
32
|
-
it "renders JSON" do
|
33
|
-
data = { "heads" => ["libgit2", "master"], "tags" => ["v2.1.0"] }
|
34
|
-
html = @renderer.render(:refs, data)
|
35
|
-
|
36
|
-
assert_equal data, JSON.parse(html)
|
37
|
-
end
|
38
|
-
end
|
@@ -1,93 +0,0 @@
|
|
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" => "2012-09-10T15:07:39+02:00",
|
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" => "2012-08-23T11:40:39+02:00",
|
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
|
@@ -1,65 +0,0 @@
|
|
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
|
-
|
22
|
-
class Tree
|
23
|
-
attr_reader :entries
|
24
|
-
def initialize(entries); @entries = entries; end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe "tree template" do
|
28
|
-
include Dolt::ViewTest
|
29
|
-
|
30
|
-
before do
|
31
|
-
@repo = "the-dolt"
|
32
|
-
@template_root = File.join(File.dirname(__FILE__), "..", "..", "..", "views")
|
33
|
-
end
|
34
|
-
|
35
|
-
def render(path, tree, options = {})
|
36
|
-
renderer = prepare_renderer(@template_root, options)
|
37
|
-
renderer.render(:tree, {
|
38
|
-
:tree => tree,
|
39
|
-
:repository => @repo,
|
40
|
-
:ref => options[:ref] || "master",
|
41
|
-
:path => path
|
42
|
-
})
|
43
|
-
end
|
44
|
-
|
45
|
-
it "renders empty tree" do
|
46
|
-
tree = Tree.new([])
|
47
|
-
markup = render("app/models", tree)
|
48
|
-
|
49
|
-
assert_match /<table class="table table-striped gts-tree-explorer"/, markup
|
50
|
-
assert_match /data-gts-tree-history="/, markup
|
51
|
-
end
|
52
|
-
|
53
|
-
it "renders context for non-empty tree" do
|
54
|
-
tree = Tree.new([
|
55
|
-
{ :type => :tree, :name => "lib" },
|
56
|
-
{ :type => :submodule, :name => "ui", :url => "git://git.git" },
|
57
|
-
{ :type => :blob, :name => "file.txt" }
|
58
|
-
])
|
59
|
-
|
60
|
-
markup = render("app/models", tree)
|
61
|
-
|
62
|
-
assert_match /icon-folder-open/, markup
|
63
|
-
assert_match /tree\/master:app"/, markup
|
64
|
-
end
|
65
|
-
end
|
@@ -1,49 +0,0 @@
|
|
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/view/single_repository"
|
20
|
-
require "dolt/view/blob"
|
21
|
-
require "dolt/view/binary_blob_embedder"
|
22
|
-
|
23
|
-
describe Dolt::View::BinaryBlobEmbedder do
|
24
|
-
include Dolt::View::Blob
|
25
|
-
include Dolt::View::BinaryBlobEmbedder
|
26
|
-
include Dolt::View::SingleRepository
|
27
|
-
|
28
|
-
it "renders image tag to view gif" do
|
29
|
-
html = format_binary_blob("file.gif", "...", "gitorious", "master")
|
30
|
-
|
31
|
-
assert_match /<img/, html
|
32
|
-
assert_match /src="\/raw\/master:file.gif"/, html
|
33
|
-
end
|
34
|
-
|
35
|
-
it "renders image tag to view png" do
|
36
|
-
html = format_binary_blob("file.png", "...", "gitorious", "master")
|
37
|
-
assert_match /src="\/raw\/master:file.png"/, html
|
38
|
-
end
|
39
|
-
|
40
|
-
it "renders image tag to view jpg" do
|
41
|
-
html = format_binary_blob("file.jpg", "...", "gitorious", "master")
|
42
|
-
assert_match /src="\/raw\/master:file.jpg"/, html
|
43
|
-
end
|
44
|
-
|
45
|
-
it "renders image tag to view jpeg" do
|
46
|
-
html = format_binary_blob("file.jpeg", "...", "gitorious", "master")
|
47
|
-
assert_match /src="\/raw\/master:file.jpeg"/, html
|
48
|
-
end
|
49
|
-
end
|
@@ -1,122 +0,0 @@
|
|
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/view/blame"
|
20
|
-
require "ostruct"
|
21
|
-
|
22
|
-
describe Dolt::View::Blame do
|
23
|
-
include Dolt::Html
|
24
|
-
include Dolt::View::Blame
|
25
|
-
|
26
|
-
before do
|
27
|
-
chunks = [{ :oid => "0000001", :lines => ["1", "2", "3"] },
|
28
|
-
{ :oid => "0000002", :lines => ["4", "5"] }]
|
29
|
-
@blame = OpenStruct.new({ :chunks => chunks })
|
30
|
-
end
|
31
|
-
|
32
|
-
describe "#blame_annotations" do
|
33
|
-
it "returns array of same length as total number of lines" do
|
34
|
-
annotations = blame_annotations(@blame)
|
35
|
-
|
36
|
-
assert_equal 5, annotations.length
|
37
|
-
end
|
38
|
-
|
39
|
-
it "stores annotation for first occurrence" do
|
40
|
-
annotations = blame_annotations(@blame)
|
41
|
-
|
42
|
-
assert_equal "0000001", annotations.first[:oid]
|
43
|
-
end
|
44
|
-
|
45
|
-
it "stores nil for consecutive entries in same chunk" do
|
46
|
-
annotations = blame_annotations(@blame)
|
47
|
-
|
48
|
-
assert_nil annotations[1]
|
49
|
-
assert_nil annotations[2]
|
50
|
-
refute_nil annotations[3]
|
51
|
-
assert_nil annotations[4]
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
describe "#blame_lines" do
|
56
|
-
it "returns array of lines" do
|
57
|
-
assert_equal 5, blame_lines("file.rb", @blame).length
|
58
|
-
end
|
59
|
-
|
60
|
-
it "does not modify lines" do
|
61
|
-
assert_equal "1", blame_lines("file.rb", @blame).first
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
describe "#blame_lines with #highlight" do
|
66
|
-
def highlight(path, code)
|
67
|
-
"{" + code.split("\n").map { |l| "#{path}:#{l}" }.join("\n") + "}"
|
68
|
-
end
|
69
|
-
|
70
|
-
it "highlights code before splitting" do
|
71
|
-
lines = blame_lines("file.rb", @blame)
|
72
|
-
|
73
|
-
assert_equal "{file.rb:1", lines.first
|
74
|
-
assert_equal "file.rb:2", lines[1]
|
75
|
-
assert_equal "file.rb:5}", lines.last
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
describe "#blame_annotation_cell" do
|
80
|
-
before do
|
81
|
-
@oid = "1234567890" * 4
|
82
|
-
|
83
|
-
@committer = {
|
84
|
-
:name => "Christian Johansen",
|
85
|
-
:time => Time.utc(2012, 1, 1, 12)
|
86
|
-
}
|
87
|
-
end
|
88
|
-
|
89
|
-
it "returns table cell with annotated class" do
|
90
|
-
html = blame_annotation_cell({ :committer => @committer, :oid => @oid })
|
91
|
-
|
92
|
-
assert_match /gts-blame-annotation/, html
|
93
|
-
assert_match /gts-annotated/, html
|
94
|
-
assert_match /Christian Johansen/, html
|
95
|
-
end
|
96
|
-
|
97
|
-
it "includes the commit oid" do
|
98
|
-
html = blame_annotation_cell({ :committer => @committer, :oid => @oid })
|
99
|
-
|
100
|
-
assert_match /gts-sha/, html
|
101
|
-
assert_match /1234567/, html
|
102
|
-
refute_match /890/, html
|
103
|
-
end
|
104
|
-
|
105
|
-
it "includes the commit date" do
|
106
|
-
html = blame_annotation_cell({ :committer => @committer, :oid => @oid })
|
107
|
-
|
108
|
-
assert_match /2012-01-01/, html
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
describe "#blame_code_cell" do
|
113
|
-
it "returns table cell with code element" do
|
114
|
-
html = blame_code_cell("var a = 42;")
|
115
|
-
|
116
|
-
assert_equal 1, select(html, "td").length
|
117
|
-
assert_match /gts-code/, html
|
118
|
-
assert_equal 1, select(html, "code").length
|
119
|
-
assert_match /a = 42/, html
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|