Use FixtureResolver in your tests to simulate the presence of files on the file system. This is used internally by Rails' own test suite, and is useful for testing extensions that have no way of knowing what the file system will look like at runtime.
# File lib/action_view/testing/resolvers.rb, line 11 def initialize(hash = {}, pattern=nil) super(pattern) @hash = hash end
# File lib/action_view/testing/resolvers.rb, line 16 def to_s @hash.keys.join(', ') end
# File lib/action_view/testing/resolvers.rb, line 22 def query(path, exts, formats) query = "" EXTENSIONS.each do |ext| query << '(' << exts[ext].map {|e| e && Regexp.escape(".#{e}") }.join('|') << '|)' end query = /^(#{Regexp.escape(path)})#{query}$/ templates = [] @hash.each do |_path, array| source, updated_at = array next unless _path =~ query handler, format = extract_handler_and_format(_path, formats) templates << Template.new(source, _path, handler, :virtual_path => path.virtual, :format => format, :updated_at => updated_at) end templates.sort_by {|t| -t.identifier.match(/^#{query}$/).captures.reject(&:blank?).size } end