提交 f8c988d0 编写于 作者: J Justin Collins

Tests for alias processing calls in model classes

上级 af66feaa
......@@ -2,4 +2,18 @@ class Email < ActiveRecord::Base
attr_accessible :email
belongs_to :user
EMAIL_REGEX = /^[a-z0-9]+@[a-z0-9]+\.[a-z]+$/
validates_format_of :email, with: EMAIL_REGEX
scope :assigned_to_user, ->(user) {
task_table = User.table_name
joins("INNER JOIN #{task_table}
ON #{task_table}.user_id = #{user.id}
AND (#{task_table}.type_id = #{table_name}.type_id)
AND (#{task_table}.manager_id = #{table_name}.manager_id)
")
}
end
......@@ -14,7 +14,7 @@ class Rails4Tests < Test::Unit::TestCase
def expected
@expected ||= {
:controller => 0,
:model => 1,
:model => 2,
:template => 3,
:generic => 51
}
......@@ -621,6 +621,31 @@ class Rails4Tests < Test::Unit::TestCase
:user_input => s(:call, s(:const, :User), :table_name)
end
def test_sql_injection_scope_alias_processing
assert_no_warning :type => :warning,
:warning_code => 0,
:fingerprint => "a28e3653220903b78e2f00f1e571aa7afaa4f7db6f0789be8cf59c1b9eb583a1",
:warning_type => "SQL Injection",
:line => 13,
:message => /^Possible\ SQL\ injection/,
:confidence => 1,
:relative_path => "app/models/email.rb",
:user_input => s(:lvar, :task_table)
end
def test_format_validation_model_alias_processing
assert_warning :type => :model,
:warning_code => 30,
:fingerprint => "d2bfa987fd0e59d1d515a0bc0baaf378d1dd75483184c945b662b96d370add28",
:warning_type => "Format Validation",
:line => 8,
:message => /^Insufficient\ validation\ for\ 'email'\ usin/,
:confidence => 0,
:relative_path => "app/models/email.rb",
:user_input => nil
end
def test_additional_libs_option
assert_warning :type => :warning,
:warning_code => 14,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册