require 'rubygems' require 'test/unit' require 'shoulda' require 'mocha' require 'rack/test' require 'webrat' require 'thor/group' # We try to load the vendored padrino-core if exist %w(core).each do |lib| if File.exist?(File.dirname(__FILE__) + "/../../padrino-#{lib}/lib") $:.unshift File.dirname(__FILE__) + "/../../padrino-#{lib}/lib" end end require 'padrino-gen' require 'padrino-core/support_lite' Padrino::Generators.load_components! class Test::Unit::TestCase include Rack::Test::Methods include Webrat::Methods include Webrat::Matchers Webrat.configure do |config| config.mode = :rack end def stop_time_for_test time = Time.now Time.stubs(:now).returns(time) return time end # generate(:controller, 'DemoItems', '-r=/tmp/sample_project') def generate(name, *params) "Padrino::Generators::#{name.to_s.camelize}".constantize.start(params) end # assert_has_tag(:h1, :content => "yellow") { "

yellow

" } # In this case, block is the html to evaluate def assert_has_tag(name, attributes = {}, &block) html = block && block.call matcher = HaveSelector.new(name, attributes) raise "Please specify a block!" if html.blank? assert matcher.matches?(html), matcher.failure_message end # assert_has_no_tag, tag(:h1, :content => "yellow") { "

green

" } # In this case, block is the html to evaluate def assert_has_no_tag(name, attributes = {}, &block) html = block && block.call attributes.merge!(:count => 0) matcher = HaveSelector.new(name, attributes) raise "Please specify a block!" if html.blank? assert matcher.matches?(html), matcher.failure_message end # assert_file_exists('/tmp/app') def assert_file_exists(file_path) assert File.exist?(file_path), "File at path '#{file_path}' does not exist!" end alias :assert_dir_exists :assert_file_exists # assert_no_file_exists('/tmp/app') def assert_no_file_exists(file_path) assert !File.exist?(file_path), "File should not exist at path '#{file_path}' but was found!" end alias :assert_no_dir_exists :assert_no_file_exists # Asserts that a file matches the pattern def assert_match_in_file(pattern, file) File.exist?(file) ? assert_match(pattern, File.read(file)) : assert_file_exists(file) end def assert_no_match_in_file(pattern, file) File.exists?(file) ? !assert_match(pattern, File.read(file)) : assert_file_exists(file) end end class Object # Silences the output by redirecting to stringIO # silence_logger { ...commands... } => "...output..." def silence_logger(&block) orig_stdout = $stdout $stdout = log_buffer = StringIO.new block.call $stdout = orig_stdout log_buffer.rewind && log_buffer.read end end module Webrat module Logging def logger # :nodoc: @logger = nil end end end