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.
74 lines
2.1 KiB
Ruby
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
|