diff --git a/test/functional/meterpreter/meterpreter_java_spec.rb b/test/functional/meterpreter/meterpreter_java_spec.rb index f1604e00c9..aa5d090772 100644 --- a/test/functional/meterpreter/meterpreter_java_spec.rb +++ b/test/functional/meterpreter/meterpreter_java_spec.rb @@ -1,3 +1,4 @@ +$:.unshift(File.join(File.dirname(__FILE__))) $:.unshift(File.join(File.dirname(__FILE__), '..', '..', '..', 'lib')) $:.unshift(File.join(File.dirname(__FILE__), '..', '..', '..', 'test', 'lib')) @@ -27,7 +28,7 @@ describe "JavaMeterpreter" do @meterpreter_type = "java" ## Set up an outupt directory - @output_directory = "test_output_#{@meterpreter_type}" + @output_directory = File.join(File.dirname(__FILE__), "test_output_#{@meterpreter_type}") if File.directory? @output_directory FileUtils.rm_rf(@output_directory) @@ -48,8 +49,8 @@ describe "JavaMeterpreter" do end after :all do - FileUtils.rm_rf("*.jpeg") - FileUtils.rm_rf("payload.jar") + #FileUtils.rm_rf("*.jpeg") + #FileUtils.rm_rf("payload.jar") FileUtils.rm_rf(@output_directory) end diff --git a/test/functional/meterpreter/meterpreter_php_spec.rb b/test/functional/meterpreter/meterpreter_php_spec.rb index 0f38888782..20aa632163 100644 --- a/test/functional/meterpreter/meterpreter_php_spec.rb +++ b/test/functional/meterpreter/meterpreter_php_spec.rb @@ -1,3 +1,4 @@ +$:.unshift(File.join(File.dirname(__FILE__))) $:.unshift(File.join(File.dirname(__FILE__), '..', '..', '..', 'lib')) $:.unshift(File.join(File.dirname(__FILE__), '..', '..', '..', 'test', 'lib')) @@ -23,7 +24,7 @@ describe "PhpMeterpreter" do @meterpreter_type = "php" ## Set up an outupt directory - @output_directory = "test_output_#{@meterpreter_type}" + @output_directory = File.join(File.dirname(__FILE__), "test_output_#{@meterpreter_type}") if File.directory? @output_directory FileUtils.rm_rf(@output_directory) diff --git a/test/functional/meterpreter/meterpreter_win32_spec.rb b/test/functional/meterpreter/meterpreter_win32_spec.rb index af1c7e9298..80f323d554 100644 --- a/test/functional/meterpreter/meterpreter_win32_spec.rb +++ b/test/functional/meterpreter/meterpreter_win32_spec.rb @@ -1,15 +1,22 @@ +$:.unshift(File.join(File.dirname(__FILE__))) +$:.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib')) $:.unshift(File.join(File.dirname(__FILE__), '..', '..', '..', 'lib')) $:.unshift(File.join(File.dirname(__FILE__), '..', '..', '..', 'test', 'lib')) require 'fileutils' require 'msf/base' require 'meterpreter_spec_helper' +require 'msf_matchers' require 'meterpreter_specs' require 'windows_meterpreter_specs' module MsfTest describe "Win32Meterpreter" do + + # Include Custom Matchers + include MsfTest::MsfMatchers + # This include brings in all the spec helper methods include MsfTest::MeterpreterSpecHelper @@ -28,7 +35,7 @@ describe "Win32Meterpreter" do @meterpreter_type = "win32" ## Set up an outupt directory - @output_directory = "test_output_#{@meterpreter_type}" + @output_directory = File.join(File.dirname(__FILE__), "test_output_#{@meterpreter_type}") if File.directory? @output_directory FileUtils.rm_rf(@output_directory) @@ -46,13 +53,22 @@ describe "Win32Meterpreter" do after :each do @session.init_ui(@input, @output) - - ## Clean Up - FileUtils.rm_rf(@output_directory) - end + end after :all do + + ## Clean up test output FileUtils.rm_rf(@output_directory) + + ## Screenshot command leaves .jpegs :( + ## TODO - fix the meterpreter command to write to + ## TODO - an arbitrary file. + Dir.new(File.dirname(__FILE__)).each do |file| + if file =~ /.jpeg/ + File.delete(file) + end + end + end def create_session_windows_x32 @@ -76,9 +92,11 @@ describe "Win32Meterpreter" do ## If a session came back, try to interact with it. if @session + puts "got a session" @session.load_stdapi else - flunk "Couldn't get a session!" + puts "unable to get session" + #flunk "Couldn't get a session!" end end diff --git a/test/lib/msf_matchers.rb b/test/lib/msf_matchers.rb index 0e6d528027..c62d3daa1b 100644 --- a/test/lib/msf_matchers.rb +++ b/test/lib/msf_matchers.rb @@ -1,6 +1,8 @@ $:.unshift(File.join((File.dirname(__FILE__)))) require 'regexr' +module MsfTest + module MsfMatchers class ContainACompleteTest @@ -30,7 +32,7 @@ module MsfMatchers class ContainAllSuccesses - def initialize(successes) + def initialize(successes=[]) @successes = successes @r = Regexr.new(true) end @@ -53,13 +55,13 @@ module MsfMatchers #alias :have_all_successes :contain_all_successes end - def contain_all_successes(successes) + def contain_all_successes(successes=[]) ContainAllSuccesses.new(successes) end class ContainNoFailuresExcept - def initialize(failures,exceptions) + def initialize(failures=[],exceptions=[]) @failures = failures @exceptions = exceptions @r = Regexr.new(true) @@ -83,9 +85,10 @@ module MsfMatchers #alias :have_no_failures :contain_no_failures end - def contain_no_failures_except(failures,exceptions) + def contain_no_failures_except(failures=[],exceptions=[]) ContainNoFailuresExcept.new(failures,exceptions) end end +end