Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
a74a6556
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
a74a6556
编写于
1月 24, 2010
作者:
J
José Valim and Mikel Lindsaar
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add tests to mail helper.
上级
bd966141
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
86 addition
and
141 deletion
+86
-141
actionmailer/lib/action_mailer/base.rb
actionmailer/lib/action_mailer/base.rb
+0
-1
actionmailer/lib/action_mailer/mail_helper.rb
actionmailer/lib/action_mailer/mail_helper.rb
+2
-2
actionmailer/test/abstract_unit.rb
actionmailer/test/abstract_unit.rb
+0
-1
actionmailer/test/delivery_methods_test.rb
actionmailer/test/delivery_methods_test.rb
+30
-30
actionmailer/test/fixtures/helper_mailer/use_example_helper.erb
...mailer/test/fixtures/helper_mailer/use_example_helper.erb
+0
-1
actionmailer/test/fixtures/helper_mailer/use_helper.erb
actionmailer/test/fixtures/helper_mailer/use_helper.erb
+0
-1
actionmailer/test/fixtures/helper_mailer/use_helper_method.erb
...nmailer/test/fixtures/helper_mailer/use_helper_method.erb
+0
-1
actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb
actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb
+0
-5
actionmailer/test/fixtures/helpers/example_helper.rb
actionmailer/test/fixtures/helpers/example_helper.rb
+0
-5
actionmailer/test/mail_helper_test.rb
actionmailer/test/mail_helper_test.rb
+54
-0
actionmailer/test/old_base/mail_helper_test.rb
actionmailer/test/old_base/mail_helper_test.rb
+0
-94
未找到文件。
actionmailer/lib/action_mailer/base.rb
浏览文件 @
a74a6556
...
...
@@ -256,7 +256,6 @@ class Base < AbstractController::Base
include
DeliveryMethods
,
Quoting
abstract!
# TODO Add some sanity tests for the included modules
include
AbstractController
::
Logger
include
AbstractController
::
Rendering
include
AbstractController
::
LocalizedCache
...
...
actionmailer/lib/action_mailer/mail_helper.rb
浏览文件 @
a74a6556
...
...
@@ -17,12 +17,12 @@ def block_format(text)
end
# Access the mailer instance.
def
mailer
#:nodoc:
def
mailer
@_controller
end
# Access the message instance.
def
message
#:nodoc:
def
message
@_message
end
end
...
...
actionmailer/test/abstract_unit.rb
浏览文件 @
a74a6556
...
...
@@ -19,7 +19,6 @@
FIXTURE_LOAD_PATH
=
File
.
expand_path
(
'fixtures'
,
File
.
dirname
(
__FILE__
))
ActionMailer
::
Base
.
view_paths
=
FIXTURE_LOAD_PATH
$:
.
unshift
File
.
join
(
FIXTURE_LOAD_PATH
,
'helpers'
)
class
MockSMTP
def
self
.
deliveries
...
...
actionmailer/test/delivery_methods_test.rb
浏览文件 @
a74a6556
...
...
@@ -71,7 +71,7 @@ def teardown
end
class
MailDeliveryTest
<
ActiveSupport
::
TestCase
class
Deliver
Mail
<
ActionMailer
::
Base
class
Deliver
yMailer
<
ActionMailer
::
Base
DEFAULT_HEADERS
=
{
:to
=>
'mikel@test.lindsaar.net'
,
:from
=>
'jose@test.plataformatec.com'
...
...
@@ -87,64 +87,64 @@ def setup
end
def
teardown
Deliver
Mail
.
delivery_method
=
:smtp
Deliver
Mail
.
perform_deliveries
=
true
Deliver
Mail
.
raise_delivery_errors
=
true
Deliver
yMailer
.
delivery_method
=
:smtp
Deliver
yMailer
.
perform_deliveries
=
true
Deliver
yMailer
.
raise_delivery_errors
=
true
end
test
"ActionMailer should be told when Mail gets delivered"
do
Deliver
Mail
.
deliveries
.
clear
Deliver
Mail
.
expects
(
:delivered_email
).
once
Deliver
Mail
.
welcome
.
deliver
assert_equal
(
1
,
Deliver
Mail
.
deliveries
.
length
)
Deliver
yMailer
.
deliveries
.
clear
Deliver
yMailer
.
expects
(
:delivered_email
).
once
Deliver
yMailer
.
welcome
.
deliver
assert_equal
(
1
,
Deliver
yMailer
.
deliveries
.
length
)
end
test
"delivery method can be customized per instance"
do
email
=
Deliver
Mail
.
welcome
.
deliver
email
=
Deliver
yMailer
.
welcome
.
deliver
assert_instance_of
Mail
::
SMTP
,
email
.
delivery_method
email
=
Deliver
Mail
.
welcome
(
:delivery_method
=>
:test
).
deliver
email
=
Deliver
yMailer
.
welcome
(
:delivery_method
=>
:test
).
deliver
assert_instance_of
Mail
::
TestMailer
,
email
.
delivery_method
end
test
"delivery method can be customized in subclasses not changing the parent"
do
Deliver
Mail
.
delivery_method
=
:test
Deliver
yMailer
.
delivery_method
=
:test
assert_equal
:smtp
,
ActionMailer
::
Base
.
delivery_method
$BREAK
=
true
email
=
Deliver
Mail
.
welcome
.
deliver
email
=
Deliver
yMailer
.
welcome
.
deliver
assert_instance_of
Mail
::
TestMailer
,
email
.
delivery_method
end
test
"non registered delivery methods raises errors"
do
Deliver
Mail
.
delivery_method
=
:unknown
Deliver
yMailer
.
delivery_method
=
:unknown
assert_raise
RuntimeError
do
Deliver
Mail
.
welcome
.
deliver
Deliver
yMailer
.
welcome
.
deliver
end
end
test
"does not perform deliveries if requested"
do
Deliver
Mail
.
perform_deliveries
=
false
Deliver
Mail
.
deliveries
.
clear
Deliver
Mail
.
expects
(
:delivered_email
).
never
Deliver
Mail
.
welcome
.
deliver
assert_equal
(
0
,
Deliver
Mail
.
deliveries
.
length
)
Deliver
yMailer
.
perform_deliveries
=
false
Deliver
yMailer
.
deliveries
.
clear
Deliver
yMailer
.
expects
(
:delivered_email
).
never
Deliver
yMailer
.
welcome
.
deliver
assert_equal
(
0
,
Deliver
yMailer
.
deliveries
.
length
)
end
test
"raise errors on bogus deliveries"
do
Deliver
Mail
.
delivery_method
=
BogusDelivery
Deliver
Mail
.
deliveries
.
clear
Deliver
Mail
.
expects
(
:delivered_email
).
never
Deliver
yMailer
.
delivery_method
=
BogusDelivery
Deliver
yMailer
.
deliveries
.
clear
Deliver
yMailer
.
expects
(
:delivered_email
).
never
assert_raise
RuntimeError
do
Deliver
Mail
.
welcome
.
deliver
Deliver
yMailer
.
welcome
.
deliver
end
assert_equal
(
0
,
Deliver
Mail
.
deliveries
.
length
)
assert_equal
(
0
,
Deliver
yMailer
.
deliveries
.
length
)
end
test
"does not raise errors on bogus deliveries if set"
do
Deliver
Mail
.
delivery_method
=
BogusDelivery
Deliver
Mail
.
raise_delivery_errors
=
false
Deliver
Mail
.
deliveries
.
clear
Deliver
Mail
.
expects
(
:delivered_email
).
once
Deliver
Mail
.
welcome
.
deliver
assert_equal
(
1
,
Deliver
Mail
.
deliveries
.
length
)
Deliver
yMailer
.
delivery_method
=
BogusDelivery
Deliver
yMailer
.
raise_delivery_errors
=
false
Deliver
yMailer
.
deliveries
.
clear
Deliver
yMailer
.
expects
(
:delivered_email
).
once
Deliver
yMailer
.
welcome
.
deliver
assert_equal
(
1
,
Deliver
yMailer
.
deliveries
.
length
)
end
end
\ No newline at end of file
actionmailer/test/fixtures/helper_mailer/use_example_helper.erb
已删除
100644 → 0
浏览文件 @
bd966141
So,
<%=
example_format
(
@text
)
%>
actionmailer/test/fixtures/helper_mailer/use_helper.erb
已删除
100644 → 0
浏览文件 @
bd966141
Hello,
<%=
person_name
%>
. Thanks for registering!
actionmailer/test/fixtures/helper_mailer/use_helper_method.erb
已删除
100644 → 0
浏览文件 @
bd966141
This message brought to you by
<%=
name_of_the_mailer_class
%>
.
actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb
已删除
100644 → 0
浏览文件 @
bd966141
From "Romeo and Juliet":
<%=
block_format
@text
%>
Good ol' Shakespeare.
actionmailer/test/fixtures/helpers/example_helper.rb
已删除
100644 → 0
浏览文件 @
bd966141
module
ExampleHelper
def
example_format
(
text
)
"<em><strong><small>
#{
h
(
text
)
}
</small></strong></em>"
.
html_safe!
end
end
actionmailer/test/mail_helper_test.rb
0 → 100644
浏览文件 @
a74a6556
require
'abstract_unit'
class
HelperMailer
<
ActionMailer
::
Base
def
use_mail_helper
@text
=
"But soft! What light through yonder window breaks? It is the east, "
+
"and Juliet is the sun. Arise, fair sun, and kill the envious moon, "
+
"which is sick and pale with grief that thou, her maid, art far more "
+
"fair than she. Be not her maid, for she is envious! Her vestal "
+
"livery is but sick and green, and none but fools do wear it. Cast "
+
"it off!"
mail_with_defaults
do
|
format
|
format
.
html
{
render
(
:inline
=>
"<%= block_format @text %>"
)
}
end
end
def
use_mailer
mail_with_defaults
do
|
format
|
format
.
html
{
render
(
:inline
=>
"<%= mailer.message.subject %>"
)
}
end
end
def
use_message
mail_with_defaults
do
|
format
|
format
.
html
{
render
(
:inline
=>
"<%= message.subject %>"
)
}
end
end
protected
def
mail_with_defaults
(
&
block
)
mail
(
:to
=>
"test@localhost"
,
:from
=>
"tester@example.com"
,
:subject
=>
"using helpers"
,
&
block
)
end
end
class
MailerHelperTest
<
ActionMailer
::
TestCase
def
test_use_mail_helper
mail
=
HelperMailer
.
use_mail_helper
assert_match
%r{ But soft!}
,
mail
.
body
.
encoded
assert_match
%r{east, and
\r\n
Juliet}
,
mail
.
body
.
encoded
end
def
test_use_mailer
mail
=
HelperMailer
.
use_mailer
assert_match
"using helpers"
,
mail
.
body
.
encoded
end
def
test_use_message
mail
=
HelperMailer
.
use_message
assert_match
"using helpers"
,
mail
.
body
.
encoded
end
end
actionmailer/test/old_base/mail_helper_test.rb
已删除
100644 → 0
浏览文件 @
bd966141
require
'abstract_unit'
module
MailerHelper
def
person_name
"Mr. Joe Person"
end
end
class
HelperMailer
<
ActionMailer
::
Base
helper
MailerHelper
helper
:example
def
use_helper
recipients
'test@localhost'
subject
"using helpers"
from
"tester@example.com"
end
def
use_example_helper
recipients
'test@localhost'
subject
"using helpers"
from
"tester@example.com"
@text
=
"emphasize me!"
end
def
use_mail_helper
recipients
'test@localhost'
subject
"using mailing helpers"
from
"tester@example.com"
@text
=
"But soft! What light through yonder window breaks? It is the east, "
+
"and Juliet is the sun. Arise, fair sun, and kill the envious moon, "
+
"which is sick and pale with grief that thou, her maid, art far more "
+
"fair than she. Be not her maid, for she is envious! Her vestal "
+
"livery is but sick and green, and none but fools do wear it. Cast "
+
"it off!"
end
def
use_helper_method
recipients
'test@localhost'
subject
"using helpers"
from
"tester@example.com"
@text
=
"emphasize me!"
end
private
def
name_of_the_mailer_class
self
.
class
.
name
end
helper_method
:name_of_the_mailer_class
end
class
MailerHelperTest
<
ActiveSupport
::
TestCase
def
new_mail
(
charset
=
"utf-8"
)
mail
=
Mail
.
new
mail
.
set_content_type
"text"
,
"plain"
,
{
"charset"
=>
charset
}
if
charset
mail
end
def
setup
set_delivery_method
:test
ActionMailer
::
Base
.
perform_deliveries
=
true
ActionMailer
::
Base
.
deliveries
.
clear
end
def
teardown
restore_delivery_method
end
def
test_use_helper
mail
=
HelperMailer
.
use_helper
assert_match
%r{Mr. Joe Person}
,
mail
.
encoded
end
def
test_use_example_helper
mail
=
HelperMailer
.
use_example_helper
assert_match
%r{<em><strong><small>emphasize me!}
,
mail
.
encoded
end
def
test_use_helper_method
mail
=
HelperMailer
.
use_helper_method
assert_match
%r{HelperMailer}
,
mail
.
encoded
end
def
test_use_mail_helper
mail
=
HelperMailer
.
use_mail_helper
assert_match
%r{ But soft!}
,
mail
.
encoded
assert_match
%r{east, and
\r\n
Juliet}
,
mail
.
encoded
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录