mirror of
https://github.com/Shopify/liquid.git
synced 2026-10-03 09:05:13 -07:00
CGI powered standard filters to handle non string inputs
This commit is contained in:
@@ -33,7 +33,7 @@ module Liquid
|
|||||||
end
|
end
|
||||||
|
|
||||||
def escape(input)
|
def escape(input)
|
||||||
CGI.escapeHTML(input).untaint unless input.nil?
|
CGI.escapeHTML(input.to_s).untaint unless input.nil?
|
||||||
end
|
end
|
||||||
alias_method :h, :escape
|
alias_method :h, :escape
|
||||||
|
|
||||||
@@ -42,11 +42,11 @@ module Liquid
|
|||||||
end
|
end
|
||||||
|
|
||||||
def url_encode(input)
|
def url_encode(input)
|
||||||
CGI.escape(input) unless input.nil?
|
CGI.escape(input.to_s) unless input.nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
def url_decode(input)
|
def url_decode(input)
|
||||||
CGI.unescape(input) unless input.nil?
|
CGI.unescape(input.to_s) unless input.nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
def slice(input, offset, length = nil)
|
def slice(input, offset, length = nil)
|
||||||
|
|||||||
@@ -128,8 +128,16 @@ class StandardFiltersTest < Minitest::Test
|
|||||||
|
|
||||||
def test_escape
|
def test_escape
|
||||||
assert_equal '<strong>', @filters.escape('<strong>')
|
assert_equal '<strong>', @filters.escape('<strong>')
|
||||||
|
assert_equal '1', @filters.escape(1)
|
||||||
|
assert_equal '2001-02-03', @filters.escape(Date.new(2001, 2, 3))
|
||||||
assert_nil @filters.escape(nil)
|
assert_nil @filters.escape(nil)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_h
|
||||||
assert_equal '<strong>', @filters.h('<strong>')
|
assert_equal '<strong>', @filters.h('<strong>')
|
||||||
|
assert_equal '1', @filters.h(1)
|
||||||
|
assert_equal '2001-02-03', @filters.h(Date.new(2001, 2, 3))
|
||||||
|
assert_nil @filters.h(nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_escape_once
|
def test_escape_once
|
||||||
@@ -138,6 +146,8 @@ class StandardFiltersTest < Minitest::Test
|
|||||||
|
|
||||||
def test_url_encode
|
def test_url_encode
|
||||||
assert_equal 'foo%2B1%40example.com', @filters.url_encode('[email protected]')
|
assert_equal 'foo%2B1%40example.com', @filters.url_encode('[email protected]')
|
||||||
|
assert_equal '1', @filters.url_encode(1)
|
||||||
|
assert_equal '2001-02-03', @filters.url_encode(Date.new(2001, 2, 3))
|
||||||
assert_nil @filters.url_encode(nil)
|
assert_nil @filters.url_encode(nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -145,6 +155,8 @@ class StandardFiltersTest < Minitest::Test
|
|||||||
assert_equal 'foo bar', @filters.url_decode('foo+bar')
|
assert_equal 'foo bar', @filters.url_decode('foo+bar')
|
||||||
assert_equal 'foo bar', @filters.url_decode('foo%20bar')
|
assert_equal 'foo bar', @filters.url_decode('foo%20bar')
|
||||||
assert_equal '[email protected]', @filters.url_decode('foo%2B1%40example.com')
|
assert_equal '[email protected]', @filters.url_decode('foo%2B1%40example.com')
|
||||||
|
assert_equal '1', @filters.url_decode(1)
|
||||||
|
assert_equal '2001-02-03', @filters.url_decode(Date.new(2001, 2, 3))
|
||||||
assert_nil @filters.url_decode(nil)
|
assert_nil @filters.url_decode(nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user