Add rspec for RandomStatements class

GSoC/Meterpreter_Web_Console
Wei Chen 2018-06-27 16:50:09 -05:00
parent bc0b42c55b
commit a9427ef9ef
1 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,41 @@
require 'spec_helper'
require 'metasploit/framework/obfuscation/crandomizer/random_statements'
require 'metasploit/framework/obfuscation/crandomizer/code_factory'
RSpec.describe Metasploit::Framework::Obfuscation::CRandomizer::RandomStatements do
let(:c_source_code) do
%Q|
int main() {
const char* s = "hello world";
return 0;
}|
end
subject(:random_statements) do
parser = Metasploit::Framework::Obfuscation::CRandomizer::Utility.parse(c_source_code)
fake_function_size = rand(0..3)
fake_function_collection = Metasploit::Framework::Obfuscation::CRandomizer::CodeFactory::FakeFunctionCollection.new(fake_function_size)
described_class.new(parser, fake_function_collection)
end
describe '#initialize' do
it 'sets the parser' do
expect(subject.parser.class).to eq(Metasm::C::Parser)
end
it 'sets the fake function collection object' do
expect(subject.fake_function_collection.class).to eq(Metasploit::Framework::Obfuscation::CRandomizer::CodeFactory::FakeFunctionCollection)
end
it 'sets the fake function list' do
expect(subject.function_list).not_to be_empty
end
end
describe '#get' do
it 'returns an array' do
expect(subject.get.class).to eq(Array)
end
end
end