<?php
use movemegif\data\Formatter;
use movemegif\domain\StringCanvas;
use movemegif\GifBuilder;
require_once __DIR__ . '/../../php/autoloader.php';
/**
* Tests frames with top/left offset.
* Tests palette with only 2 colors.
* Tests duration.
* Tests disposal methods.
* Integration test that builds complete GIF.
*
* @author Patrick van Bergen
*/
class FeatureTest extends PHPUnit_Framework_TestCase
{
public function testOffset()
{
$frame1 = "
1 1 1 1 2 2
1 1 1 1 2 2
1 1 1 1 2 2
2 2 1 1 1 1
2 2 1 1 1 1
2 2 1 1 1 1
";
$index2color = array(
'1' => 0xFFFFFF,
'2' => 0xFF0000,
);
$builder = new GifBuilder(6, 6);
$canvas = new StringCanvas(6, 6, $frame1, $index2color);
$canvas->setTransparencyColor(0xFF0000);
$builder->addFrame()
->setCanvas($canvas)
->setUseGlobalColorTable()
->setDuration(50)
->setDisposalToOverwriteWithPreviousFrame()
;
$frame2 = "
2 2 2 2
2 1 1 2
2 2 2 2
";
$builder->addFrame()->setLeft(2)->setTop(3)
->setCanvas(new StringCanvas(4, 3, $frame2, $index2color))
->setUseGlobalColorTable()
->setDisposalToOverwriteWithBackground()
;
$contents = $builder->getContents();
$actual = Formatter::byteString2hexString($contents);
$expected = "47 49 46 38 39 61 06 00 06 00 91 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 21 F9 04 0D 32 00 01 00 2C 00 00 00 00 06 00 06 00 00 02 0A 84 11 71 A8 97 B9 A0 6B A6 00 00 21 F9 04 08 00 00 00 00 2C 02 00 03 00 04 00 03 00 00 02 04 8C 0D 70 56 00 21 FE 16 43 72 65 61 74 65 64 20 77 69 74 68 20 6D 6F 76 65 6D 65 67 69 66 00 3B";
$this->assertEquals($expected, $actual);
}
}
|