public function itDoesNotCreateArtifactInTokenMode()
 {
     stub($this->tracker_plugin_conf)->isTokenBasedEmailgatewayEnabled()->returns(true);
     stub($this->tracker)->isEmailgatewayEnabled()->returns(true);
     $tracker_artifactbyemailstatus = new Tracker_ArtifactByEmailStatus($this->tracker_plugin_conf);
     $this->assertFalse($tracker_artifactbyemailstatus->canCreateArtifact($this->tracker));
 }
 public function itOnlyAcceptsArtifactByEmailUpdateForTokenMail()
 {
     $this->tracker_plugin_conf->setReturnValue('isTokenBasedEmailgatewayEnabled', true);
     $this->tracker->setReturnValue('isEmailgatewayEnabled', true);
     $tracker_artifactbyemailstatus = new Tracker_ArtifactByEmailStatus($this->tracker, $this->tracker_plugin_conf);
     $this->assertFalse($tracker_artifactbyemailstatus->canCreateArtifact());
     $this->assertTrue($tracker_artifactbyemailstatus->canUpdateArtifact());
 }
Esempio n. 3
0
 public function process($raw_mail)
 {
     $raw_mail_parsed = $this->parser->parse($raw_mail);
     try {
         $incoming_message = $this->incoming_message_factory->build($raw_mail_parsed);
         $body = $this->citation_stripper->stripText($incoming_message->getBody());
         $tracker_artifactbyemail = new Tracker_ArtifactByEmailStatus($incoming_message->getTracker(), $this->tracker_plugin_config);
         if ($tracker_artifactbyemail->canCreateArtifact() || $tracker_artifactbyemail->canUpdateArtifact()) {
             $this->createChangeset($incoming_message, $body, $raw_mail);
         } else {
             $this->logger->info('An artifact for the tracker #' . $incoming_message->getTracker()->getId() . ' has been received but this tracker does not allow create/reply by mail or' . ' his configuration is not compatible with this feature');
             $this->notifier->sendErrorMailTrackerGeneric($raw_mail_parsed);
         }
     } catch (Tracker_Artifact_MailGateway_MultipleUsersExistException $e) {
         $this->logger->debug('Multiple users match with ' . $raw_mail_parsed['headers']['from']);
         $this->notifier->sendErrorMailMultipleUsers($raw_mail_parsed);
     } catch (Tracker_Artifact_MailGateway_RecipientUserDoesNotExistException $e) {
         $this->logger->debug('No user match with ' . $raw_mail_parsed['headers']['from']);
         $this->notifier->sendErrorMailNoUserMatch($raw_mail_parsed);
     } catch (Tracker_Exception $e) {
         $this->logger->error($e->getMessage());
         $this->notifier->sendErrorMailTrackerGeneric($raw_mail_parsed);
     }
 }