<?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')
);
}
}
|