class ContextManager
Constants
- VARNISHTEST_FILE
Attributes
expected_cache_hits[W]
Server level expectations
expected_cache_misses[W]
expected_passed_requests[W]
expected_piped_requests[W]
expected_request_count[W]
Public Class Methods
instance()
click to toggle source
# File lib/cucumber/varnishtest/context_manager.rb, line 13 def self.instance() # Get instance from class @instance ||= self.new() end
reset!()
click to toggle source
# File lib/cucumber/varnishtest/context_manager.rb, line 18 def self.reset! # Clear out the instance, start fresh @instance = nil end
Public Instance Methods
client_expect(attribute, value)
click to toggle source
# File lib/cucumber/varnishtest/context_manager.rb, line 33 def client_expect(attribute, value) @client_expectations ||= {} @client_expectations[attribute] = value end
request(path, method)
click to toggle source
# File lib/cucumber/varnishtest/context_manager.rb, line 28 def request(path, method) @requests ||= [] @requests << VarnishtestRequest.new(path, method) end
test!()
click to toggle source
# File lib/cucumber/varnishtest/context_manager.rb, line 70 def test! File.open(VARNISHTEST_FILE, 'w') do |file| file.write(varnishtest_conf) end output = `varnishtest #{VARNISHTEST_FILE}` result = $? == 0 File.open('varnishtest.out', 'w') do |file| file.write(output) end raise [ output.split("\n").select{|line| line.match("---- v1")}, "See #{VARNISHTEST_FILE} and varnishtest.err debuggin'" ].join("\n\n\n\n") unless result end
varnishtest_conf()
click to toggle source
# File lib/cucumber/varnishtest/context_manager.rb, line 38 def varnishtest_conf return <<-eos varnishtest "This is my first test" server s1 { #{@requests.map{"rxreq\ntxresp -body \"hello world\""}.join("\naccept\n\n")} } -start varnish v1 -vcl { #{File.read(@vcl_file)} } -start client c1 { #{ (@requests || []).map{|req| req.to_varnishtest}.join("\n\n") } #{ (@client_expectations || []).map do |attribute, value| "expect #{attribute} == #{value}" end.join("\n") } } -run #{@expected_cache_hits.nil? ? "" : "varnish v1 -expect cache_hit == #{@expected_cache_hits}"} #{@expected_cache_misses.nil? ? "" : "varnish v1 -expect cache_miss == #{@expected_cache_misses}"} #{@expected_request_count.nil? ? "" : "varnish v1 -expect client_req == #{@expected_request_count}"} #{@expected_piped_requests.nil? ? "" : "varnish v1 -expect s_pipe == #{@expected_piped_requests}"} #{@expected_passed_requests.nil? ? "" : "varnish v1 -expect s_pass == #{@expected_passed_requests}"} eos end
vcl_file=(vcl_file)
click to toggle source
# File lib/cucumber/varnishtest/context_manager.rb, line 23 def vcl_file=(vcl_file) @vcl_file = vcl_file raise "VCL file '#{vcl_file}' not found." unless File.exist?(vcl_file) end