Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
a99e0045
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 搜索 >>
提交
a99e0045
编写于
2月 24, 2019
作者:
R
Ryuta Kamizono
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove duplicated protected params definitions
Use "support/stubs/strong_parameters" instead.
上级
257564d6
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
30 addition
and
88 deletion
+30
-88
activerecord/test/cases/adapters/postgresql/hstore_test.rb
activerecord/test/cases/adapters/postgresql/hstore_test.rb
+2
-7
activerecord/test/cases/calculations_test.rb
activerecord/test/cases/calculations_test.rb
+2
-20
activerecord/test/cases/finder_test.rb
activerecord/test/cases/finder_test.rb
+3
-3
activerecord/test/cases/forbidden_attributes_protection_test.rb
...record/test/cases/forbidden_attributes_protection_test.rb
+1
-37
activerecord/test/cases/relation/where_test.rb
activerecord/test/cases/relation/where_test.rb
+2
-20
activerecord/test/support/stubs/strong_parameters.rb
activerecord/test/support/stubs/strong_parameters.rb
+20
-1
未找到文件。
activerecord/test/cases/adapters/postgresql/hstore_test.rb
浏览文件 @
a99e0045
...
...
@@ -2,6 +2,7 @@
require
"cases/helper"
require
"support/schema_dumping_helper"
require
"support/stubs/strong_parameters"
class
PostgresqlHstoreTest
<
ActiveRecord
::
PostgreSQLTestCase
include
SchemaDumpingHelper
...
...
@@ -11,12 +12,6 @@ class Hstore < ActiveRecord::Base
store_accessor
:settings
,
:language
,
:timezone
end
class
FakeParameters
def
to_unsafe_h
{
"hi"
=>
"hi"
}
end
end
def
setup
@connection
=
ActiveRecord
::
Base
.
connection
...
...
@@ -344,7 +339,7 @@ def test_schema_dump_with_shorthand
end
def
test_supports_to_unsafe_h_values
assert_equal
(
"
\"
hi
\"
=>
\"
hi
\"
"
,
@type
.
serialize
(
FakeParameters
.
new
))
assert_equal
"
\"
hi
\"
=>
\"
hi
\"
"
,
@type
.
serialize
(
ProtectedParams
.
new
(
"hi"
=>
"hi"
))
end
private
...
...
activerecord/test/cases/calculations_test.rb
浏览文件 @
a99e0045
...
...
@@ -19,6 +19,7 @@
require
"models/post"
require
"models/comment"
require
"models/rating"
require
"support/stubs/strong_parameters"
class
CalculationsTest
<
ActiveRecord
::
TestCase
fixtures
:companies
,
:accounts
,
:topics
,
:speedometers
,
:minivans
,
:books
,
:posts
,
:comments
...
...
@@ -897,26 +898,7 @@ def test_sum_uses_enumerable_version_when_block_is_given
end
def
test_having_with_strong_parameters
protected_params
=
Class
.
new
do
attr_reader
:permitted
alias
:permitted?
:permitted
def
initialize
(
parameters
)
@parameters
=
parameters
@permitted
=
false
end
def
to_h
@parameters
end
def
permit!
@permitted
=
true
self
end
end
params
=
protected_params
.
new
(
credit_limit:
"50"
)
params
=
ProtectedParams
.
new
(
credit_limit:
"50"
)
assert_raises
(
ActiveModel
::
ForbiddenAttributesError
)
do
Account
.
group
(
:id
).
having
(
params
)
...
...
activerecord/test/cases/finder_test.rb
浏览文件 @
a99e0045
...
...
@@ -226,14 +226,14 @@ def test_exists_with_string
end
def
test_exists_with_strong_parameters
assert_equal
false
,
Subscriber
.
exists?
(
P
arameter
s
.
new
(
nick:
"foo"
).
permit!
)
assert_equal
false
,
Subscriber
.
exists?
(
P
rotectedParam
s
.
new
(
nick:
"foo"
).
permit!
)
Subscriber
.
create!
(
nick:
"foo"
)
assert_equal
true
,
Subscriber
.
exists?
(
P
arameter
s
.
new
(
nick:
"foo"
).
permit!
)
assert_equal
true
,
Subscriber
.
exists?
(
P
rotectedParam
s
.
new
(
nick:
"foo"
).
permit!
)
assert_raises
(
ActiveModel
::
ForbiddenAttributesError
)
do
Subscriber
.
exists?
(
P
arameter
s
.
new
(
nick:
"foo"
))
Subscriber
.
exists?
(
P
rotectedParam
s
.
new
(
nick:
"foo"
))
end
end
...
...
activerecord/test/cases/forbidden_attributes_protection_test.rb
浏览文件 @
a99e0045
# frozen_string_literal: true
require
"cases/helper"
require
"active_support/core_ext/hash/indifferent_access"
require
"models/company"
require
"models/person"
require
"models/ship"
require
"models/ship_part"
require
"models/treasure"
class
ProtectedParams
attr_accessor
:permitted
alias
:permitted?
:permitted
delegate
:keys
,
:key?
,
:has_key?
,
:empty?
,
to: :@parameters
def
initialize
(
attributes
)
@parameters
=
attributes
.
with_indifferent_access
@permitted
=
false
end
def
permit!
@permitted
=
true
self
end
def
[]
(
key
)
@parameters
[
key
]
end
def
to_h
@parameters
end
def
stringify_keys
dup
end
def
dup
super
.
tap
do
|
duplicate
|
duplicate
.
instance_variable_set
:@permitted
,
@permitted
end
end
end
require
"support/stubs/strong_parameters"
class
ForbiddenAttributesProtectionTest
<
ActiveRecord
::
TestCase
def
test_forbidden_attributes_cannot_be_used_for_mass_assignment
...
...
activerecord/test/cases/relation/where_test.rb
浏览文件 @
a99e0045
...
...
@@ -14,6 +14,7 @@
require
"models/topic"
require
"models/treasure"
require
"models/vertex"
require
"support/stubs/strong_parameters"
module
ActiveRecord
class
WhereTest
<
ActiveRecord
::
TestCase
...
...
@@ -339,27 +340,8 @@ def test_where_on_association_with_select_relation
end
def
test_where_with_strong_parameters
protected_params
=
Class
.
new
do
attr_reader
:permitted
alias
:permitted?
:permitted
def
initialize
(
parameters
)
@parameters
=
parameters
@permitted
=
false
end
def
to_h
@parameters
end
def
permit!
@permitted
=
true
self
end
end
author
=
authors
(
:david
)
params
=
protected_p
arams
.
new
(
name:
author
.
name
)
params
=
ProtectedP
arams
.
new
(
name:
author
.
name
)
assert_raises
(
ActiveModel
::
ForbiddenAttributesError
)
{
Author
.
where
(
params
)
}
assert_equal
author
,
Author
.
where
(
params
.
permit!
).
first
end
...
...
activerecord/test/support/stubs/strong_parameters.rb
浏览文件 @
a99e0045
# frozen_string_literal: true
class
Parameters
require
"active_support/core_ext/hash/indifferent_access"
class
ProtectedParams
delegate
:keys
,
:key?
,
:has_key?
,
:empty?
,
to: :@parameters
def
initialize
(
parameters
=
{})
@parameters
=
parameters
.
with_indifferent_access
@permitted
=
false
...
...
@@ -15,7 +19,22 @@ def permit!
self
end
def
[]
(
key
)
@parameters
[
key
]
end
def
to_h
@parameters
.
to_h
end
alias
to_unsafe_h
to_h
def
stringify_keys
dup
end
def
dup
super
.
tap
do
|
duplicate
|
duplicate
.
instance_variable_set
:@permitted
,
@permitted
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录