public function testBodySwap() { $message1 = new Swift_Message('Test'); $html = new Swift_MimePart('<html></html>', 'text/html'); $html->getHeaders()->addTextHeader('X-Test-Remove', 'Test-Value'); $html->getHeaders()->addTextHeader('X-Test-Alter', 'Test-Value'); $message1->attach($html); $source = $message1->toString(); $message2 = clone $message1; $message2->setSubject('Message2'); foreach ($message2->getChildren() as $child) { $child->setBody('Test'); $child->getHeaders()->removeAll('X-Test-Remove'); $child->getHeaders()->get('X-Test-Alter')->setValue('Altered'); } $final = $message1->toString(); if ($source != $final) { $this->fail("Difference although object cloned \n [" . $source . "]\n[" . $final . "]\n"); } $final = $message2->toString(); if ($final == $source) { $this->fail('Two body matches although they should differ' . "\n [" . $source . "]\n[" . $final . "]\n"); } $id_1 = $message1->getId(); $id_2 = $message2->getId(); $this->assertEquals($id_1, $id_2, 'Message Ids differ'); $id_2 = $message2->generateId(); $this->assertNotEquals($id_1, $id_2, 'Message Ids are the same'); }