getEmailBodies(); foreach ($bodies as $body) { $parser = new PhabricatorMetaMTAEmailBodyParser(); $stripped = $parser->stripTextBody($body); $this->assertEqual('OKAY', $stripped); } } public function testEmailBodyCommandParsing() { $bodies = $this->getEmailBodiesWithFullCommands(); foreach ($bodies as $body) { $parser = new PhabricatorMetaMTAEmailBodyParser(); $body_data = $parser->parseBody($body); $this->assertEqual('OKAY', $body_data['body']); $this->assertEqual('whatevs', $body_data['command']); $this->assertEqual('dude', $body_data['command_value']); } $bodies = $this->getEmailBodiesWithPartialCommands(); foreach ($bodies as $body) { $parser = new PhabricatorMetaMTAEmailBodyParser(); $body_data = $parser->parseBody($body); $this->assertEqual('OKAY', $body_data['body']); $this->assertEqual('whatevs', $body_data['command']); $this->assertEqual(null, $body_data['command_value']); } } public function testFalsePositiveForOnWrote() { $body = << Hey bro do you want to go ride horses tomorrow? EOEMAIL; $parser = new PhabricatorMetaMTAEmailBodyParser(); $stripped = $parser->stripTextBody($body); $this->assertEqual('On which horse shall you ride?', $stripped); } private function getEmailBodiesWithFullCommands() { $bodies = $this->getEmailBodies(); $with_commands = array(); foreach ($bodies as $body) { $with_commands[] = "!whatevs dude\n".$body; } return $with_commands; } private function getEmailBodiesWithPartialCommands() { $bodies = $this->getEmailBodies(); $with_commands = array(); foreach ($bodies as $body) { $with_commands[] = "!whatevs\n".$body; } return $with_commands; } private function getEmailBodies() { $trailing_space = ' '; $emdash = "\xE2\x80\x94"; return array( << ... EOEMAIL , << wrote: > ... EOEMAIL , << wrote: > ... EOEMAIL , << ... EOEMAIL , << ... EOEMAIL , << ... EOEMAIL , << ... EOEMAIL , << To: Subject: Some Text Date: Mon, Apr 2, 2012 1:42 pm > ... EOEMAIL , << Subject: Core World Tariffs EOMAIL , << On 17 Oct 2013, at 17:47, "Someone" wrote: > ... EOMAIL , << -----Original Message----- > > ... EOMAIL , <<