Methods
C
S
T
Included Modules
Instance Public methods
cache_dir()
# File activesupport/test/caching_test.rb, line 689
def cache_dir
  File.join(Dir.pwd, 'tmp_cache')
end
setup()
# File activesupport/test/caching_test.rb, line 675
def setup
  Dir.mkdir(cache_dir) unless File.exist?(cache_dir)
  @cache = ActiveSupport::Cache.lookup_store(:file_store, cache_dir, :expires_in => 60)
  @peek = ActiveSupport::Cache.lookup_store(:file_store, cache_dir, :expires_in => 60)
  @cache_with_pathname = ActiveSupport::Cache.lookup_store(:file_store, Pathname.new(cache_dir), :expires_in => 60)

  @buffer = StringIO.new
  @cache.logger = ActiveSupport::Logger.new(@buffer)
end
teardown()
# File activesupport/test/caching_test.rb, line 685
def teardown
  FileUtils.rm_r(cache_dir)
end
test_cleanup_removes_all_expired_entries()
# File activesupport/test/caching_test.rb, line 767
def test_cleanup_removes_all_expired_entries
  time = Time.now
  @cache.write('foo', 'bar', expires_in: 10)
  @cache.write('baz', 'qux')
  @cache.write('quux', 'corge', expires_in: 20)
  Time.stubs(:now).returns(time + 15)
  @cache.cleanup
  assert_not @cache.exist?('foo')
  assert @cache.exist?('baz')
  assert @cache.exist?('quux')
end
test_clear()
# File activesupport/test/caching_test.rb, line 699
def test_clear
  filepath = File.join(cache_dir, ".gitkeep")
  FileUtils.touch(filepath)
  @cache.clear
  assert File.exist?(filepath)
end
test_delete_does_not_delete_empty_parent_dir()
# File activesupport/test/caching_test.rb, line 749
def test_delete_does_not_delete_empty_parent_dir
  sub_cache_dir = File.join(cache_dir, 'subdir/')
  sub_cache_store = ActiveSupport::Cache::FileStore.new(sub_cache_dir)
  assert_nothing_raised(Exception) do
    assert sub_cache_store.write('foo', 'bar')
    assert sub_cache_store.delete('foo')
  end
  assert File.exist?(cache_dir), "Parent of top level cache dir was deleted!"
  assert File.exist?(sub_cache_dir), "Top level cache dir was deleted!"
  assert Dir.entries(sub_cache_dir).reject {|f| ActiveSupport::Cache::FileStore::EXCLUDED_DIRS.include?(f)}.empty?
end
test_delete_matched_when_cache_directory_does_not_exist()

If nothing has been stored in the cache, there is a chance the cache directory does not yet exist Ensure delete_matched gracefully handles this case

# File activesupport/test/caching_test.rb, line 743
def test_delete_matched_when_cache_directory_does_not_exist
  assert_nothing_raised(Exception) do
    ActiveSupport::Cache::FileStore.new('/test/cache/directory').delete_matched(/does_not_exist/)
  end
end
test_filename_max_size()

Test that generated cache keys are short enough to have Tempfile stuff added to them and remain valid

# File activesupport/test/caching_test.rb, line 724
def test_filename_max_size
  key = "#{'A' * ActiveSupport::Cache::FileStore::FILENAME_MAX_SIZE}"
  path = @cache.send(:key_file_path, key)
  Dir::Tmpname.create(path) do |tmpname, n, opts|
    assert File.basename(tmpname+'.lock').length <= 255, "Temp filename too long: #{File.basename(tmpname+'.lock').length}"
  end
end
test_key_transformation()
# File activesupport/test/caching_test.rb, line 711
def test_key_transformation
  key = @cache.send(:key_file_path, "views/index?id=1")
  assert_equal "views/index?id=1", @cache.send(:file_path_key, key)
end
test_key_transformation_max_filename_size()

Because file systems have a maximum filename size, filenames > max size should be split in to directories If filename is 'AAAAB', where max size is 4, the returned path should be AAAA/B

# File activesupport/test/caching_test.rb, line 734
def test_key_transformation_max_filename_size
  key = "#{'A' * ActiveSupport::Cache::FileStore::FILENAME_MAX_SIZE}B"
  path = @cache.send(:key_file_path, key)
  assert path.split('/').all? { |dir_name| dir_name.size <= ActiveSupport::Cache::FileStore::FILENAME_MAX_SIZE}
  assert_equal 'B', File.basename(path)
end
test_key_transformation_with_pathname()
# File activesupport/test/caching_test.rb, line 716
def test_key_transformation_with_pathname
  FileUtils.touch(File.join(cache_dir, "foo"))
  key = @cache_with_pathname.send(:key_file_path, "views/index?id=1")
  assert_equal "views/index?id=1", @cache_with_pathname.send(:file_path_key, key)
end
test_log_exception_when_cache_read_fails()
# File activesupport/test/caching_test.rb, line 761
def test_log_exception_when_cache_read_fails
  File.expects(:exist?).raises(StandardError, "failed")
  @cache.send(:read_entry, "winston", {})
  assert @buffer.string.present?
end
test_long_keys()
# File activesupport/test/caching_test.rb, line 706
def test_long_keys
  @cache.write("a"*10000, 1)
  assert_equal 1, @cache.read("a"*10000)
end
test_write_with_unless_exist()
# File activesupport/test/caching_test.rb, line 779
def test_write_with_unless_exist
  assert_equal true, @cache.write(1, "aaaaaaaaaa")
  assert_equal false, @cache.write(1, "aaaaaaaaaa", unless_exist: true)
  @cache.write(1, nil)
  assert_equal false, @cache.write(1, "aaaaaaaaaa", unless_exist: true)
end