Sha256: 78b588b454385665bd2e32a5ea1d0385be6acf6f38de8fa9af1443d5dce6a7fc

Contents?: true

Size: 1.95 KB

Versions: 12

Compression:

Stored size: 1.95 KB

Contents

#!/usr/bin/env ruby

$:.unshift(File.join(File.dirname(__FILE__), '..', '..', '..','..','..','..','..', 'lib')) 

require 'rex/post/meterpreter/extensions/stdapi/railgun/dll'
require 'rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper'
require 'rex/post/meterpreter/extensions/stdapi/railgun/mock_magic'
require 'test/unit'

module Rex
module Post
module Meterpreter
module Extensions
module Stdapi
module Railgun
class DLLWrapper::UnitTest < Test::Unit::TestCase

	include MockMagic

	def test_functions
		mock_function_descriptions.each do |func|
			client = make_mock_client(func[:platform], func[:request_to_client], func[:response_from_client])
			dll = DLL.new(func[:dll_name], client)

			dll_wrapper = DLLWrapper.new(dll, client)

			# This represents how people check if a function doesn't exist
			assert(!dll_wrapper.functions[func[:name]], 'Function non-existence can be chucked via .functions')

			dll.add_function(func[:name], func[:return_type], func[:params])

			# This represents how people check if a function exist
			assert(dll_wrapper.functions[func[:name]], 'Function existence can be chucked via .functions')

			actual_returned_hash = dll_wrapper.send(:method_missing, func[:name].to_sym, *func[:ruby_args])

			assert_equal(func[:returned_hash], actual_returned_hash,
				"method_missing should result in a successful call to specified function")
		end
	end

	def test_method_missing
		mock_function_descriptions.each do |func|
			client = make_mock_client(func[:platform], func[:request_to_client], func[:response_from_client])
			dll = DLL.new(func[:dll_name], client)

			dll.add_function(func[:name], func[:return_type], func[:params])

			dll_wrapper = DLLWrapper.new(dll, client)

			actual_returned_hash = dll_wrapper.send(:method_missing, func[:name].to_sym, *func[:ruby_args])

			assert_equal(func[:returned_hash], actual_returned_hash,
				"method_missing should result in a successful call to specified function")
		end
	end
end
end
end
end
end
end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
librex-0.0.63 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb
librex-0.0.54 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb
librex-0.0.53 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb
librex-0.0.52 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb
librex-0.0.51 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb
librex-0.0.50 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb
librex-0.0.49 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb
librex-0.0.48 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb
librex-0.0.47 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb
librex-0.0.46 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb
librex-0.0.44 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb
librex-0.0.43 lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb.ut.rb