Sha256: 968bddc3ad28541bd0b15658acd46d9fb5b37c94e3be38943b949422a430dd28

Contents?: true

Size: 1.07 KB

Versions: 5

Compression:

Stored size: 1.07 KB

Contents

require 'spec_helper'

shared_examples CMSScanner::Target::Server::IIS do

  describe '#server' do
    its(:server) { should eq :IIS }
  end

  describe '#directory_listing?, #directory_listing_entries' do
    before     { stub_request(:get, target.url(path)).to_return(body: body, status: status) }
    let(:path) { 'dir' }

    context 'when not a 200' do
      let(:status) { 404 }
      let(:body)   { '' }

      it 'returns false and an empty array' do
        expect(target.directory_listing?(path)).to be false
        expect(target.directory_listing_entries(path)).to eql []
      end
    end

    context 'when 200' do
      let(:status) { 200 }

      %w(with_parent.html no_parent.html).each do |file|
        context "when #{file} body" do
          let(:body)   { File.read(File.join(fixtures, 'directory_listing', file)) }

          it 'returns true and the expected array' do
            expect(target.directory_listing?(path)).to be true
            expect(target.directory_listing_entries(path)).to eq %w(sub-dir web.config)
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cms_scanner-0.0.6 spec/shared_examples/target/server/iis.rb
cms_scanner-0.0.5 spec/shared_examples/target/server/iis.rb
cms_scanner-0.0.4 spec/shared_examples/target/server/iis.rb
cms_scanner-0.0.3 spec/shared_examples/target/server/iis.rb
cms_scanner-0.0.2 spec/shared_examples/target/server/iis.rb