Sha256: 39a75ca72b47ddcab3e4f2b5660500c5bd13ced2d5f1cd2a1774d2b00ea57b29

Contents?: true

Size: 1.74 KB

Versions: 70

Compression:

Stored size: 1.74 KB

Contents

require 'ruby_app/mixins/route_mixin'

describe RubyApp::Mixins::RouteMixin do

  before(:all) do
    Object.extend RubyApp::Mixins::RouteMixin
  end

  before(:each) do
    @value = false
    @parameters = nil
    Object.clear_routes
  end

  describe 'positive' do

    it 'should match a blank pattern on GET' do
      Object.route(RubyApp::Mixins::RouteMixin::GET, /^$/) { @value = true }
      @value.should be_false
      Object.do_route(RubyApp::Mixins::RouteMixin::GET, '')
      @value.should be_true
    end

    it 'should match a pattern on GET' do
      Object.route(RubyApp::Mixins::RouteMixin::GET, /^pattern$/) { @value = true }
      @value.should be_false
      Object.do_route(RubyApp::Mixins::RouteMixin::GET, 'pattern')
      @value.should be_true
    end

    it 'should match a pattern on POST' do
      Object.route(RubyApp::Mixins::RouteMixin::POST, /^pattern$/) { @value = true }
      @value.should be_false
      Object.do_route(RubyApp::Mixins::RouteMixin::POST, 'pattern')
      @value.should be_true
    end

    it 'should match a pattern on GET with a parameter' do
      Object.route(RubyApp::Mixins::RouteMixin::GET, /^pattern (.*)$/) { |method, path, parameter| @value, @parameters = true, parameter }
      @value.should be_false
      @parameter.should be_nil
      Object.do_route(RubyApp::Mixins::RouteMixin::GET, 'pattern parameter')
      @value.should be_true
      @parameters.should == 'parameter'
    end

  end

  describe 'negative' do

    it 'should not match a not matching pattern on GET' do
      Object.route(RubyApp::Mixins::RouteMixin::GET, /^pattern$/) { @value = true }
      @value.should be_false
      Object.do_route(RubyApp::Mixins::RouteMixin::GET, 'not matching pattern')
      @value.should be_false
    end

  end

end

Version data entries

70 entries across 70 versions & 1 rubygems

Version Path
RubyApp-0.0.48 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.47 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.46 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.45 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.44 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.43 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.42 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.41 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.30 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.29 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.28 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.27 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.26 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.25 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.24 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.23 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.22 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.21 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.20 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.19 spec/mixins/route_mixin_spec.rb