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.91 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.90 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.89 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.88 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.87 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.86 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.85 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.84 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.83 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.82 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.81 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.80 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.79 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.78 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.77 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.76 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.75 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.74 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.73 spec/mixins/route_mixin_spec.rb
RubyApp-0.0.72 spec/mixins/route_mixin_spec.rb