@@ -235,13 +235,13 @@ public function mergeFormats()
235235 public function testFormat_new ($ query , $ text , $ cli , $ html , array $ options = array ())
236236 {
237237 // Test TEXT format
238- $ this ->assertEquals ($ text , Formatter::format ($ query , array ('type ' => 'text ' ) + $ options ));
238+ $ this ->assertEquals ($ text , Formatter::format ($ query , array ('type ' => 'text ' ) + $ options ), ' Text formatting failed. ' );
239239
240240 // Test CLI format
241- $ this ->assertEquals ($ cli , Formatter::format ($ query , array ('type ' => 'cli ' ) + $ options ));
241+ $ this ->assertEquals ($ cli , Formatter::format ($ query , array ('type ' => 'cli ' ) + $ options ), ' CLI formatting failed. ' );
242242
243243 // Test HTML format
244- $ this ->assertEquals ($ html , Formatter::format ($ query , array ('type ' => 'html ' ) + $ options ));
244+ $ this ->assertEquals ($ html , Formatter::format ($ query , array ('type ' => 'html ' ) + $ options ), ' HTML formatting failed. ' );
245245 }
246246
247247 public function formatQueries_new ()
@@ -400,6 +400,38 @@ public function formatQueries_new()
400400 '<span class="sql-reserved">SELECT</span> ' . '<br/> ' .
401401 ' <span class="sql-string">"Text"</span> <span class="sql-reserved">AS</span> bar ' ,
402402 ),
403+ 'escape cli ' => array (
404+ 'query ' => "select 'text \x1b[33mcolor-inj' " ,
405+ 'text ' =>
406+ 'SELECT ' . "\n" .
407+ " 'text \x1B[33mcolor-inj' " ,
408+ 'cli ' =>
409+ "\x1b[35mSELECT " . "\n" .
410+ " \x1b[91m'text \\x1B[33mcolor-inj' " . "\x1b[0m " ,
411+ 'html ' =>
412+ '<span class="sql-reserved">SELECT</span> ' . '<br/> ' .
413+ ' <span class="sql-string"> \'text ' ."\x1b[33m " .'color-inj \'</span> ' ,
414+ ),
415+ 'escape html ' => array (
416+ 'query ' => "select '<s>xss' from `<s>xss` , <s>nxss /*s<s>xss*/ " ,
417+ 'text ' =>
418+ 'SELECT ' . "\n" .
419+ ' \'<s>xss \'' . "\n" .
420+ 'FROM ' . "\n" .
421+ ' `<s>xss`, ' . "\n" .
422+ ' < s > nxss /*s<s>xss*/ ' ,
423+ 'cli ' =>
424+ "\x1b[35mSELECT " . "\n" .
425+ " \x1b[91m'<s>xss' " . "\n" .
426+ "\x1b[35mFROM " . "\n" .
427+ " \x1b[36m`<s>xss` \x1b[39m, " . "\n" .
428+ " \x1b[39m< \x1b[39ms \x1b[39m> \x1b[39mnxss \x1b[37m/*s<s>xss*/ " . "\x1b[0m " ,
429+ 'html ' =>
430+ '<span class="sql-reserved">SELECT</span> ' . '<br/> ' .
431+ ' <span class="sql-string"> \'<s>xss \'</span> ' . '<br/> ' .
432+ '<span class="sql-reserved">FROM</span> ' . '<br/> ' .
433+ ' <span class="sql-variable">`<s>xss`</span>,<br/> < s > nxss <span class="sql-comment">/*s<s>xss*/</span> ' ,
434+ ),
403435 );
404436 }
405437
@@ -531,7 +563,7 @@ public function formatQueries()
531563 ' <span class="sql-reserved">PRIMARY KEY</span>(<span class="sql-variable">`id`</span>) ' ,
532564 array ('type ' => 'html ' ),
533565 ),
534- array (
566+ array ( # Covered by 'escape html'
535567 "select '<s>xss' from `<s>xss` , <s>nxss /*s<s>xss*/ " ,
536568 '<span class="sql-reserved">SELECT</span> ' . '<br/> ' .
537569 ' <span class="sql-string"> \'<s>xss \'</span> ' . '<br/> ' .
0 commit comments