Example #1
0
 public function testMsgHandleUidCopy()
 {
     $path1 = './test_data/test_mailbox_' . date('Ymd_His') . '_' . uniqid('', true);
     $log = new Logger('test_application');
     #$log->pushHandler(new StreamHandler('php://stdout', Logger::DEBUG));
     $server = new Server('', 0);
     $server->setLog($log);
     $server->init();
     $storage1 = new DirectoryStorage();
     $storage1->setPath($path1);
     $server->addStorage($storage1);
     $client = new Client();
     $client->setServer($server);
     $client->setId(1);
     $msg = $client->msgHandle('15 UID copy');
     $this->assertEquals('15 NO uid failure' . Client::MSG_SEPARATOR, $msg);
     $client->setStatus('hasAuth', true);
     $msg = $client->msgHandle('15 UID copy');
     $this->assertEquals('15 NO No mailbox selected.' . Client::MSG_SEPARATOR, $msg);
     $server->addFolder('test_dir1');
     $server->addFolder('test_dir2');
     $client->msgHandle('6 select test_dir1');
     $msg = $client->msgHandle('15 UID copy');
     $this->assertEquals('15 BAD Arguments invalid.' . Client::MSG_SEPARATOR, $msg);
     $msg = $client->msgHandle('15 UID copy 100001');
     $this->assertEquals('15 BAD Arguments invalid.' . Client::MSG_SEPARATOR, $msg);
     $msg = $client->msgHandle('15 UID copy 100001 test_dir3');
     $this->assertEquals('15 BAD No messages in selected mailbox.' . Client::MSG_SEPARATOR, $msg);
     $msg = $client->msgHandle('15 UID copy 100001 test_dir2');
     $this->assertEquals('15 BAD No messages in selected mailbox.' . Client::MSG_SEPARATOR, $msg);
     $message = new Message();
     $message->addFrom('*****@*****.**');
     $message->addTo('*****@*****.**');
     $message->setSubject('my_subject 1');
     $message->setBody('my_body');
     $server->addMail($message, 'test_dir1', array(), true);
     $message = new Message();
     $message->addFrom('*****@*****.**');
     $message->addTo('*****@*****.**');
     $message->setSubject('my_subject 2');
     $message->setBody('my_body');
     $server->addMail($message, 'test_dir1', array(), true);
     $message = new Message();
     $message->addFrom('*****@*****.**');
     $message->addTo('*****@*****.**');
     $message->setSubject('my_subject 3');
     $message->setBody('my_body');
     $server->addMail($message, 'test_dir1', array(), true);
     $message = new Message();
     $message->addFrom('*****@*****.**');
     $message->addTo('*****@*****.**');
     $message->setSubject('my_subject 4');
     $message->setBody('my_body');
     $server->addMail($message, 'test_dir1', array(), true);
     $finder = new Finder();
     $files = $finder->in($path1 . '/test_dir1')->files();
     $this->assertEquals(4, count($files));
     $msg = $client->msgHandle('15 UID copy 100002 test_dir2');
     $this->assertEquals('15 OK COPY completed' . Client::MSG_SEPARATOR, $msg);
     $finder = new Finder();
     $files = $finder->in($path1 . '/test_dir2')->files();
     $this->assertEquals(1, count($files));
     $msg = $client->msgHandle('15 UID copy 100003:100004 test_dir2');
     $this->assertEquals('15 OK COPY completed' . Client::MSG_SEPARATOR, $msg);
     $finder = new Finder();
     $files = $finder->in($path1 . '/test_dir2')->files();
     $this->assertEquals(3, count($files));
     $msg = $client->msgHandle('15 UID copy 1 test_dir2');
     $this->assertEquals('15 OK COPY completed' . Client::MSG_SEPARATOR, $msg);
     $msg = $client->msgHandle('15 UID copy 100001 test_dir3');
     $expect = '15 NO [TRYCREATE] Can not get folder: no subfolder named test_dir3' . Client::MSG_SEPARATOR;
     $this->assertEquals($expect, $msg);
     $server->shutdown();
     $filesystem = new Filesystem();
     $filesystem->remove($path1);
 }