$:.unshift(File.join((File.dirname(__FILE__)))) require 'regexr' module MsfMatchers class ContainACompleteTest def initialize() @r = Regexr.new(true) end def matches?(data) @data = data return @r.verify_start_and_end(@data,"meterpreter_functional_test_start", "meterpreter_functional_test_end") end def failure_message "Beginning or end was incorrect." end def negative_failure_message "Expected to find a no beginning or end, but it matched." end end def contain_a_complete_test ContainACompleteTest.new end class ContainAllSuccesses def initialize(successes) @successes = successes @r = Regexr.new(true) end def matches?(data) @data = data @string = @r.find_strings_that_dont_exist_in_data(@data,@successes) return true if !@string nil end def failure_message "expected all successes, but didn't find '#{@string}'" end def negative_failure_message "expected to miss successes but found'm all :(" end #alias :have_all_successes :contain_all_successes end def contain_all_successes(successes) ContainAllSuccesses.new(successes) end class ContainNoFailuresExcept def initialize(failures,exceptions) @failures = failures @exceptions = exceptions @r = Regexr.new(true) end def matches?(data) @data = data @string = @r.find_strings_that_exist_in_data_except(@data,@failures,@exceptions) return true if !@string nil end def failure_message "expected no failure to be found, but found this: '#{@string}'" end def negative_falure_message "expected to find failures, but didn't find any :(" end #alias :have_no_failures :contain_no_failures end def contain_no_failures_except(failures,exceptions) ContainNoFailuresExcept.new(failures,exceptions) end end