class Smokegraphy::TestCase
Public Class Methods
suite()
click to toggle source
Calls superclass method
# File lib/smokegraphy/test_case.rb, line 11 def self.suite suite = super @@config = YAML.load_file('config.yaml') @@rc = ResourceController.build(@@config) @@http_server = @@config["http"]["server"] def suite.run(*args) if (name != "Smokegraphy::TestCase") then @@rc.init super @@rc.close end end suite end
Public Instance Methods
deploy(filename)
click to toggle source
# File lib/smokegraphy/test_case.rb, line 56 def deploy(filename) @@rc.transfer_source_file(filename, @suite) end
prepare()
click to toggle source
# File lib/smokegraphy/test_case.rb, line 44 def prepare @@rc.transfer_source_file(@filename, @suite) suffix = @filename.gsub(/[^\.]*\.([a-z0-9]*)/, "\\1") @@rc.add_execute_permission(@filename) if suffix == "cgi" # no warning begin @@rc.transfer_source_file("#{@filename.gsub(/\./, "_")}.htaccess", @suite, ".htaccess") rescue => ever end end
setup()
click to toggle source
# File lib/smokegraphy/test_case.rb, line 29 def setup @log = Logger.new("test.log") @log.datetime_format = "%Y-%m-%d %H:%M:%S" name.match(/(.*)\((.*)\)/) @testname = $1 @suite = $2.gsub(/([A-Z])/, "_\\1").downcase.gsub(/^_/,"").gsub(/^test_/,"") @filename = @testname.gsub(/test_(.*)_([^_]*)$/, "\\1.\\2").gsub(/_html/,".html") prepare end
simple_test(options = {}) { |res| ... }
click to toggle source
# File lib/smokegraphy/test_case.rb, line 60 def simple_test(options = {}) @@rc.transfer_source_file("#{options[:htaccess]}.htaccess", @suite, ".htaccess") if (options[:htaccess]) begin # prepare request object uri = "/" if @@config["http"]["base_path"] then uri << @@config["http"]["base_path"] uri << "/" end uri << (options[:request_uri] ? options[:request_uri] : @filename) uri << "?%s" % options[:query].map { |k,v| "%s=%s" % [k,v] }.sort.join("&") if options[:query] if (options[:method] == :post) then req = Net::HTTP::Post.new(uri) req.body = options[:post_data].map { |k,v| "%s=%s" % [k,v] }.sort.join("&") if options[:post_data] req["Request-Method"] = "POST" req["Content-Length"] = req.body.size else req = Net::HTTP::Get.new(uri) end # setup request header options[:request_header].each {|k,v| req[k] = v } if (options[:request_header] != nil) req["Host"] = @@http_server Net::HTTP.start(@@http_server, 80) do |http| # execute http access res = http.request(req) # check status code. assert_equal(options[:code] ? options[:code].to_s : "200", res.code, "status code check failed. [filename: #{@filename}]") # check body if (res.code == "200" && (!block_given? || options[:expected] == true)) then expected = "expected/#{@suite}/#{@filename.gsub(/\./, "_")}.result" assert_equal(File.new(File.exist?(expected) ? expected : "source/#{@suite}/#{@filename}").read, res.body) end # block process yield res if block_given? end rescue => evar @log.info(evar) result = "Failed" else result = "Success" ensure @log.info("test #{@suite}:#{@filename}: #{result} [#{options.keys.join(", ")}]") @@rc.cleanup(".htaccess") if options[:htaccess] end raise evar if (evar) end
teardown()
click to toggle source
# File lib/smokegraphy/test_case.rb, line 40 def teardown # @@rc.cleanup end