libgit2-online.jl
# This file is a part of Julia. License is MIT: https://julialang.org/license
#########
# TESTS #
#########
# init & clone
mktempdir() do dir
repo_url = "https://github.com/JuliaLang/Example.jl"
@testset "Cloning repository" begin
@testset "with 'https' protocol" begin
repo_path = joinpath(dir, "Example1")
payload = LibGit2.CredentialPayload(allow_prompt=false)
repo = LibGit2.clone(repo_url, repo_path, payload=payload)
try
@test isdir(repo_path)
@test isdir(joinpath(repo_path, ".git"))
finally
close(repo)
end
end
@testset "with incorrect url" begin
try
repo_path = joinpath(dir, "Example2")
# credentials are required because github tries to authenticate on unknown repo
cred = LibGit2.UserPasswordCredentials("JeffBezanson", "hunter2") # make sure Jeff is using a good password :)
payload = LibGit2.CredentialPayload(cred, allow_prompt=false)
LibGit2.clone(repo_url*randstring(10), repo_path, payload=payload)
error("unexpected")
catch ex
@test isa(ex, LibGit2.Error.GitError)
@test ex.code == LibGit2.Error.EAUTH
end
end
@testset "with empty credentials" begin
try
repo_path = joinpath(dir, "Example3")
# credentials are required because github tries to authenticate on unknown repo
cred = LibGit2.UserPasswordCredentials("","") # empty credentials cause authentication error
payload = LibGit2.CredentialPayload(cred, allow_prompt=false)
LibGit2.clone(repo_url*randstring(10), repo_path, payload=payload)
error("unexpected")
catch ex
@test isa(ex, LibGit2.Error.GitError)
@test ex.code == LibGit2.Error.EAUTH
end
end
end
end