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;
 | |
|     }
 | |
| }
 |