Sha256: 8747e50c8ad29cfe4cd04c4d6902078d247725cfc6c4f13f90bf4cf3d2fed9f2

Contents?: true

Size: 1.61 KB

Versions: 7

Compression:

Stored size: 1.61 KB

Contents

RSpec::Matchers.define :match_url do |url|
  match do |given|
    given_path, given_query_string = given.split('?')
    path, query_string = url.split('?')

    path == given_path && given_query_string.split('&').sort == query_string.split('&').sort
  end
end

RSpec::Matchers.define :be_an_empty_directory do
  match do |given|
    !!ENV['TRAVIS'] || (Dir.entries(given) == ['.','..'])
  end
end

RSpec::Matchers.define :include_hash do |hash|
  match do |given|
    given.merge(hash) == given
  end
end

def memory_usage
  GC.start # Garbage collect
  `ps -o rss= -p #{$$}`.strip.to_i
end

RSpec::Matchers.define :leak_memory do
  match do |given|
    memory_before = memory_usage
    given.call
    memory_after = memory_usage
    result = memory_after > memory_before
    puts "#{memory_after} > #{memory_before}" if result
    result
  end
end

RSpec::Matchers.define :match_attachment_classes do |classes|
  match do |given_classes|
    given_classes.length == classes.length &&
      classes.zip(given_classes).all? do |(klass, given)|
        given.model_class == klass[0] && given.attribute == klass[1] && given.app == klass[2]
      end
  end
end

RSpec::Matchers.define :be_a_text_response do
  match do |given_response|
    given_response.status.should == 200
    given_response.body.length.should > 0
    given_response.content_type.should == 'text/plain'
  end
end

RSpec::Matchers.define :have_keys do |*keys|
  match do |given|
    given.keys.map{|sym| sym.to_s }.sort == keys.map{|sym| sym.to_s }.sort
  end
end

RSpec::Matchers.define :match_steps do |steps|
  match do |given|
    given.map{|step| step.class } == steps
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dragonfly-1.0.7 spec/support/simple_matchers.rb
dragonfly-1.0.6 spec/support/simple_matchers.rb
dragonfly-1.0.5 spec/support/simple_matchers.rb
dragonfly-1.0.4 spec/support/simple_matchers.rb
dragonfly-1.0.3 spec/support/simple_matchers.rb
dragonfly-1.0.2 spec/support/simple_matchers.rb
dragonfly-1.0.1 spec/support/simple_matchers.rb