diff --git a/spec/lib/msf/http/jboss/base_spec.rb b/spec/lib/msf/http/jboss/base_spec.rb index 7f8c211d58..d23ca01f73 100644 --- a/spec/lib/msf/http/jboss/base_spec.rb +++ b/spec/lib/msf/http/jboss/base_spec.rb @@ -58,4 +58,72 @@ describe Msf::HTTP::JBoss::Base do end end + describe "#query_serverinfo" do + before :each do + allow(subject).to receive(:send_request_cgi) do + if res_code.nil? + res = nil + else + res = Rex::Proto::Http::Response.new + res.code = res_code + end + + res + end + end + + context 'when server timeouts' do + let(:res_code) { nil } + it { expect(subject.query_serverinfo()).to be_nil } + end + + context 'when server returns 200' do + let(:res_code) { 200 } + it { expect(subject.query_serverinfo()).to be_kind_of Rex::Proto::Http::Response } + end + end + + describe "#detect_plateform" do + context "when server arch is Linux" do + res = Rex::Proto::Http::Response.new + res.body = "OSName: Linux" + it { expect(subject.detect_platform(res)).to eq "linux" } + end + + context "when server arch is Windows" do + res = Rex::Proto::Http::Response.new + res.body = "OSName: Windows" + it { expect(subject.detect_platform(res)).to eq "win" } + end + + context "return nil if no OS match" do + res = Rex::Proto::Http::Response.new + res.body = "OSName: Blah" + it { expect(subject.detect_platform(res)).to be_nil } + end + + context "return nil res is nil" do + res = nil + it { expect(subject.detect_platform(res)).to be_nil } + end + end + + describe "#detect_architecture" do + context "when server arch is x86" do + res = Rex::Proto::Http::Response.new + res.body = "OSArch: i386" + it { expect(subject.detect_architecture(res)).to eq ARCH_X86 } + end + + context "return nil if no architecture match" do + res = Rex::Proto::Http::Response.new + res.body = "OSArch: Blah" + it { expect(subject.detect_architecture(res)).to be_nil } + end + + context "return nil res is nil" do + res = nil + it { expect(subject.detect_architecture(res)).to be_nil } + end + end end