41 lines
978 B
Ruby
41 lines
978 B
Ruby
|
require File.dirname(__FILE__) + '/helper'
|
||
|
|
||
|
module SecurityFilter
|
||
|
def add_one(input)
|
||
|
"#{input} + 1"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class SecurityTest < Test::Unit::TestCase
|
||
|
include Liquid
|
||
|
|
||
|
def test_no_instance_eval
|
||
|
text = %( {{ '1+1' | instance_eval }} )
|
||
|
expected = %| 1+1 |
|
||
|
|
||
|
assert_equal expected, Template.parse(text).render(@assigns)
|
||
|
end
|
||
|
|
||
|
def test_no_existing_instance_eval
|
||
|
text = %( {{ '1+1' | __instance_eval__ }} )
|
||
|
expected = %| 1+1 |
|
||
|
|
||
|
assert_equal expected, Template.parse(text).render(@assigns)
|
||
|
end
|
||
|
|
||
|
|
||
|
def test_no_instance_eval_after_mixing_in_new_filter
|
||
|
text = %( {{ '1+1' | instance_eval }} )
|
||
|
expected = %| 1+1 |
|
||
|
|
||
|
assert_equal expected, Template.parse(text).render(@assigns)
|
||
|
end
|
||
|
|
||
|
|
||
|
def test_no_instance_eval_later_in_chain
|
||
|
text = %( {{ '1+1' | add_one | instance_eval }} )
|
||
|
expected = %| 1+1 + 1 |
|
||
|
|
||
|
assert_equal expected, Template.parse(text).render(@assigns, :filters => SecurityFilter)
|
||
|
end
|
||
|
end
|