37 lines
1.2 KiB
Ruby
37 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe WPScan::Finders::ThemeVersion::Base do
|
|
subject(:theme_version) { described_class.new(theme) }
|
|
let(:theme) { WPScan::Model::Plugin.new(slug, target) }
|
|
let(:target) { WPScan::Target.new('http://wp.lab/') }
|
|
let(:slug) { 'spec' }
|
|
let(:default_finders) { %w[Style WooFrameworkMetaGenerator] }
|
|
|
|
describe '#finders' do
|
|
after do
|
|
expect(target).to receive(:content_dir).and_return('wp-content')
|
|
expect(theme_version.finders.map { |f| f.class.to_s.demodulize }).to eql @expected
|
|
end
|
|
|
|
context 'when no related dynamic finders' do
|
|
it 'contains the default finders' do
|
|
@expected = default_finders
|
|
end
|
|
end
|
|
|
|
# Dynamic Version Finders are not tested here, they are in
|
|
# spec/lib/finders/dynamic_finder/theme_versions_spec
|
|
context 'when dynamic finders' do
|
|
WPScan::DB::DynamicFinders::Theme.versions_finders_configs.each do |theme_slug, configs|
|
|
context "when #{theme_slug} theme" do
|
|
let(:slug) { theme_slug }
|
|
|
|
it 'contains the expected finders (default + the dynamic ones)' do
|
|
@expected = default_finders + configs.keys
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|