vaguerent/test/unit/plugins/providers/virtualbox/synced_folder_test.rb
Erik Lattimore 28a92850ab Allow synced folders to contain spaces in the guest path
It should be valid to allow paths with spaces for the synced folder
guest path but since the guest path is used to generate the ID (if one
isn't provided), this will err out in VirtualBox because it doesn't
allow spaces for the --name argument. We should simply convert ' ' to
'_' as we do with other special characters.
2017-09-29 17:24:12 -04:00

74 lines
2.1 KiB
Ruby

require "vagrant"
require Vagrant.source_root.join("test/unit/base")
require Vagrant.source_root.join("plugins/providers/virtualbox/config")
require Vagrant.source_root.join("plugins/providers/virtualbox/synced_folder")
describe VagrantPlugins::ProviderVirtualBox::SyncedFolder do
let(:machine) do
double("machine").tap do |m|
allow(m).to receive(:provider_config).and_return(VagrantPlugins::ProviderVirtualBox::Config.new)
allow(m).to receive(:provider_name).and_return(:virtualbox)
end
end
subject { described_class.new }
before do
machine.provider_config.finalize!
end
describe "usable" do
it "should be with virtualbox provider" do
allow(machine).to receive(:provider_name).and_return(:virtualbox)
expect(subject).to be_usable(machine)
end
it "should not be with another provider" do
allow(machine).to receive(:provider_name).and_return(:vmware_fusion)
expect(subject).not_to be_usable(machine)
end
it "should not be usable if not functional vboxsf" do
machine.provider_config.functional_vboxsf = false
expect(subject).to_not be_usable(machine)
end
end
describe "prepare" do
let(:driver) { double("driver") }
before do
allow(machine).to receive(:driver).and_return(driver)
end
it "should share the folders"
end
describe "os_friendly_id" do
it "should not replace normal chars" do
expect(subject.send(:os_friendly_id, 'perfectly_valid0_name')).to eq('perfectly_valid0_name')
end
it "should replace spaces" do
expect(subject.send(:os_friendly_id, 'Program Files')).to eq('Program_Files')
end
it "should replace leading underscore" do
expect(subject.send(:os_friendly_id, '_vagrant')).to eq('vagrant')
end
it "should replace slash" do
expect(subject.send(:os_friendly_id, 'va/grant')).to eq('va_grant')
end
it "should replace leading underscore and slash" do
expect(subject.send(:os_friendly_id, '/vagrant')).to eq('vagrant')
end
it "should replace backslash" do
expect(subject.send(:os_friendly_id, 'foo\\bar')).to eq('foo_bar')
end
end
end