<?php

require_once 'swift_required.php';
require_once 'Swift/Mime/SimpleMessageAcceptanceTest.php';

class Swift_MessageAcceptanceTest
    extends Swift_Mime_SimpleMessageAcceptanceTest
{
    public function testAddPartWrapper()
    {
        $message = $this->_createMessage();
        $message->setSubject('just a test subject');
        $message->setFrom(array(
            'chris.corbyn@swiftmailer.org' => 'Chris Corbyn'));

        $id = $message->getId();
        $date = $message->getDate();
        $boundary = $message->getBoundary();

        $message->addPart('foo', 'text/plain', 'iso-8859-1');
        $message->addPart('test <b>foo</b>', 'text/html', 'iso-8859-1');

        $this->assertEqual(
            'Message-ID: <' . $id . '>' . "\r\n" .
            'Date: ' . date('r', $date) . "\r\n" .
            'Subject: just a test subject' . "\r\n" .
            'From: Chris Corbyn <chris.corbyn@swiftmailer.org>' . "\r\n" .
            'MIME-Version: 1.0' . "\r\n" .
            'Content-Type: multipart/alternative;' . "\r\n" .
            ' boundary="' . $boundary . '"' . "\r\n" .
            "\r\n\r\n" .
            '--' . $boundary . "\r\n" .
            'Content-Type: text/plain; charset=iso-8859-1' . "\r\n" .
            'Content-Transfer-Encoding: quoted-printable' . "\r\n" .
            "\r\n" .
            'foo' .
            "\r\n\r\n" .
            '--' . $boundary . "\r\n" .
            'Content-Type: text/html; charset=iso-8859-1' . "\r\n" .
            'Content-Transfer-Encoding: quoted-printable' . "\r\n" .
            "\r\n" .
            'test <b>foo</b>' .
            "\r\n\r\n" .
            '--' . $boundary . '--' . "\r\n",
            $message->toString()
            );
    }

    // -- Private helpers

    protected function _createMessage()
    {
        Swift_DependencyContainer::getInstance()
            ->register('properties.charset')->asValue(null);

        return Swift_Message::newInstance();
    }
}
