Path: blob/master/spec/lib/finders/dynamic_finder/version/comment_spec.rb
1469 views
# frozen_string_literal: true12describe WPScan::Finders::DynamicFinder::Version::Comment do3module WPScan4module Finders5module Version6# Needed to be able to test the below7module Rspec8end9end10end11end1213let(:finder_module) { WPScan::Finders::Version::Rspec }14let(:finder_class) { WPScan::Finders::Version::Rspec::Comment }15let(:finder_config) { { 'pattern' => /some version: (?<v>[\d.]+)/i } }16let(:default) { { 'xpath' => '//comment()', 'confidence' => 60 } }1718before { described_class.create_child_class(finder_module, :Comment, finder_config) }19after { finder_module.send(:remove_const, :Comment) }2021describe '.create_child_class' do22context 'when no PATH and CONFIDENCE' do23it 'contains the expected constants to their default values' do24# Doesn't work, dunno why25# expect(finder_module.const_get(:Comment)).to be_a described_class26# expect(finder_class.is_a?(described_class)).to eql true27# expect(finder_class).to be_a described_class2829expect(finder_class::PATTERN).to eql finder_config['pattern']3031expect(finder_class::XPATH).to eql default['xpath']32expect(finder_class::CONFIDENCE).to eql default['confidence']33expect(finder_class::PATH).to eql nil34end35end3637context 'when CONFIDENCE' do38let(:finder_config) { super().merge('confidence' => 30) }3940it 'contains the expected constants' do41expect(finder_class::PATTERN).to eql finder_config['pattern']42expect(finder_class::CONFIDENCE).to eql finder_config['confidence']4344expect(finder_class::XPATH).to eql default['xpath']45expect(finder_class::PATH).to eql nil46end47end4849context 'when PATH' do50let(:finder_config) { super().merge('path' => 'file.txt') }5152it 'contains the expected constants' do53expect(finder_class::PATTERN).to eql finder_config['pattern']54expect(finder_class::PATH).to eql finder_config['path']5556expect(finder_class::CONFIDENCE).to eql default['confidence']57expect(finder_class::XPATH).to eql default['xpath']58end59end6061context 'when XPATH' do62let(:finder_config) { super().merge('xpath' => '//comment()[contains(. "aa")]') }6364it 'contains the expected constants' do65expect(finder_class::PATTERN).to eql finder_config['pattern']66expect(finder_class::XPATH).to eql finder_config['xpath']6768expect(finder_class::PATH).to eql nil69expect(finder_class::CONFIDENCE).to eql default['confidence']70end71end72end7374describe '#passive, #aggressive' do75# Handled in spec/lib/finders/dynamic_finder/plugin_version_spec76end77end787980