Sha256: ce1bb298a07937a42bf3d312418bedf97aaf33ee6015553b5abe14f0e1b71151

Contents?: true

Size: 1.41 KB

Versions: 7

Compression:

Stored size: 1.41 KB

Contents

require 'spec_helper'

describe CMSScanner::Finders::Finder::SmartURLChecker do
  # Dummy class to test the module
  class DummyFinder < CMSScanner::Finders::Finder
    include CMSScanner::Finders::Finder::SmartURLChecker
  end

  subject(:finder) { DummyFinder.new(target) }
  let(:target)     { CMSScanner::Target.new('http://e.org') }

  before { stub_request(:get, target.url) }

  context 'when methods are not implemented' do
    it 'raises errors' do
      expect { finder.process_urls([]) }.to raise_error NotImplementedError
      expect { finder.passive }.to raise_error NotImplementedError
      expect { finder.aggressive_urls }.to raise_error NotImplementedError
    end
  end

  describe '#aggressive' do
    before { expect(finder).to receive(:aggressive_urls).and_return(%w(u1 u2 u3)) }

    after do
      expect(finder).to receive(:process_urls).with(@expected_urls, mode: mode)
      finder.aggressive(mode: mode)
    end

    context 'when :mode = :mixed' do
      before { expect(finder).to receive(:passive_urls).and_return(%w(u2)) }

      let(:mode) { :mixed }

      it 'calls #process_urls with the correct argument' do
        @expected_urls = %w(u1 u3)
      end
    end

    [:passive, :aggressive].each do |m|
      context "when :mode = #{m}" do
        let(:mode) { m }

        it 'calls #process_urls with the correct argument' do
          @expected_urls = %w(u1 u2 u3)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
cms_scanner-0.0.18 spec/lib/finders/finder/smart_url_checker_spec.rb
cms_scanner-0.0.17 spec/lib/finders/finder/smart_url_checker_spec.rb
cms_scanner-0.0.16 spec/lib/finders/finder/smart_url_checker_spec.rb
cms_scanner-0.0.15 spec/lib/finders/finder/smart_url_checker_spec.rb
cms_scanner-0.0.14 spec/lib/finders/finder/smart_url_checker_spec.rb
cms_scanner-0.0.13 spec/lib/finders/finder/smart_url_checker_spec.rb
cms_scanner-0.0.12 spec/lib/finders/finder/smart_url_checker_spec.rb