Sha256: 526e753fa268fba840a152217a3d85ae002785b11fdb8707390d84d7e7ad4410

Contents?: true

Size: 1.28 KB

Versions: 8

Compression:

Stored size: 1.28 KB

Contents

require 'backports'
require_relative 'spec_helper'

RSpec::Matchers.define :decompile do |path|
  match do |app|
    @compiled, @keys    = app.send :compile, path
    @decompiled         = app.decompile(@compiled, @keys)
    @decompiled.should == path
  end

  failure_message_for_should do |app|
    values = [app, @compiled, @keys, path, @decompiled].map(&:inspect)
    "expected %s to decompile %s with %s to %s, but was %s" % values
  end
end

describe Sinatra::Decompile do
  subject { Sinatra::Application }
  it { should decompile("") }
  it { should decompile("/") }
  it { should decompile("/?") }
  it { should decompile("/foo") }
  it { should decompile("/:name") }
  it { should decompile("/:name?") }
  it { should decompile("/:foo/:bar") }
  it { should decompile("/page/:id/edit") }
  it { should decompile("/hello/*") }
  it { should decompile("/*/foo/*") }
  it { should decompile("*") }
  it { should decompile(":name.:format") }
  it { should decompile("a b") }
  it { should decompile("a+b") }
  it { should decompile(/./) }
  it { should decompile(/f(oo)/) }
  it { should decompile(/ba+r/) }

  it 'just returns strings' do
    subject.decompile('/foo').should == '/foo'
  end

  it 'just decompile simple regexps without keys' do
    subject.decompile(%r{/foo}).should == '/foo'
  end
end

Version data entries

8 entries across 8 versions & 3 rubygems

Version Path
sinatra-contrib-1.4.2 spec/decompile_spec.rb
sinatra-contrib-1.4.1 spec/decompile_spec.rb
sinatra-contrib-1.4.0 spec/decompile_spec.rb
rubycut-sinatra-contrib-1.4.0 spec/decompile_spec.rb
sinatra-contrib-1.3.2 spec/decompile_spec.rb
sinatra-contrib-1.3.1 spec/decompile_spec.rb
sinatra-contrib-1.3.0 spec/decompile_spec.rb
pirj-sinatra-contrib-1.3.0 spec/decompile_spec.rb