<?php 
/** 
 * StegoContainer SteganographyKit UnitTest 
 *  
 * @link        https://github.com/picamator/SteganographyKit 
 * @license     http://opensource.org/licenses/BSD-3-Clause New BSD License 
 */ 
 
use Picamator\SteganographyKit\StegoContainer; 
 
class StegoContainerTest extends BaseTest  
{ 
    /** 
     * Stego container 
     *  
     * @var StegoContainer  
     */ 
    protected $stegoContainer; 
     
    public function setUp()  
    { 
        parent::setUp(); 
        $this->stegoContainer = new StegoContainer(); 
    } 
     
    /** 
     * Remove files in stegoPath after runs each test 
     */ 
    public function tearDown() 
    { 
        $this->clearStegoPath(); 
    } 
     
    /** 
     * @dataProvider providerEncode 
     * @param string $coverPath 
     * @param string $stegoPath 
     * @param string $text 
     */ 
    public function testEncode($coverPath, $stegoPath, $text)  
    {        
        $coverPath = $this->getDataPath($coverPath); 
        $stegoPath = $this->getDataPath(self::$stegoPath) . '/' . $stegoPath; 
         
        $result = $this->stegoContainer->encode($coverPath, $stegoPath, $text); 
         
        $this->assertTrue($result); 
    } 
     
    /** 
     * @dataProvider providerDecode 
     * @param string $stegoPath 
     * @param string $expected 
     */ 
    public function testDecode($stegoPath, $expected)  
    { 
        $stegoPath  = $this->getDataPath($stegoPath);      
        $actual     = $this->stegoContainer->decode($stegoPath); 
         
        $this->assertEquals($expected, $actual); 
    } 
     
    /** 
     * @dataProvider providerRenderImage 
     * @param string $coverPath 
     * @param string $stegoPath 
     * @param string $text 
     */ 
    public function testRenderImage($coverPath, $text)  
    {        
        $coverPath = $this->getDataPath($coverPath);     
        $this->stegoContainer->encode($coverPath, '', $text); 
         
        ob_start(); 
            $this->stegoContainer->renderImage(); 
 
            $result = ob_get_contents(); 
        ob_end_clean(); 
         
        $this->assertGreaterThanOrEqual(80000, strlen($result)); 
    } 
     
    public function providerEncode() 
    { 
        return array( 
            array('original_200_200.png', 'stego_origin_200_200.png', 'Лорем іпсум, Lorem ipsum, Łorem ipsóm') 
        ); 
    } 
     
    public function providerDecode()  
    { 
        return array( 
            array('lsb/pure/stego_origin_200_200.png', 'Лорем іпсум, Lorem ipsum, Łorem ipsóm') 
        ); 
    } 
     
    public function providerRenderImage() 
    { 
        return array( 
            array('original_200_200.png', 'Лорем іпсум, Lorem ipsum, Łorem ipsóm') 
        ); 
    } 
} 
 
 |