Sha256: 3bc69470b5377b3385ff3c7ca40a8276eca671e0b26e5f19714f7cdb67fb8567

Contents?: true

Size: 1.87 KB

Versions: 61

Compression:

Stored size: 1.87 KB

Contents

require 'spec_helper'

describe Metasploit::Credential::Importer::Multi do
  include_context 'Mdm::Workspace'
  include_context 'metasploit_credential_importer_zip_file'

  UNSUPPORTED_FILE = 'bad.txt'
  INVALID_CSV_FILE = 'malformed.csv'
  VALID_CSV_FILE   = 'well-formed.csv'

  let(:import_origin){ FactoryGirl.create :metasploit_credential_origin_import }
  let(:supported_file){ FactoryGirl.generate :metasploit_credential_importer_zip_file }
  let(:unsupported_file){ File.open("#{Dir.tmpdir}/#{UNSUPPORTED_FILE}", 'wb') }

  let(:invalid_csv){ FactoryGirl.generate(:malformed_csv)}
  let(:valid_csv){ FactoryGirl.generate(:well_formed_csv_compliant_header)}

  let(:valid_csv_file) do
    File.open("#{Dir.tmpdir}/#{VALID_CSV_FILE}", 'w') do |file|
      file << valid_csv.read
    end
  end

  describe "validation" do
    describe "when given a file that is not a zip or a CSV" do
      subject(:multi_importer){ Metasploit::Credential::Importer::Multi.new(input: File.open(unsupported_file), origin: import_origin)}

      it { should_not be_valid }
    end

    context "when given zip file" do
      subject(:multi_importer){ Metasploit::Credential::Importer::Multi.new(input: File.open(supported_file), origin: import_origin)}

      it { should be_valid }
    end

    describe "#csv?" do
      describe 'when the file can be opened as a CSV' do
        subject(:multi_importer){ Metasploit::Credential::Importer::Multi.new(input: File.open(valid_csv_file), origin: import_origin)}

        it 'should return true' do
          multi_importer.csv?.should be_true
        end
      end

      describe 'when the file is not a well-formed CSV' do
        subject(:multi_importer){ Metasploit::Credential::Importer::Multi.new(input: File.open(unsupported_file), origin: import_origin)}

        it 'should return true' do
          multi_importer.csv?.should be_false
        end
      end
    end
  end
end

Version data entries

61 entries across 61 versions & 1 rubygems

Version Path
metasploit-credential-0.14.8 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-1.0.0.pre.rails.pre.4.0c spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-1.0.0.pre.rails.pre.4.0b spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-1.0.0.pre.rails.pre.4.0 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.14.5 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.14.4 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.14.3 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.14.2 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.14.1 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.14.0 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.13.19 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.13.18 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.13.17 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.13.16 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.13.15 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.13.12 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.13.11 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.13.10 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.13.9 spec/lib/metasploit/credential/importer/multi_spec.rb
metasploit-credential-0.13.8 spec/lib/metasploit/credential/importer/multi_spec.rb