diff options
author | Dominik Liebler <liebler.dominik@googlemail.com> | 2014-01-22 10:44:21 +0100 |
---|---|---|
committer | Dominik Liebler <liebler.dominik@googlemail.com> | 2014-01-22 10:44:21 +0100 |
commit | dbeecfdfbbe03c84d73e6f48aafc30a031470279 (patch) | |
tree | eb6e36fa8790b079493a8719482c447dcf4687c3 | |
parent | 5e3938b7125cd677d8e4e0a4ac2630524bb43df1 (diff) | |
download | sql-formatter-dbeecfdfbbe03c84d73e6f48aafc30a031470279.zip sql-formatter-dbeecfdfbbe03c84d73e6f48aafc30a031470279.tar.gz sql-formatter-dbeecfdfbbe03c84d73e6f48aafc30a031470279.tar.bz2 |
cleaner solution to highlight binary data
and added new test highlightBinaryData to test for this case
-rw-r--r-- | lib/SqlFormatter.php | 6 | ||||
-rw-r--r-- | tests/SqlFormatterTest.php | 15 |
2 files changed, 20 insertions, 1 deletions
diff --git a/lib/SqlFormatter.php b/lib/SqlFormatter.php index 99f0d56..f6556c9 100644 --- a/lib/SqlFormatter.php +++ b/lib/SqlFormatter.php @@ -864,7 +864,11 @@ class SqlFormatter if (self::is_cli()) { $token = $token[self::TOKEN_VALUE]; } else { - $token = @htmlentities($token[self::TOKEN_VALUE],ENT_COMPAT,'UTF-8'); + if (defined('ENT_IGNORE')) { + $token = htmlentities($token[self::TOKEN_VALUE],ENT_COMPAT | ENT_IGNORE ,'UTF-8'); + } else { + $token = htmlentities($token[self::TOKEN_VALUE],ENT_COMPAT,'UTF-8'); + } } if ($type===self::TOKEN_TYPE_BOUNDARY) { diff --git a/tests/SqlFormatterTest.php b/tests/SqlFormatterTest.php index ca535cf..a7951e8 100644 --- a/tests/SqlFormatterTest.php +++ b/tests/SqlFormatterTest.php @@ -25,6 +25,21 @@ class SqlFormatterTest extends PHPUnit_Framework_TestCase { function testHighlight($sql, $html) { $this->assertEquals(trim($html), trim(SqlFormatter::highlight($sql))); } + + function testHighlightBinary() { + $sql = 'SELECT "' . pack('H*', "ed180e98a47a45b3bdd304b798bc5797") . '" AS BINARY'; + + if (defined('ENT_IGNORE')) { + // this is what gets written as string + $binaryData = '"' . pack('H*', "180e7a450457") . '"'; + } else { + $binaryData = ''; + } + + $html = '<pre style="color: black; background-color: white;"><span style="font-weight:bold;">SELECT</span> <span style="color: blue;">' . $binaryData . '</span> <span style="font-weight:bold;">AS</span> <span style="color: #333;">BINARY</span></pre>'; + + $this->assertEquals(trim($html), trim(SqlFormatter::highlight($sql))); + } /** * @dataProvider highlightCliData */ |