mirror of
https://github.com/kemko/liquid.git
synced 2026-01-01 15:55:40 +03:00
CGI powered standard filters to handle non string inputs
This commit is contained in:
@@ -33,7 +33,7 @@ module Liquid
|
||||
end
|
||||
|
||||
def escape(input)
|
||||
CGI.escapeHTML(input).untaint unless input.nil?
|
||||
CGI.escapeHTML(input.to_s).untaint unless input.nil?
|
||||
end
|
||||
alias_method :h, :escape
|
||||
|
||||
@@ -42,11 +42,11 @@ module Liquid
|
||||
end
|
||||
|
||||
def url_encode(input)
|
||||
CGI.escape(input) unless input.nil?
|
||||
CGI.escape(input.to_s) unless input.nil?
|
||||
end
|
||||
|
||||
def url_decode(input)
|
||||
CGI.unescape(input) unless input.nil?
|
||||
CGI.unescape(input.to_s) unless input.nil?
|
||||
end
|
||||
|
||||
def slice(input, offset, length = nil)
|
||||
|
||||
@@ -128,8 +128,16 @@ class StandardFiltersTest < Minitest::Test
|
||||
|
||||
def test_escape
|
||||
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)
|
||||
end
|
||||
|
||||
def test_h
|
||||
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
|
||||
|
||||
def test_escape_once
|
||||
@@ -138,6 +146,8 @@ class StandardFiltersTest < Minitest::Test
|
||||
|
||||
def test_url_encode
|
||||
assert_equal 'foo%2B1%40example.com', @filters.url_encode('foo+1@example.com')
|
||||
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)
|
||||
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%20bar')
|
||||
assert_equal 'foo+1@example.com', @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)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user