diff --git a/lib/action_mailbox/router/route.rb b/lib/action_mailbox/router/route.rb index 7be4407339..e9acf310b1 100644 --- a/lib/action_mailbox/router/route.rb +++ b/lib/action_mailbox/router/route.rb @@ -21,7 +21,7 @@ class ActionMailbox::Router::Route end def mailbox_class - "#{mailbox_name.to_s.capitalize}Mailbox".constantize + "#{mailbox_name.to_s.camelize}Mailbox".constantize end private diff --git a/test/unit/router_test.rb b/test/unit/router_test.rb index e244ff45f4..67a5f24c52 100644 --- a/test/unit/router_test.rb +++ b/test/unit/router_test.rb @@ -13,6 +13,11 @@ end class SecondMailbox < RootMailbox end +module Nested + class FirstMailbox < RootMailbox + end +end + class FirstMailboxAddress def match?(inbound_email) inbound_email.mail.to.include?("replies-class@example.com") @@ -57,7 +62,7 @@ module ActionMailbox assert_equal "SecondMailbox", $processed_by assert_equal inbound_email.mail, $processed_mail end - + test "single regexp route" do @router.add_routes(/replies-\w+@example.com/ => :first, "replies-nowhere@example.com" => :second) @@ -81,6 +86,14 @@ module ActionMailbox assert_equal "FirstMailbox", $processed_by end + test "string route to nested mailbox" do + @router.add_route "first@example.com", to: "nested/first" + + inbound_email = create_inbound_email_from_mail(to: "first@example.com", subject: "This is a reply") + @router.route inbound_email + assert_equal "Nested::FirstMailbox", $processed_by + end + test "missing route" do assert_raises(ActionMailbox::Router::RoutingError) do inbound_email = create_inbound_email_from_mail(to: "going-nowhere@example.com", subject: "This is a reply")