Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
b225de97
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,发现更多精彩内容 >>
提交
b225de97
编写于
9月 24, 2009
作者:
B
Bob Remeika
提交者:
Stefan Penner
1月 27, 2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added assert_data_element_json test helper for data element helpers
上级
afdecbc0
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
34 addition
and
20 deletion
+34
-20
actionpack/lib/action_view/helpers/ajax_helper.rb
actionpack/lib/action_view/helpers/ajax_helper.rb
+6
-4
actionpack/test/javascript/ajax_test.rb
actionpack/test/javascript/ajax_test.rb
+28
-16
未找到文件。
actionpack/lib/action_view/helpers/ajax_helper.rb
浏览文件 @
b225de97
...
...
@@ -94,10 +94,12 @@ def observe_field(name, options = {})
end
end
if
options
[
:with
]
&&
(
options
[
:with
]
!~
/[\{=(.]/
)
options
[
:with
]
=
"'
#{
options
[
:with
]
}
=' + encodeURIComponent(value)"
else
options
[
:with
]
||=
'value'
unless
options
[
:function
]
if
options
[
:with
]
if
options
[
:with
]
!~
/[\{=(.]/
options
[
:with
]
=
"'
#{
options
[
:with
]
}
=' + encodeURIComponent(value)"
else
options
[
:with
]
||=
'value'
unless
options
[
:function
]
end
end
if
options
[
:function
]
...
...
actionpack/test/javascript/ajax_test.rb
浏览文件 @
b225de97
...
...
@@ -10,6 +10,20 @@ def assert_html(html, matches)
end
end
def
extract_json_from_data_element
(
data_element
)
root
=
HTML
::
Document
.
new
(
data_element
).
root
script
=
root
.
find
(
:tag
=>
"script"
)
cdata
=
script
.
children
.
detect
{
|
child
|
child
.
to_s
=~
/<!\[CDATA\[/
}
js
=
cdata
.
content
.
split
(
"
\n
"
).
map
{
|
line
|
line
.
gsub
(
Regexp
.
new
(
"//.*"
),
""
)}.
join
(
"
\n
"
).
strip!
ActiveSupport
::
JSON
.
decode
(
js
)
end
def
assert_data_element_json
(
actual
,
expected
)
json
=
extract_json_from_data_element
(
actual
)
assert_equal
expected
,
json
end
def
self
.
assert_callbacks_work
(
&
blk
)
define_method
(
:assert_callbacks_work
,
&
blk
)
...
...
@@ -112,8 +126,6 @@ class LegacyButtonToRemoteTest < ButtonToRemoteTest
end
end
# TODO: We need a better way to test JSON being returned from data only helpers - BR
# TODO: We might also need a lower level data only helper method??? - BR
class
ObserveFieldTest
<
AjaxTestCase
def
protect_against_forgery?
false
...
...
@@ -129,18 +141,18 @@ def field(options = {})
end
test
"using a url string"
do
assert_
html
field
(
:url
=>
"/some/other/url"
),
%w("url":"/some/other/url")
assert_
data_element_json
field
(
:url
=>
"/some/other/url"
),
"url"
=>
"/some/other/url"
,
"name"
=>
"title"
end
test
"using a url hash"
do
assert_
html
field
(
:url
=>
{
:controller
=>
:blog
,
:action
=>
:update
}),
%w("url":"/url/hash")
assert_
data_element_json
field
(
:url
=>
{
:controller
=>
:blog
,
:action
=>
:update
}),
"url"
=>
"/url/hash"
,
"name"
=>
"title"
end
test
"using a :frequency option"
do
assert_
html
field
(
:frequency
=>
5
.
minutes
),
%w("frequency":300)
assert_
data_element_json
field
(
:url
=>
{
:controller
=>
:blog
},
:frequency
=>
5
.
minutes
),
"url"
=>
"/url/hash"
,
"name"
=>
"title"
,
"frequency"
=>
300
end
test
"using a :frequency option of 0"
do
...
...
@@ -155,19 +167,19 @@ def field(options = {})
# TODO: Consider using JSON instead of strings. Is using 'value' as a magical reference to the value of the observed field weird? (Rails2 does this) - BR
test
"using a :with option"
do
assert_
html
field
(
:with
=>
"foo"
),
%w("with":"'foo=' + encodeURIComponent(value)")
assert_
html
field
(
:with
=>
"'foo=' + encodeURIComponent(value)"
),
%w("with":"'foo=' + encodeURIComponent(value)")
assert_
data_element_json
field
(
:with
=>
"foo"
),
"name"
=>
"title"
,
"with"
=>
"'foo=' + encodeURIComponent(value)"
assert_
data_element_json
field
(
:with
=>
"'foo=' + encodeURIComponent(value)"
),
"name"
=>
"title"
,
"with"
=>
"'foo=' + encodeURIComponent(value)"
end
test
"using json in a :with option"
do
assert_
html
field
(
:with
=>
"{'id':value}"
),
%w("with":"{'id':value}")
assert_
data_element_json
field
(
:with
=>
"{'id':value}"
),
"name"
=>
"title"
,
"with"
=>
"{'id':value}"
end
test
"using :function for callback"
do
assert_
html
field
(
:function
=>
"alert('Element changed')"
),
%w("function":"function(element, value) {alert('Element changed')}")
assert_
data_element_json
field
(
:function
=>
"alert('Element changed')"
),
"name"
=>
"title"
,
"function"
=>
"function(element, value) {alert('Element changed')}"
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录