61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			1.7 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); | ||
|  | 
 | ||
|  | require_once INSTALLDIR . '/lib/common.php'; | ||
|  | 
 | ||
|  | class MagicEnvelopeTest extends PHPUnit_Framework_TestCase | ||
|  | { | ||
|  |     /** | ||
|  |      * Test that MagicEnvelope builds the correct plaintext for signing. | ||
|  |      * @dataProvider provider | ||
|  |      */ | ||
|  |     public function testSignatureText($env, $expected) | ||
|  |     { | ||
|  |         $magic = new MagicEnvelope; | ||
|  |         $text = $magic->signingText($env); | ||
|  | 
 | ||
|  |         $this->assertEquals($expected, $text, "'$text' should be '$expected'"); | ||
|  |     } | ||
|  | 
 | ||
|  |     static public function provider() | ||
|  |     { | ||
|  |         return array( | ||
|  |             array( | ||
|  |                 // Sample case given in spec:
 | ||
|  |                 // http://salmon-protocol.googlecode.com/svn/trunk/draft-panzer-magicsig-00.html#signing
 | ||
|  |                 array( | ||
|  |                     'data' => 'Tm90IHJlYWxseSBBdG9t', | ||
|  |                     'data_type' => 'application/atom+xml', | ||
|  |                     'encoding' => 'base64url', | ||
|  |                     'alg' => 'RSA-SHA256' | ||
|  |                 ), | ||
|  |                 'Tm90IHJlYWxseSBBdG9t.YXBwbGljYXRpb24vYXRvbSt4bWw=.YmFzZTY0dXJs.UlNBLVNIQTI1Ng==' | ||
|  |             ) | ||
|  |         ); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Test that MagicEnvelope builds the correct plaintext for signing. | ||
|  |      * @dataProvider provider | ||
|  |      */ | ||
|  |     public function testSignatureTextCompat($env, $expected) | ||
|  |     { | ||
|  |         // Our old code didn't add the extra fields, just used the armored text.
 | ||
|  |         $alt = $env['data']; | ||
|  | 
 | ||
|  |         $magic = new MagicEnvelopeCompat; | ||
|  |         $text = $magic->signingText($env); | ||
|  | 
 | ||
|  |         $this->assertEquals($alt, $text, "'$text' should be '$alt'"); | ||
|  |     } | ||
|  | 
 | ||
|  | } |