Sha256: daf8de5bf6d6a864f0d4e5d33c8cd1b05a327e8a3b7819415e5f466d26b93598

Contents?: true

Size: 1.47 KB

Versions: 1

Compression:

Stored size: 1.47 KB

Contents

require_relative '../../spec_helper'
require_testee

class ProgressBarTest
    include Arachni::Mixins::ProgressBar
end

describe Arachni::Mixins::ProgressBar do

    before :all do
        @pb = ProgressBarTest.new
    end

    describe '#format_time' do
        it 'formats seconds to hourr:min:sec' do
            @pb.format_time( '3745' ).should == '01:02:25'
        end
    end

    describe '#eta' do
        it 'calculates ETA based on progress and start-time of operation' do
            start_time = Time.at( Time.now - 3600 )
            @pb.eta( 0, start_time ).should == "--:--:--"
            @pb.eta( 10, start_time ).should == "09:00:00"
            @pb.eta( 50, start_time ).should == "01:00:00"
            @pb.eta( 70, start_time ).should == "00:25:42"
            @pb.eta( 90, start_time ).should == "00:06:40"
            @pb.eta( 100, start_time ).should == "00:00:00"
        end
    end

    describe '#progress_bar' do
        it 'returns an ASCII progress-bar' do
            @pb.progress_bar( 0 ).should =~ /^0% \[=>\s+\] 100%/
            @pb.progress_bar( 50 ).should =~ /^50% \[=/
            @pb.progress_bar( 50.6 ).should =~ /^50\.6% \[=/
            @pb.progress_bar( 80 ).should =~ /^80% \[=/
            @pb.progress_bar( 84.99 ).should =~ /^84\.99% \[=/
            @pb.progress_bar( 100 ).should =~ /^100% \[=+>\] 100%/
        end

        it 'must not go beyond 100%' do
            @pb.progress_bar( 1400 ).should =~ /^100\.0% \[=+>\] 100%/
        end
    end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
arachni-0.4.2 spec/arachni/mixins/progress_bar_spec.rb