| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | <?php/** * This file is part of PHPOffice Common * * PHPOffice Common is free software distributed under the terms of the GNU Lesser * General Public License version 3 as published by the Free Software Foundation. * * For the full copyright and license information, please read the LICENSE * file that was distributed with this source code. For the full list of * contributors, visit https://github.com/PHPOffice/Common/contributors. * * @link        https://github.com/PHPOffice/Common * @copyright   2009-2016 PHPOffice Common contributors * @license     http://www.gnu.org/licenses/lgpl.txt LGPL version 3 */namespace PhpOffice\Common\Tests\Microsoft;use PhpOffice\Common\Microsoft\PasswordEncoder;/** * Test class for PhpOffice\Common\PasswordEncoder * @coversDefaultClass \PhpOffice\Common\PasswordEncoder */class PasswordEncoderTest extends \PHPUnit\Framework\TestCase{    /**     * Test that a password can be hashed without specifying any additional parameters     */    public function testEncodePassword()    {        //given        $password = 'test';        //when        $hashPassword = PasswordEncoder::hashPassword($password);        //then        $this->assertEquals('M795/MAlmGU8RIsY9Q9uDLHC7bk=', $hashPassword);    }    /**     * Test that a password can be hashed with a custom salt     */    public function testEncodePasswordWithSalt()    {        //given        $password = 'test';        $salt = base64_decode('uq81pJRRGFIY5U+E9gt8tA==');        //when        $hashPassword = PasswordEncoder::hashPassword($password, PasswordEncoder::ALGORITHM_SHA_1, $salt);        //then        $this->assertEquals('QiDOcpia1YzSVJPiKPwWebl9p/0=', $hashPassword);    }    /**     * Test that the encoder falls back on SHA-1 if a non supported algorithm is given     */    public function testDefaultsToSha1IfUnsupportedAlgorithm()    {        //given        $password = 'test';        $salt = base64_decode('uq81pJRRGFIY5U+E9gt8tA==');        //when        $hashPassword = PasswordEncoder::hashPassword($password, PasswordEncoder::ALGORITHM_MAC, $salt);        //then        $this->assertEquals('QiDOcpia1YzSVJPiKPwWebl9p/0=', $hashPassword);    }    /**     * Test that the encoder falls back on SHA-1 if a non supported algorithm is given     */    public function testEncodePasswordWithNullAsciiCodeInPassword()    {        //given        $password = 'test' . chr(0);        $salt = base64_decode('uq81pJRRGFIY5U+E9gt8tA==');        //when        $hashPassword = PasswordEncoder::hashPassword($password, PasswordEncoder::ALGORITHM_MAC, $salt, 1);        //then        $this->assertEquals('rDV9sgdDsztoCQlvRCb1lF2wxNg=', $hashPassword);    }}
 |