mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 22:57:16 -04:00
173 lines
4.7 KiB
Ruby
173 lines
4.7 KiB
Ruby
require "test_utils"
|
|
require "rumbster"
|
|
require "message_observers"
|
|
|
|
describe "outputs/email" do
|
|
extend LogStash::RSpec
|
|
|
|
@@port=2525
|
|
let (:rumbster) { Rumbster.new(@@port) }
|
|
let (:message_observer) { MailMessageObserver.new }
|
|
|
|
before :each do
|
|
rumbster.add_observer message_observer
|
|
rumbster.start
|
|
end
|
|
|
|
after :each do
|
|
rumbster.stop
|
|
end
|
|
|
|
describe "use a list of email as mail.to (LOGSTASH-827)" do
|
|
config <<-CONFIG
|
|
input {
|
|
generator {
|
|
message => "hello world"
|
|
count => 1
|
|
type => "generator"
|
|
}
|
|
}
|
|
filter {
|
|
noop {
|
|
add_field => ["dummy_match", "ok"]
|
|
}
|
|
}
|
|
output{
|
|
email {
|
|
to => "email1@host, email2@host"
|
|
match => ["mymatch", "dummy_match,ok"]
|
|
options => ["port", #{@@port}]
|
|
}
|
|
}
|
|
CONFIG
|
|
|
|
agent do
|
|
insist {message_observer.messages.size} == 1
|
|
insist {message_observer.messages[0].to} == ["email1@host", "email2@host"]
|
|
end
|
|
end
|
|
|
|
describe "use an array of email as mail.to (LOGSTASH-827)" do
|
|
config <<-CONFIG
|
|
input {
|
|
generator {
|
|
message => "hello world"
|
|
count => 1
|
|
type => "generator"
|
|
}
|
|
}
|
|
filter {
|
|
noop {
|
|
add_field => ["dummy_match", "ok"]
|
|
add_field => ["to_addr", "email1@host"]
|
|
add_field => ["to_addr", "email2@host"]
|
|
}
|
|
}
|
|
output{
|
|
email {
|
|
to => "%{to_addr}"
|
|
match => ["mymatch", "dummy_match,ok"]
|
|
options => ["port", #{@@port}]
|
|
}
|
|
}
|
|
CONFIG
|
|
|
|
agent do
|
|
insist {message_observer.messages.size} == 1
|
|
insist {message_observer.messages[0].to} == ["email1@host", "email2@host"]
|
|
end
|
|
end
|
|
|
|
describe "multi-lined text body (LOGSTASH-841)" do
|
|
config <<-CONFIG
|
|
input {
|
|
generator {
|
|
message => "hello world"
|
|
count => 1
|
|
type => "generator"
|
|
}
|
|
}
|
|
filter {
|
|
noop {
|
|
add_field => ["dummy_match", "ok"]
|
|
}
|
|
}
|
|
output{
|
|
email {
|
|
to => "me@host"
|
|
subject => "Hello World"
|
|
body => "Line1\\nLine2\\nLine3"
|
|
match => ["mymatch", "dummy_match,*"]
|
|
options => ["port", #{@@port}]
|
|
}
|
|
}
|
|
CONFIG
|
|
|
|
agent do
|
|
insist {message_observer.messages.size} == 1
|
|
insist {message_observer.messages[0].subject} == "Hello World"
|
|
insist {message_observer.messages[0].body.raw_source} == "Line1\r\nLine2\r\nLine3"
|
|
end
|
|
end
|
|
|
|
describe "use nil authenticationType (LOGSTASH-559)" do
|
|
config <<-CONFIG
|
|
input {
|
|
generator {
|
|
message => "hello world"
|
|
count => 1
|
|
type => "generator"
|
|
}
|
|
}
|
|
filter {
|
|
noop {
|
|
add_field => ["dummy_match", "ok"]
|
|
}
|
|
}
|
|
output{
|
|
email {
|
|
to => "me@host"
|
|
subject => "Hello World"
|
|
body => "Line1\\nLine2\\nLine3"
|
|
match => ["mymatch", "dummy_match,*"]
|
|
options => ["port", #{@@port}, "authenticationType", "nil"]
|
|
}
|
|
}
|
|
CONFIG
|
|
|
|
agent do
|
|
insist {message_observer.messages.size} == 1
|
|
insist {message_observer.messages[0].subject} == "Hello World"
|
|
insist {message_observer.messages[0].body.raw_source} == "Line1\r\nLine2\r\nLine3"
|
|
end
|
|
end
|
|
|
|
describe "match on source and message (LOGSTASH-826)" do
|
|
config <<-CONFIG
|
|
input {
|
|
generator {
|
|
message => "hello world"
|
|
count => 1
|
|
type => "generator"
|
|
}
|
|
}
|
|
output{
|
|
email {
|
|
to => "me@host"
|
|
subject => "Hello World"
|
|
body => "Mail body"
|
|
match => ["messageAndSourceMatch", "message,*hello,,and,source,*generator"]
|
|
options => ["port", #{@@port}, "authenticationType", "nil"]
|
|
}
|
|
}
|
|
CONFIG
|
|
|
|
agent do
|
|
insist {message_observer.messages.size} == 1
|
|
insist {message_observer.messages[0].subject} == "Hello World"
|
|
insist {message_observer.messages[0].body.raw_source} == "Mail body"
|
|
end
|
|
end
|
|
end
|
|
|
|
|