<?php 
/* 
 * Copyright (c) 2014, Yahoo! Inc. All rights reserved. 
 * Copyrights licensed under the New BSD License. 
 * See the accompanying LICENSE file for terms. 
 */ 
 
use ohmy\Auth1\Security\Signature; 
 
class SignatureTest extends PHPUnit_Framework_TestCase { 
 
    private $oauth; 
 
    public function setUp(){ 
        $this->oauth = array( 
            'oauth_callback'           => 'http://foo.com/callback', 
            'oauth_consumer_key'       => 'key', 
            'oauth_consumer_secret'    => 'secret', 
            'oauth_nonce'              => 'abcdefghijk123', 
            'oauth_signature_method'   => 'HMAC-SHA1', 
            'oauth_timestamp'          => '1391674154', 
            'oauth_version'            => '1.0' 
        ); 
    } 
    public function tearDown(){ 
        $this->oauth = null; 
    } 
    public function testSignatureQueryString() { 
        $signature = new Signature('POST', 'http://bar.com/', $this->oauth); 
        $this->assertEquals($signature->getQueryString(), 'oauth_callback=http%3A%2F%2Ffoo.com%2Fcallback&oauth_consumer_key=key&oauth_nonce=abcdefghijk123&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1391674154&oauth_version=1.0'); 
    } 
 
    public function testSignatureBaseString() { 
        $signature = new Signature('POST', 'http://bar.com/', $this->oauth); 
        $this->assertEquals($signature->getBaseString(), 'POST&http%3A%2F%2Fbar.com%2F&oauth_callback%3Dhttp%253A%252F%252Ffoo.com%252Fcallback%26oauth_consumer_key%3Dkey%26oauth_nonce%3Dabcdefghijk123%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1391674154%26oauth_version%3D1.0'); 
    } 
 
    public function testSigningKey() { 
        $signature = new Signature('POST', 'http://bar.com/', $this->oauth); 
        $this->assertEquals($signature->getSigningKey(), 'secret&'); 
    } 
 
    public function testSignature() { 
        $signature = new Signature('POST', 'http://bar.com/', $this->oauth); 
        $this->assertEquals($signature->getSignature(), '3L7HyQyZzFoNaoCYOuoBh9qiYbQ='); 
    } 
 
    public function testEverything() { 
        $signature = new Signature('POST', 'http://bar.com/', $this->oauth); 
        $this->assertEquals($signature.'', 'OAuth oauth_callback="http://foo.com/callback", oauth_consumer_key="key", oauth_nonce="abcdefghijk123", oauth_signature="3L7HyQyZzFoNaoCYOuoBh9qiYbQ%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1391674154", oauth_version="1.0"'); 
    } 
} 
 
 |