| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | <?php
require_once 'Swift/Encoder/Rfc2231Encoder.php';
require_once 'Swift/CharacterStream/ArrayCharacterStream.php';
require_once 'Swift/CharacterReaderFactory/SimpleCharacterReaderFactory.php';
class Swift_Encoder_Rfc2231EncoderAcceptanceTest extends UnitTestCase
{
    private $_samplesDir;
    private $_factory;
    public function setUp()
    {
        $this->_samplesDir = realpath(dirname(__FILE__) . '/../../../_samples/charsets');
        $this->_factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory();
    }
    public function testEncodingAndDecodingSamples()
    {
        $sampleFp = opendir($this->_samplesDir);
        while (false !== $encodingDir = readdir($sampleFp)) {
            if (substr($encodingDir, 0, 1) == '.') {
                continue;
            }
            $encoding = $encodingDir;
            $charStream = new Swift_CharacterStream_ArrayCharacterStream(
                $this->_factory, $encoding);
            $encoder = new Swift_Encoder_Rfc2231Encoder($charStream);
            $sampleDir = $this->_samplesDir . '/' . $encodingDir;
            if (is_dir($sampleDir)) {
                $fileFp = opendir($sampleDir);
                while (false !== $sampleFile = readdir($fileFp)) {
                    if (substr($sampleFile, 0, 1) == '.') {
                        continue;
                    }
                    $text = file_get_contents($sampleDir . '/' . $sampleFile);
                    $encodedText = $encoder->encodeString($text);
                    $this->assertEqual(
                        urldecode(implode('', explode("\r\n", $encodedText))), $text,
                        '%s: Encoded string should decode back to original string for sample ' .
                        $sampleDir . '/' . $sampleFile
                        );
                }
                closedir($fileFp);
            }
        }
        closedir($sampleFp);
    }
}
 |