Path: blob/master/spec/shared_examples/views/enumeration/timthumbs.rb
485 views
# frozen_string_literal: true12shared_examples 'App::Views::Enumeration::Timthumbs' do3let(:view) { 'timthumbs' }4let(:timthumb) { WPScan::Model::Timthumb }5let(:version) { WPScan::Model::Version.new('2.8.14', found_by: 'Bad Request') }67describe 'timthumbs' do8context 'when no timthumbs found' do9let(:expected_view) { File.join(view, 'none_found') }1011it 'outputs the expected string' do12@tpl_vars = tpl_vars.merge(timthumbs: [])13end14end1516context 'when timthumbs found' do17let(:tt) { timthumb.new("#{target_url}tt.php", found_by: 'Known Locations') }18let(:tt2) { timthumb.new("#{target_url}tt2.php", found_by: 'Known Locations') }19let(:timthumbs) { [tt, tt2] }2021context 'when not vulnerable' do22let(:expected_view) { File.join(view, 'no_vulns') }2324it 'outputs the expected string' do25expect(timthumbs[0]).to receive(:version).at_least(1).and_return(version)26expect(timthumbs[1]).to receive(:version).at_least(1).and_return(version)2728@tpl_vars = tpl_vars.merge(timthumbs: timthumbs)29end30end3132context 'when vulnerable' do33let(:expected_view) { File.join(view, 'with_vulns') }3435it 'outputs the expected string' do36expect(timthumbs[0]).to receive(:version).at_least(1).and_return(false)37expect(timthumbs[1]).to receive(:version).at_least(1).and_return(version)3839@tpl_vars = tpl_vars.merge(timthumbs: timthumbs)40end41end42end43end44end454647