ohloh_scm / branches / master / test / unit / git_validation_test.rb
history
require File.dirname(__FILE__) + '/../test_helper'
module Scm::Adapters
class GitValidationTest < Scm::Test
def test_rejected_urls
[ nil, "", "foo", "http:/", "http:://", "http://", "http://a",
"kernel.org/linux/linux.git", # missing a protocol prefix
"http://kernel.org/linux/lin%32ux.git", # no encoded strings allowed
"http://kernel.org/linux/linux.git malicious code", # no spaces allowed
"svn://svn.mythtv.org/svn/trunk", # svn protocol is not allowed
"/home/robin/cvs", # local file paths not allowed
"file:///home/robin/cvs", # file protocol is not allowed
":pserver:anonymous:@juicereceiver.cvs.sourceforge.net:/cvsroot/juicereceiver" # pserver is just wrong
].each do |url|
git = GitAdapter.new(:url => url)
assert git.validate_url.any?
end
end
def test_accepted_urls
[ "http://kernel.org/pub/scm/git/git.git",
"git://kernel.org/pub/scm/git/git.git",
"https://kernel.org/pub/scm/git/git.git",
"https://kernel.org:8080/pub/scm/git/git.git",
"git://kernel.org/~foo/git.git",
"http://git.onerussian.com/pub/deb/impose+.git"
].each do |url|
git = GitAdapter.new(:url => url)
assert !git.validate_url
end
end
def test_guess_forge
git = GitAdapter.new(:url => nil)
assert_equal nil, git.guess_forge
git = GitAdapter.new(:url => 'git://methabot.git.sourceforge.net/gitroot/methabot')
assert_equal 'sourceforge.net', git.guess_forge
git = GitAdapter.new( :url => 'http://kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.17.y.git')
assert_equal 'kernel.org', git.guess_forge
end
end
end
