mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
fix the build
This commit is contained in:
@ -484,14 +484,6 @@ This is a link http://example.com"
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def fill_email(mail, from, to, body = nil, subject = nil, cc = nil)
|
|
||||||
result = mail.gsub("FROM", from).gsub("TO", to)
|
|
||||||
result.gsub!(/Hey.*/m, body) if body
|
|
||||||
result.sub!(/We .*/, subject) if subject
|
|
||||||
result.sub!("CC", cc.presence || "")
|
|
||||||
result
|
|
||||||
end
|
|
||||||
|
|
||||||
def process_email(opts)
|
def process_email(opts)
|
||||||
incoming_email = fixture_file("emails/valid_incoming.eml")
|
incoming_email = fixture_file("emails/valid_incoming.eml")
|
||||||
email = fill_email(incoming_email, opts[:from], opts[:to], opts[:body], opts[:subject], opts[:cc])
|
email = fill_email(incoming_email, opts[:from], opts[:to], opts[:body], opts[:subject], opts[:cc])
|
||||||
|
4
spec/fixtures/emails/wrong_reply_key.eml
vendored
4
spec/fixtures/emails/wrong_reply_key.eml
vendored
@ -5,7 +5,7 @@ Received: by mail-ie0-f180.google.com with SMTP id f4so21977375iea.25 for <reply
|
|||||||
Received: by 10.0.0.1 with HTTP; Thu, 13 Jun 2013 14:03:48 -0700
|
Received: by 10.0.0.1 with HTTP; Thu, 13 Jun 2013 14:03:48 -0700
|
||||||
Date: Thu, 13 Jun 2013 17:03:48 -0400
|
Date: Thu, 13 Jun 2013 17:03:48 -0400
|
||||||
From: Jake the Dog <jake@adventuretime.ooo>
|
From: Jake the Dog <jake@adventuretime.ooo>
|
||||||
To: reply+QQd8df8370b7e95c5a49fbf86aeb2c93@appmail.adventuretime.ooo
|
To: reply+03d8df8370b7e95c5a49fbf86aeb2c93@appmail.adventuretime.ooo
|
||||||
Message-ID: <CADkmRc+rNGAGGbV2iE5p918UVy4UyJqVcXRO2=otppgzduJSg@mail.gmail.com>
|
Message-ID: <CADkmRc+rNGAGGbV2iE5p918UVy4UyJqVcXRO2=otppgzduJSg@mail.gmail.com>
|
||||||
Subject: re: [Discourse Meta] eviltrout posted in 'Adventure Time Sux'
|
Subject: re: [Discourse Meta] eviltrout posted in 'Adventure Time Sux'
|
||||||
Mime-Version: 1.0
|
Mime-Version: 1.0
|
||||||
@ -37,4 +37,4 @@ On Sun, Jun 9, 2013 at 1:39 PM, eviltrout via Discourse Meta
|
|||||||
> Please visit this link to respond: http://localhost:3000/t/adventure-time-sux/1234/3
|
> Please visit this link to respond: http://localhost:3000/t/adventure-time-sux/1234/3
|
||||||
>
|
>
|
||||||
> To unsubscribe from these emails, visit your [user preferences](http://localhost:3000/user_preferences).
|
> To unsubscribe from these emails, visit your [user preferences](http://localhost:3000/user_preferences).
|
||||||
>
|
>
|
||||||
|
@ -172,16 +172,19 @@ describe Jobs::PollMailbox do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe "a valid reply" do
|
describe "a valid reply" do
|
||||||
let(:email) { MockPop3EmailObject.new fixture_file('emails/valid_reply.eml')}
|
let(:reply_key) { '59d8df8370b7e95c5a49fbf86aeb2c93' }
|
||||||
let(:expected_post) { fixture_file('emails/valid_reply.cooked')}
|
let(:to) { SiteSetting.reply_by_email_address.gsub("%{reply_key}", reply_key) }
|
||||||
|
let(:raw_email) { fill_email(fixture_file("emails/valid_reply.eml"), user.email, to) }
|
||||||
|
let(:email) { MockPop3EmailObject.new(raw_email) }
|
||||||
|
let(:expected_post) { fixture_file('emails/valid_reply.cooked') }
|
||||||
let(:topic) { Fabricate(:topic) }
|
let(:topic) { Fabricate(:topic) }
|
||||||
let(:first_post) { Fabricate(:post, topic: topic, post_number: 1)}
|
let(:first_post) { Fabricate(:post, user: user, topic: topic, post_number: 1) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
first_post.save
|
first_post.save
|
||||||
EmailLog.create(to_address: 'jake@email.example.com',
|
EmailLog.create(to_address: user.email,
|
||||||
email_type: 'user_posted',
|
email_type: 'user_posted',
|
||||||
reply_key: '59d8df8370b7e95c5a49fbf86aeb2c93',
|
reply_key: reply_key,
|
||||||
user: user,
|
user: user,
|
||||||
post: first_post,
|
post: first_post,
|
||||||
topic: topic)
|
topic: topic)
|
||||||
@ -225,15 +228,18 @@ describe Jobs::PollMailbox do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe "when topic is closed" do
|
describe "when topic is closed" do
|
||||||
let(:email) { MockPop3EmailObject.new fixture_file('emails/valid_reply.eml')}
|
let(:reply_key) { '59d8df8370b7e95c5a49fbf86aeb2c93' }
|
||||||
|
let(:to) { SiteSetting.reply_by_email_address.gsub("%{reply_key}", reply_key) }
|
||||||
|
let(:raw_email) { fill_email(fixture_file("emails/valid_reply.eml"), user.email, to) }
|
||||||
|
let(:email) { MockPop3EmailObject.new(raw_email) }
|
||||||
let(:topic) { Fabricate(:topic, closed: true) }
|
let(:topic) { Fabricate(:topic, closed: true) }
|
||||||
let(:first_post) { Fabricate(:post, topic: topic, post_number: 1)}
|
let(:first_post) { Fabricate(:post, user: user, topic: topic, post_number: 1) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
first_post.save
|
first_post.save
|
||||||
EmailLog.create(to_address: 'jake@email.example.com',
|
EmailLog.create(to_address: user.email,
|
||||||
email_type: 'user_posted',
|
email_type: 'user_posted',
|
||||||
reply_key: '59d8df8370b7e95c5a49fbf86aeb2c93',
|
reply_key: reply_key,
|
||||||
user: user,
|
user: user,
|
||||||
post: first_post,
|
post: first_post,
|
||||||
topic: topic)
|
topic: topic)
|
||||||
@ -250,15 +256,18 @@ describe Jobs::PollMailbox do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe "when topic is deleted" do
|
describe "when topic is deleted" do
|
||||||
let(:email) { MockPop3EmailObject.new fixture_file('emails/valid_reply.eml')}
|
let(:reply_key) { '59d8df8370b7e95c5a49fbf86aeb2c93' }
|
||||||
|
let(:to) { SiteSetting.reply_by_email_address.gsub("%{reply_key}", reply_key) }
|
||||||
|
let(:raw_email) { fill_email(fixture_file("emails/valid_reply.eml"), user.email, to) }
|
||||||
|
let(:email) { MockPop3EmailObject.new(raw_email) }
|
||||||
let(:deleted_topic) { Fabricate(:deleted_topic) }
|
let(:deleted_topic) { Fabricate(:deleted_topic) }
|
||||||
let(:first_post) { Fabricate(:post, topic: deleted_topic, post_number: 1)}
|
let(:first_post) { Fabricate(:post, user: user, topic: deleted_topic, post_number: 1)}
|
||||||
|
|
||||||
before do
|
before do
|
||||||
first_post.save
|
first_post.save
|
||||||
EmailLog.create(to_address: 'jake@email.example.com',
|
EmailLog.create(to_address: user.email,
|
||||||
email_type: 'user_posted',
|
email_type: 'user_posted',
|
||||||
reply_key: '59d8df8370b7e95c5a49fbf86aeb2c93',
|
reply_key: reply_key,
|
||||||
user: user,
|
user: user,
|
||||||
post: first_post,
|
post: first_post,
|
||||||
topic: deleted_topic)
|
topic: deleted_topic)
|
||||||
@ -277,7 +286,9 @@ describe Jobs::PollMailbox do
|
|||||||
describe "in failure conditions" do
|
describe "in failure conditions" do
|
||||||
|
|
||||||
it "a valid reply without an email log raises an EmailLogNotFound error" do
|
it "a valid reply without an email log raises an EmailLogNotFound error" do
|
||||||
email = MockPop3EmailObject.new fixture_file('emails/valid_reply.eml')
|
to = SiteSetting.reply_by_email_address.gsub("%{reply_key}", '59d8df8370b7e95c5a49fbf86aeb2c93')
|
||||||
|
raw_email = fill_email(fixture_file("emails/valid_reply.eml"), user.email, to)
|
||||||
|
email = MockPop3EmailObject.new(raw_email)
|
||||||
expect_exception Email::Receiver::EmailLogNotFound
|
expect_exception Email::Receiver::EmailLogNotFound
|
||||||
|
|
||||||
poller.handle_mail(email)
|
poller.handle_mail(email)
|
||||||
|
@ -64,4 +64,12 @@ module Helpers
|
|||||||
expect(result).to eq(true)
|
expect(result).to eq(true)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def fill_email(mail, from, to, body = nil, subject = nil, cc = nil)
|
||||||
|
result = mail.gsub("FROM", from).gsub("TO", to)
|
||||||
|
result.gsub!(/Hey.*/m, body) if body
|
||||||
|
result.sub!(/We .*/, subject) if subject
|
||||||
|
result.sub!("CC", cc.presence || "")
|
||||||
|
result
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user