@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at upstream/main 69 lines 1.5 kB view raw
1<?php 2 3final class QueryFormattingTestCase extends PhabricatorTestCase { 4 5 public function testQueryFormatting() { 6 $conn = id(new PhabricatorUser())->establishConnection('r'); 7 8 $this->assertEqual( 9 'NULL', 10 (string)qsprintf($conn, '%nd', null)); 11 12 $this->assertEqual( 13 '0', 14 (string)qsprintf($conn, '%nd', 0)); 15 16 $this->assertEqual( 17 '0', 18 (string)qsprintf($conn, '%d', 0)); 19 20 $raised = null; 21 try { 22 qsprintf($conn, '%d', 'derp'); 23 } catch (Exception $ex) { 24 $raised = $ex; 25 } 26 $this->assertTrue( 27 (bool)$raised, 28 pht('%s should raise exception for invalid %%d conversion.', 'qsprintf')); 29 30 $this->assertEqual( 31 "'<S>'", 32 (string)qsprintf($conn, '%s', null)); 33 34 $this->assertEqual( 35 'NULL', 36 (string)qsprintf($conn, '%ns', null)); 37 38 $this->assertEqual( 39 "'<S>', '<S>'", 40 (string)qsprintf($conn, '%Ls', array('x', 'y'))); 41 42 $this->assertEqual( 43 "'<B>'", 44 (string)qsprintf($conn, '%B', null)); 45 46 $this->assertEqual( 47 'NULL', 48 (string)qsprintf($conn, '%nB', null)); 49 50 $this->assertEqual( 51 "'<B>', '<B>'", 52 (string)qsprintf($conn, '%LB', array('x', 'y'))); 53 54 $this->assertEqual( 55 '<C>', 56 (string)qsprintf($conn, '%T', 'x')); 57 58 $this->assertEqual( 59 '<C>', 60 (string)qsprintf($conn, '%C', 'y')); 61 62 $this->assertEqual( 63 '<C>.<C>', 64 (string)qsprintf($conn, '%R', new AphrontDatabaseTableRef('x', 'y'))); 65 66 } 67 68 69}