Files
wpscan/spec/lib/common/cache_file_store_spec.rb
2014-06-02 22:06:49 +02:00

86 lines
2.0 KiB
Ruby

# encoding: UTF-8
require 'spec_helper'
describe CacheFileStore do
let(:cache_dir) { SPEC_CACHE_DIR + '/cache_file_store' }
before :each do
Dir.delete(cache_dir) rescue nil
@cache = CacheFileStore.new(cache_dir)
end
after :each do
@cache.clean
end
describe '#storage_path' do
it 'returns the storage path given in the #new' do
expect(@cache.storage_path).to match(/#{cache_dir}/)
end
end
describe '#serializer' do
it 'should return the default serializer : Marshal' do
expect(@cache.serializer).to eq Marshal
expect(@cache.serializer).not_to eq YAML
end
end
describe '#clean' do
it "should remove all files from the cache dir (#{@cache_dir}" do
# let's create some files into the directory first
(0..5).each do |i|
File.new(@cache.storage_path + "/file_#{i}.txt", File::CREAT)
end
expect(count_files_in_dir(@cache.storage_path, 'file_*.txt')).to eq 6
@cache.clean
expect(count_files_in_dir(@cache.storage_path)).to eq 0
end
end
describe '#read_entry (nonexistent entry)' do
it 'should return nil' do
expect(@cache.read_entry(Digest::SHA1.hexdigest('hello world'))).to be_nil
end
end
describe '#write_entry, #read_entry' do
after :each do
@cache.write_entry(@key, @data, @timeout)
expect(@cache.read_entry(@key)).to be === @expected
end
it 'should get the correct entry (string)' do
@timeout = 10
@key = 'some_key'
@data = 'Hello World !'
@expected = @data
end
it 'should not write the entry' do
@timeout = 0
@key = 'another_key'
@data = 'Another Hello World !'
@expected = nil
end
## TODO write / read for an object
end
describe '#storage_dir' do
it 'should create a unique storage dir' do
storage_dirs = []
(1..5).each do |i|
storage_dirs << CacheFileStore.new(cache_dir).storage_path
end
expect(storage_dirs.uniq.size).to eq 5
end
end
end