download_exec.jl
# This file is a part of Julia. License is MIT: https://julialang.org/license
module TestDownload
using Test
mktempdir() do temp_dir
# Download a file
file = joinpath(temp_dir, "ip")
@test download("https://httpbin.julialang.org/ip", file) == file
@test isfile(file)
@test !isempty(read(file))
ip = read(file, String)
# Download an empty file
empty_file = joinpath(temp_dir, "empty")
@test download("https://httpbin.julialang.org/status/200", empty_file) == empty_file
@test isfile(empty_file)
@test isempty(read(empty_file))
# Make sure that failed downloads do not leave files around
missing_file = joinpath(temp_dir, "missing")
@test_throws Exception download("https://httpbin.julialang.org/status/404", missing_file)
@test !isfile(missing_file)
# Use a TEST-NET (192.0.2.0/24) address which shouldn't be bound
invalid_host_file = joinpath(temp_dir, "invalid_host")
@test_throws Exception download("http://192.0.2.1", invalid_host_file)
@test !isfile(invalid_host_file)
end
end # module