Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
039f9b37
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,发现更多精彩内容 >>
提交
039f9b37
编写于
11月 27, 2013
作者:
G
Godfrey Chan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added failing test for json_escape striping quotation marks
Expanded test coverage for html_escape and json_escape
上级
ef2ef5cb
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
45 addition
and
0 deletion
+45
-0
actionview/test/template/erb_util_test.rb
actionview/test/template/erb_util_test.rb
+45
-0
未找到文件。
actionview/test/template/erb_util_test.rb
浏览文件 @
039f9b37
require
'abstract_unit'
require
'abstract_unit'
require
'active_support/json'
class
ErbUtilTest
<
ActiveSupport
::
TestCase
class
ErbUtilTest
<
ActiveSupport
::
TestCase
include
ERB
::
Util
include
ERB
::
Util
...
@@ -15,6 +16,50 @@ class ErbUtilTest < ActiveSupport::TestCase
...
@@ -15,6 +16,50 @@ class ErbUtilTest < ActiveSupport::TestCase
end
end
end
end
HTML_ESCAPE_TEST_CASES
=
[
[
'<br>'
,
'<br>'
],
[
'a & b'
,
'a & b'
],
[
'"quoted" string'
,
'"quoted" string'
],
[
"'quoted' string"
,
''quoted' string'
],
[
'<script type="application/javascript">alert("You are \'pwned\'!")</script>'
,
'<script type="application/javascript">alert("You are 'pwned'!")</script>'
]
]
JSON_ESCAPE_TEST_CASES
=
[
[
'1'
,
'1'
],
[
'null'
,
'null'
],
[
'"&"'
,
'"\u0026"'
],
[
'"</script>"'
,
'"\u003C/script\u003E"'
],
[
'["</script>"]'
,
'["\u003C/script\u003E"]'
],
[
'{"name":"</script>"}'
,
'{"name":"\u003C/script\u003E"}'
]
]
def
test_html_escape
HTML_ESCAPE_TEST_CASES
.
each
do
|
(
raw
,
expected
)
|
assert_equal
expected
,
html_escape
(
raw
)
end
end
def
test_json_escape
JSON_ESCAPE_TEST_CASES
.
each
do
|
(
raw
,
expected
)
|
assert_equal
expected
,
json_escape
(
raw
)
end
end
def
test_json_escape_does_not_alter_json_string_meaning
JSON_ESCAPE_TEST_CASES
.
each
do
|
(
raw
,
_
)
|
assert_equal
ActiveSupport
::
JSON
.
decode
(
raw
),
ActiveSupport
::
JSON
.
decode
(
json_escape
(
raw
))
end
end
def
test_json_escape_is_idempotent
JSON_ESCAPE_TEST_CASES
.
each
do
|
(
raw
,
_
)
|
assert_equal
json_escape
(
raw
),
json_escape
(
json_escape
(
raw
))
end
end
def
test_json_escape_returns_unsafe_strings_when_passed_unsafe_strings
def
test_json_escape_returns_unsafe_strings_when_passed_unsafe_strings
value
=
json_escape
(
"asdf"
)
value
=
json_escape
(
"asdf"
)
assert
!
value
.
html_safe?
assert
!
value
.
html_safe?
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录