Sha256: 4b83f5464831191b1b5ef32ed4d3bc3bebf313be3928d88e21726200ea1ca929

Contents?: true

Size: 1.22 KB

Versions: 11

Compression:

Stored size: 1.22 KB

Contents

require 'lib/usher'

def build_email_mock(email)
  request = mock "Request"
  request.should_receive(:email).any_number_of_times.and_return(email)
  request
end

describe "Usher (for email) route recognition" do

  before(:each) do
    @route_set = Usher::Interface.for(:email)
  end

  it "should recognize a simple request" do
    receiver = mock('receiver')
    receiver.should_receive(:action).with({}).exactly(1)
    @route_set.for('joshbuddy@gmail.com') { |params| receiver.action(params) }
    @route_set.act('joshbuddy@gmail.com')
  end

  it "should recognize a wildcard domain" do
    receiver = mock('receiver')
    receiver.should_receive(:action).with({:domain => 'gmail.com'}).exactly(1)
    @route_set.for('joshbuddy@{!domain,.*}') { |params| receiver.action(params) }
    @route_set.act('joshbuddy@gmail.com')
  end

  it "should recognize a complex email" do
    receiver = mock('receiver')
    receiver.should_receive(:action).with({:subject => 'sub+ect', :id => '123', :sid => '456', :tok => 'sdqwe123ae', :domain => 'mydomain.org'}).exactly(1)
    @route_set.for(':subject.{!id,\d+}-{!sid,\d+}-{!tok,\w+}@{!domain,.*}') { |params| receiver.action(params) }
    @route_set.act('sub+ect.123-456-sdqwe123ae@mydomain.org')
  end

end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
joshbuddy-usher-0.5.1 spec/private/email/recognize_spec.rb
joshbuddy-usher-0.5.2 spec/private/email/recognize_spec.rb
joshbuddy-usher-0.5.3 spec/private/email/recognize_spec.rb
joshbuddy-usher-0.5.4 spec/private/email/recognize_spec.rb
joshbuddy-usher-0.5.6 spec/private/email/recognize_spec.rb
usher-0.5.6 spec/private/email/recognize_spec.rb
usher-0.5.5 spec/private/email/recognize_spec.rb
usher-0.5.4 spec/private/email/recognize_spec.rb
usher-0.5.3 spec/private/email/recognize_spec.rb
usher-0.5.2 spec/private/email/recognize_spec.rb
usher-0.5.1 spec/private/email/recognize_spec.rb