Sha256: 077081438a7d351a3ad3f3b39f57f452ad36a63447306a0e3c1d37eb8c4388ac

Contents?: true

Size: 1.68 KB

Versions: 3

Compression:

Stored size: 1.68 KB

Contents

require 'ruby_app/mixins/route'

describe RubyApp::Mixins::Route do

  before(:all) do
    Object.extend RubyApp::Mixins::Route
  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::Route::GET, /^$/) { @value = true }
      @value.should be_false
      Object.do_route(RubyApp::Mixins::Route::GET, '')
      @value.should be_true
    end

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

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

    it "should match a pattern on GET with a parameter" do
      Object.route(RubyApp::Mixins::Route::GET, /^pattern (.*)$/) { |method, path, parameter| @value, @parameters = true, parameter }
      @value.should be_false
      @parameter.should be_nil
      Object.do_route(RubyApp::Mixins::Route::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::Route::GET, /^pattern$/) { @value = true }
      @value.should be_false
      Object.do_route(RubyApp::Mixins::Route::GET, 'not matching pattern')
      @value.should be_false
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
RubyApp-0.0.8 spec/mixins/route_spec.rb
RubyApp-0.0.7 spec/mixins/route_spec.rb
RubyApp-0.0.6 spec/mixins/route_spec.rb