annotate test/unit/lib/redmine/scm/adapters/git_adapter_test.rb @ 904:0a8317a50fa0 redmine-1.1

Close obsolete branch redmine-1.1
author Chris Cannam
date Fri, 14 Jan 2011 12:53:21 +0000
parents af80e5618e9b
children 051f544170fe
rev   line source
Chris@117 1 # encoding: utf-8
Chris@117 2
Chris@117 3 require File.expand_path('../../../../../../test_helper', __FILE__)
Chris@0 4
Chris@0 5 class GitAdapterTest < ActiveSupport::TestCase
Chris@0 6 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
Chris@0 7
Chris@0 8 if File.directory?(REPOSITORY_PATH)
Chris@0 9 def setup
Chris@0 10 @adapter = Redmine::Scm::Adapters::GitAdapter.new(REPOSITORY_PATH)
Chris@0 11 end
Chris@0 12
Chris@0 13 def test_branches
Chris@0 14 assert_equal @adapter.branches, ['master', 'test_branch']
Chris@0 15 end
Chris@0 16
Chris@0 17 def test_getting_all_revisions
chris@37 18 assert_equal 15, @adapter.revisions('',nil,nil,:all => true).length
Chris@0 19 end
Chris@0 20
Chris@14 21 def test_getting_certain_revisions
Chris@14 22 assert_equal 1, @adapter.revisions('','899a15d^','899a15d').length
Chris@14 23 end
Chris@14 24
chris@37 25 def test_getting_revisions_with_spaces_in_filename
chris@37 26 assert_equal 1, @adapter.revisions("filemane with spaces.txt", nil, nil, :all => true).length
chris@37 27 end
chris@37 28
chris@37 29 def test_getting_revisions_with_leading_and_trailing_spaces_in_filename
chris@37 30 assert_equal " filename with a leading space.txt ", @adapter.revisions(" filename with a leading space.txt ", nil, nil, :all => true)[0].paths[0][:path]
chris@37 31 end
chris@37 32
chris@37 33 def test_getting_entries_with_leading_and_trailing_spaces_in_filename
chris@37 34 assert_equal " filename with a leading space.txt ", @adapter.entries('', '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c')[3].name
chris@37 35 end
chris@37 36
Chris@0 37 def test_annotate
Chris@0 38 annotate = @adapter.annotate('sources/watchers_controller.rb')
Chris@0 39 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
Chris@0 40 assert_equal 41, annotate.lines.size
Chris@0 41 assert_equal "# This program is free software; you can redistribute it and/or", annotate.lines[4].strip
Chris@0 42 assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518", annotate.revisions[4].identifier
Chris@0 43 assert_equal "jsmith", annotate.revisions[4].author
Chris@0 44 end
Chris@0 45
Chris@0 46 def test_annotate_moved_file
Chris@0 47 annotate = @adapter.annotate('renamed_test.txt')
Chris@0 48 assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
Chris@0 49 assert_equal 2, annotate.lines.size
Chris@0 50 end
chris@37 51
chris@37 52 def test_last_rev
chris@37 53 last_rev = @adapter.lastrev("README", "4f26664364207fa8b1af9f8722647ab2d4ac5d43")
chris@37 54 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.scmid
chris@37 55 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.identifier
chris@37 56 assert_equal "Adam Soltys <asoltys@gmail.com>", last_rev.author
chris@37 57 assert_equal "2009-06-24 05:27:38".to_time, last_rev.time
chris@37 58 end
chris@37 59
chris@37 60 def test_last_rev_with_spaces_in_filename
chris@37 61 last_rev = @adapter.lastrev("filemane with spaces.txt", "ed5bb786bbda2dee66a2d50faf51429dbc043a7b")
chris@37 62 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.scmid
chris@37 63 assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.identifier
chris@37 64 assert_equal "Felix Schäfer <felix@fachschaften.org>", last_rev.author
chris@37 65 assert_equal "2010-09-18 19:59:46".to_time, last_rev.time
chris@37 66 end
Chris@0 67 else
Chris@0 68 puts "Git test repository NOT FOUND. Skipping unit tests !!!"
Chris@0 69 def test_fake; assert true end
Chris@0 70 end
Chris@0 71 end