inspec/test/unit/utils/find_files_test.rb
Jerry Aldrich 9e8724ca6e nginx_conf resource: Fix include paths with quotes (#2726)
* nginx_conf resource: Fix include paths with quotes
* Move quote removal to `NginxParser`
* Add parsers/tests for quotes in quotes

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-05-03 09:53:20 -04:00

59 lines
1.6 KiB
Ruby

# encoding: utf-8
# author: Stephan Renatus
require 'helper'
describe FindFiles do
let (:helper) do
class FindFilesTest
include FindFiles
def inspec
Inspec::Backend.create(backend: :mock)
end
end
FindFilesTest.new
end
let(:inspec) { mock }
let(:result) { mock }
describe '#find_files' do
it 'returns an empty array when no files are found' do
helper.expects(:warn)
helper.find_files('/no/such/mock', type: 'file', depth: 1).must_equal([])
end
end
describe '#find_files_or_warn' do
before do
helper.expects(:inspec).returns(inspec)
result.stubs(:exit_status).returns(0)
result.stubs(:stdout).returns('mock')
end
it 'constructs the correct command' do
inspec.expects(:command).with("sh -c 'find /a/b/'").returns(result)
helper.find_files('/a/b/')
end
it 'builds the correct command when a single quote is used' do
inspec.expects(:command).with('sh -c "find /a/\'b/"').returns(result)
helper.find_files("/a/'b/")
end
it 'constructs the correct command when a double quote is in the path' do
inspec.expects(:command).with("sh -c 'find /a/\"b/'").returns(result)
helper.find_files('/a/"b/')
end
it 'builds the correct command when an escaped single quote is used' do
inspec.expects(:command).with('sh -c "find /a/\\\'b/"').returns(result)
helper.find_files('/a/\\\'b/')
end
it 'builds the correct command when an escaped double quote is used' do
inspec.expects(:command).with("sh -c 'find /a/\\\"b/'").returns(result)
helper.find_files('/a/\"b/')
end
end
end