Merge pull request #8762 from chrisroberts/fix/box-name-uri-parse
Prevent URI parse errors when checking box name
This commit is contained in:
commit
78f5c29d12
|
@ -31,8 +31,12 @@ module Vagrant
|
||||||
@download_interrupted = false
|
@download_interrupted = false
|
||||||
|
|
||||||
unless env[:box_name].nil?
|
unless env[:box_name].nil?
|
||||||
if URI.parse(env[:box_name]).kind_of?(URI::HTTP)
|
begin
|
||||||
env[:ui].warn(I18n.t("vagrant.box_add_url_warn"))
|
if URI.parse(env[:box_name]).kind_of?(URI::HTTP)
|
||||||
|
env[:ui].warn(I18n.t("vagrant.box_add_url_warn"))
|
||||||
|
end
|
||||||
|
rescue URI::InvalidURIError
|
||||||
|
# do nothing
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -305,6 +305,28 @@ describe Vagrant::Action::Builtin::BoxAdd, :skip_windows do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "with a box name containing invalid URI characters" do
|
||||||
|
it "should not raise an error" do
|
||||||
|
box_path = iso_env.box2_file(:virtualbox)
|
||||||
|
with_web_server(box_path) do |port|
|
||||||
|
|
||||||
|
box_url_name = "box name with spaces"
|
||||||
|
env[:box_name] = box_url_name
|
||||||
|
|
||||||
|
expect(box_collection).to receive(:add).with { |path, name, version, **opts|
|
||||||
|
expect(name).to eq(box_url_name)
|
||||||
|
expect(version).to eq("0")
|
||||||
|
expect(opts[:metadata_url]).to be_nil
|
||||||
|
true
|
||||||
|
}.and_return(box)
|
||||||
|
|
||||||
|
expect(app).to receive(:call).with(env)
|
||||||
|
|
||||||
|
subject.call(env)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "with URL containing credentials" do
|
context "with URL containing credentials" do
|
||||||
let(:username){ "box-username" }
|
let(:username){ "box-username" }
|
||||||
let(:password){ "box-password" }
|
let(:password){ "box-password" }
|
||||||
|
|
Loading…
Reference in New Issue