forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			73 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			73 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { | ||
|  |     print "This script must be run from the command line\n"; | ||
|  |     exit(); | ||
|  | } | ||
|  | 
 | ||
|  | define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); | ||
|  | define('STATUSNET', true); | ||
|  | define('LACONICA', true); | ||
|  | 
 | ||
|  | require_once INSTALLDIR . '/lib/common.php'; | ||
|  | 
 | ||
|  | class CurryTest extends PHPUnit_Framework_TestCase | ||
|  | { | ||
|  |     /** | ||
|  |      * @dataProvider provider | ||
|  |      * | ||
|  |      */ | ||
|  |     public function testProduction($callback, $curry_params, $call_params, $expected) | ||
|  |     { | ||
|  |         $params = array_merge(array($callback), $curry_params); | ||
|  |         $curried = call_user_func_array('curry', $params); | ||
|  |         $result = call_user_func_array($curried, $call_params); | ||
|  |         $this->assertEquals($expected, $result); | ||
|  |     } | ||
|  | 
 | ||
|  |     static public function provider() | ||
|  |     { | ||
|  |         $obj = new CurryTestHelperObj('oldval'); | ||
|  |         return array(array(array('CurryTest', 'callback'), | ||
|  |                            array('curried'), | ||
|  |                            array('called'), | ||
|  |                            'called|curried'), | ||
|  |                      array(array('CurryTest', 'callback'), | ||
|  |                            array('curried1', 'curried2'), | ||
|  |                            array('called1', 'called2'), | ||
|  |                            'called1|called2|curried1|curried2'), | ||
|  |                      array(array('CurryTest', 'callbackObj'), | ||
|  |                            array($obj), | ||
|  |                            array('newval1'), | ||
|  |                            'oldval|newval1'), | ||
|  |                      // Confirm object identity is retained...
 | ||
|  |                      array(array('CurryTest', 'callbackObj'), | ||
|  |                            array($obj), | ||
|  |                            array('newval2'), | ||
|  |                            'newval1|newval2')); | ||
|  |     } | ||
|  | 
 | ||
|  |     static function callback() | ||
|  |     { | ||
|  |         $args = func_get_args(); | ||
|  |         return implode("|", $args); | ||
|  |     } | ||
|  | 
 | ||
|  |     static function callbackObj($val, $obj) | ||
|  |     { | ||
|  |         $old = $obj->val; | ||
|  |         $obj->val = $val; | ||
|  |         return "$old|$val"; | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | class CurryTestHelperObj | ||
|  | { | ||
|  |     public $val=''; | ||
|  | 
 | ||
|  |     function __construct($val) | ||
|  |     { | ||
|  |         $this->val = $val; | ||
|  |     } | ||
|  | } |