Path: blob/master/spec/app/finders/wp_version/readme_spec.rb
1483 views
# frozen_string_literal: true12describe WPScan::Finders::WpVersion::Readme do3subject(:finder) { described_class.new(target) }4let(:target) { WPScan::Target.new(url).extend(CMSScanner::Target::Server::Apache) }5let(:url) { 'http://ex.lo/' }6let(:fixtures) { FINDERS_FIXTURES.join('wp_version', 'readme') }7let(:readme_url) { "#{url}readme.html" }89describe '#aggressive' do10before { stub_request(:get, readme_url).to_return(body: File.read(fixtures.join(file))) }1112after do13expect(target).to receive(:sub_dir).and_return(false)14expect(finder.aggressive).to eql @expected15end1617context 'when no version' do18let(:file) { 'no_version.html' }1920it 'returns nil' do21@expected = nil22end23end2425context 'when invalid version number' do26let(:file) { 'invalid.html' }2728it 'returns nil' do29@expected = nil30end31end3233context 'when present and valid' do34let(:file) { '4.0.html' }3536it 'returns the expected version' do37@expected = WPScan::Model::WpVersion.new(38'4.0',39confidence: 90,40found_by: 'Readme (Aggressive Detection)',41interesting_entries: [42"#{readme_url}, Match: 'Version 4.0'"43]44)45end46end47end48end495051