예제 #1
0
파일: ClientTest.php 프로젝트: thefox/imapd
 public function testCreateSequenceSet1()
 {
     $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);
     #fwrite(STDOUT, 'maildir: '.$path1.' '.(int)file_exists($path1)."\n");
     $client = new Client();
     $client->setServer($server);
     $client->setId(1);
     $client->setStatus('hasAuth', true);
     $server->addFolder('test_dir1');
     $client->msgHandle('6 select test_dir1');
     #fwrite(STDOUT, 'add mail1'."\n");
     $message = new Message();
     $message->addFrom('*****@*****.**');
     $message->addTo('*****@*****.**');
     $message->setSubject('my_subject 1');
     $message->setBody('my_body');
     $server->addMail($message, 'test_dir1');
     #fwrite(STDOUT, 'add mail2'."\n");
     $message = new Message();
     $message->addFrom('*****@*****.**');
     $message->addTo('*****@*****.**');
     $message->setSubject('my_subject 2');
     $message->setBody('my_body');
     $server->addMail($message, 'test_dir1');
     #fwrite(STDOUT, 'add mail3'."\n");
     $message = new Message();
     $message->addFrom('*****@*****.**');
     $message->addTo('*****@*****.**');
     $message->setSubject('my_subject 3');
     $message->setBody('my_body');
     $server->addMail($message, 'test_dir1');
     #fwrite(STDOUT, 'add mail4'."\n");
     $message = new Message();
     $message->addFrom('*****@*****.**');
     $message->addTo('*****@*****.**');
     $message->setSubject('my_subject 4');
     $message->setBody('my_body');
     $server->addMail($message, 'test_dir1');
     #fwrite(STDOUT, 'add mail5'."\n");
     $message = new Message();
     $message->addFrom('*****@*****.**');
     $message->addTo('*****@*****.**');
     $message->setSubject('my_subject 5');
     $message->setBody('my_body');
     $server->addMail($message, 'test_dir1');
     #fwrite(STDOUT, 'add mail6'."\n");
     $message = new Message();
     $message->addFrom('*****@*****.**');
     $message->addTo('*****@*****.**');
     $message->setSubject('my_subject 6');
     $message->setBody('my_body');
     $server->addMail($message, 'test_dir1');
     /*fwrite(STDOUT, 'find files'."\n");
     		$finder = new Finder();
     		$files = $finder->in($path1)->files()->name('*')->sortByName();
     		foreach($files as $fileId => $file){
     			fwrite(STDOUT, 'file: '.$file->getBasename()."\n");
     		}*/
     $seq = $client->createSequenceSet('0', false);
     $this->assertEquals(array(), $seq);
     $seq = $client->createSequenceSet('1', false);
     $this->assertEquals(array(1), $seq);
     $seq = $client->createSequenceSet('3', false);
     $this->assertEquals(array(3), $seq);
     $seq = $client->createSequenceSet('3,5', false);
     $this->assertEquals(array(3, 5), $seq);
     $seq = $client->createSequenceSet('3,5,6,4', false);
     $this->assertEquals(array(3, 4, 5, 6), $seq);
     $seq = $client->createSequenceSet('3, 5', false);
     $this->assertEquals(array(3, 5), $seq);
     $seq = $client->createSequenceSet('3:3', false);
     $this->assertEquals(array(3), $seq);
     $seq = $client->createSequenceSet('3:4', false);
     $this->assertEquals(array(3, 4), $seq);
     $seq = $client->createSequenceSet('3:5', false);
     $this->assertEquals(array(3, 4, 5), $seq);
     $seq = $client->createSequenceSet('5:3', false);
     $this->assertEquals(array(3, 4, 5), $seq);
     $seq = $client->createSequenceSet('3:5,2', false);
     $this->assertEquals(array(2, 3, 4, 5), $seq);
     $seq = $client->createSequenceSet('*', false);
     $this->assertEquals(array(1, 2, 3, 4, 5, 6), $seq);
     $seq = $client->createSequenceSet('3:*', false);
     $this->assertEquals(array(3, 4, 5, 6), $seq);
     $seq = $client->createSequenceSet('3:*,2', false);
     $this->assertEquals(array(2, 3, 4, 5, 6), $seq);
     $seq = $client->createSequenceSet('7', false);
     $this->assertEquals(array(), $seq);
     $seq = $client->createSequenceSet('8:9', false);
     $this->assertEquals(array(), $seq);
     $seq = $client->createSequenceSet('100001', true);
     $this->assertEquals(array(1), $seq);
     $seq = $client->createSequenceSet('100002', true);
     $this->assertEquals(array(2), $seq);
     $seq = $client->createSequenceSet('100002,100004', true);
     $this->assertEquals(array(2, 4), $seq);
     $seq = $client->createSequenceSet('100002, 100004', true);
     $this->assertEquals(array(2, 4), $seq);
     $seq = $client->createSequenceSet('100002,100005,100004,100003', true);
     $this->assertEquals(array(2, 3, 4, 5), $seq);
     $seq = $client->createSequenceSet('100002:100002', true);
     $this->assertEquals(array(2), $seq);
     $seq = $client->createSequenceSet('100002:100003', true);
     $this->assertEquals(array(2, 3), $seq);
     $seq = $client->createSequenceSet('100002:100004', true);
     $this->assertEquals(array(2, 3, 4), $seq);
     $seq = $client->createSequenceSet('100004:100002', true);
     $this->assertEquals(array(2, 3, 4), $seq);
     $seq = $client->createSequenceSet('100002:100004,100005', true);
     $this->assertEquals(array(2, 3, 4, 5), $seq);
     $seq = $client->createSequenceSet('*', true);
     $this->assertEquals(array(1, 2, 3, 4, 5, 6), $seq);
     $seq = $client->createSequenceSet('100002:*', true);
     $this->assertEquals(array(2, 3, 4, 5, 6), $seq);
     $seq = $client->createSequenceSet('100002:*,100001', true);
     $this->assertEquals(array(1, 2, 3, 4, 5, 6), $seq);
     $seq = $client->createSequenceSet('100007', true);
     $this->assertEquals(array(), $seq);
     $seq = $client->createSequenceSet('100007:100009', true);
     $this->assertEquals(array(), $seq);
     $seq = $client->createSequenceSet('999999:*', true);
     $this->assertEquals(array(6), $seq);
     $server->shutdown();
     $filesystem = new Filesystem();
     $filesystem->remove($storage1->getPath());
 }