| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 | 
							- <?php
 - 
 - require_once 'Swift/Tests/SwiftUnitTestCase.php';
 - require_once 'Swift/Mime/ContentEncoder/PlainContentEncoder.php';
 - require_once 'Swift/InputByteStream.php';
 - require_once 'Swift/OutputByteStream.php';
 - 
 - class Swift_StreamCollector implements Yay_Action {
 -   public $content = '';
 -   public function &invoke(Yay_Invocation $inv) {
 -     $args = $inv->getArguments();
 -     $this->content .= current($args);
 -   }
 -   public function describeTo(Yay_Description $description) {
 -     $description->appendText(' gathers input;');
 -   }
 - }
 - 
 - class Swift_Mime_ContentEncoder_PlainContentEncoderTest
 -   extends Swift_Tests_SwiftUnitTestCase
 - {
 -   
 -   public function testNameCanBeSpecifiedInConstructor()
 -   {
 -     $encoder = $this->_getEncoder('7bit');
 -     $this->assertEqual('7bit', $encoder->getName());
 -     
 -     $encoder = $this->_getEncoder('8bit');
 -     $this->assertEqual('8bit', $encoder->getName());
 -   }
 -   
 -   public function testNoOctetsAreModifiedInString()
 -   {
 -     $encoder = $this->_getEncoder('7bit');
 -     foreach (range(0x00, 0xFF) as $octet)
 -     {
 -       $byte = pack('C', $octet);
 -       $this->assertIdenticalBinary($byte, $encoder->encodeString($byte));
 -     }
 -   }
 -   
 -   public function testNoOctetsAreModifiedInByteStream()
 -   {
 -     $encoder = $this->_getEncoder('7bit');
 -     foreach (range(0x00, 0xFF) as $octet)
 -     {
 -       $byte = pack('C', $octet);
 -       
 -       $os = $this->_createOutputByteStream();
 -       $is = $this->_createInputByteStream();
 -       $collection = new Swift_StreamCollector();
 - 
 -       $this->_checking(Expectations::create()
 -         -> allowing($is)->write(any(), optional()) -> will($collection)
 -         -> ignoring($is)
 -         
 -         -> one($os)->read(optional()) -> returns($byte)
 -         -> allowing($os)->read(optional()) -> returns(false)
 -         
 -         -> ignoring($os)
 -         );
 -       
 -       $encoder->encodeByteStream($os, $is);
 -       $this->assertIdenticalBinary($byte, $collection->content);
 -     }
 -   }
 -   
 -   public function testLineLengthCanBeSpecified()
 -   {
 -     $encoder = $this->_getEncoder('7bit');
 -     
 -     $chars = array();
 -     for ($i = 0; $i < 50; $i++)
 -     {
 -       $chars[] = 'a';
 -     }
 -     $input = implode(' ', $chars); //99 chars long
 -     
 -     $this->assertEqual(
 -       'a a a a a a a a a a a a a a a a a a a a a a a a a ' . "\r\n" . //50 *
 -       'a a a a a a a a a a a a a a a a a a a a a a a a a',            //99
 -       $encoder->encodeString($input, 0, 50),
 -       '%s: Lines should be wrapped at 50 chars'
 -       );
 -   }
 -   
 -   public function testLineLengthCanBeSpecifiedInByteStream()
 -   {
 -     $encoder = $this->_getEncoder('7bit');
 -     
 -     $os = $this->_createOutputByteStream();
 -     $is = $this->_createInputByteStream();
 -     $collection = new Swift_StreamCollector();
 -     
 -     $this->_checking(Expectations::create()
 -       -> allowing($is)->write(any(), optional()) -> will($collection)
 -       -> ignoring($is)
 -       );
 -     
 -     for ($i = 0; $i < 50; $i++)
 -     {
 -       $this->_checking(Expectations::create()
 -         -> one($os)->read(optional()) -> returns('a ')
 -         );
 -     }
 -     
 -     $this->_checking(Expectations::create()
 -       -> allowing($os)->read(optional()) -> returns(false)
 -       );
 -     
 -     $encoder->encodeByteStream($os, $is, 0, 50);
 -     $this->assertEqual(
 -       str_repeat('a ', 25) . "\r\n" . str_repeat('a ', 25),
 -       $collection->content
 -       );
 -   }
 -   
 -   public function testencodeStringGeneratesCorrectCrlf()
 -   {
 -     $encoder = $this->_getEncoder('7bit', true);
 -     $this->assertEqual("a\r\nb", $encoder->encodeString("a\rb"),
 -       '%s: Line endings should be standardized'
 -       );
 -     $this->assertEqual("a\r\nb", $encoder->encodeString("a\nb"),
 -       '%s: Line endings should be standardized'
 -       );
 -     $this->assertEqual("a\r\n\r\nb", $encoder->encodeString("a\n\rb"),
 -       '%s: Line endings should be standardized'
 -       );
 -     $this->assertEqual("a\r\n\r\nb", $encoder->encodeString("a\r\rb"),
 -       '%s: Line endings should be standardized'
 -       );
 -     $this->assertEqual("a\r\n\r\nb", $encoder->encodeString("a\n\nb"),
 -       '%s: Line endings should be standardized'
 -       );
 -   }
 -   
 -   public function testCanonicEncodeByteStreamGeneratesCorrectCrlf_1()
 -   {
 -     $encoder = $this->_getEncoder('7bit', true);
 -     
 -     $os = $this->_createOutputByteStream();
 -     $is = $this->_createInputByteStream();
 -     $collection = new Swift_StreamCollector();
 - 
 -     $this->_checking(Expectations::create()
 -       -> allowing($is)->write(any(), optional()) -> will($collection)
 -       -> ignoring($is)
 -       
 -       -> one($os)->read(optional()) -> returns('a')
 -       -> one($os)->read(optional()) -> returns("\r")
 -       -> one($os)->read(optional()) -> returns('b')
 -       -> allowing($os)->read(optional()) -> returns(false)
 -       
 -       -> ignoring($os)
 -       );
 -     
 -     $encoder->encodeByteStream($os, $is);
 -     $this->assertEqual("a\r\nb", $collection->content);
 -   }
 -   
 -   public function testCanonicEncodeByteStreamGeneratesCorrectCrlf_2()
 -   {
 -     $encoder = $this->_getEncoder('7bit', true);
 -     
 -     $os = $this->_createOutputByteStream();
 -     $is = $this->_createInputByteStream();
 -     $collection = new Swift_StreamCollector();
 - 
 -     $this->_checking(Expectations::create()
 -       -> allowing($is)->write(any(), optional()) -> will($collection)
 -       -> ignoring($is)
 -       
 -       -> one($os)->read(optional()) -> returns('a')
 -       -> one($os)->read(optional()) -> returns("\n")
 -       -> one($os)->read(optional()) -> returns('b')
 -       -> allowing($os)->read(optional()) -> returns(false)
 -       
 -       -> ignoring($os)
 -       );
 -     
 -     $encoder->encodeByteStream($os, $is);
 -     $this->assertEqual("a\r\nb", $collection->content);
 -   }
 -   
 -   public function testCanonicEncodeByteStreamGeneratesCorrectCrlf_3()
 -   {
 -     $encoder = $this->_getEncoder('7bit', true);
 -     
 -     $os = $this->_createOutputByteStream();
 -     $is = $this->_createInputByteStream();
 -     $collection = new Swift_StreamCollector();
 - 
 -     $this->_checking(Expectations::create()
 -       -> allowing($is)->write(any(), optional()) -> will($collection)
 -       -> ignoring($is)
 -       
 -       -> one($os)->read(optional()) -> returns('a')
 -       -> one($os)->read(optional()) -> returns("\n\r")
 -       -> one($os)->read(optional()) -> returns('b')
 -       -> allowing($os)->read(optional()) -> returns(false)
 -       
 -       -> ignoring($os)
 -       );
 -     
 -     $encoder->encodeByteStream($os, $is);
 -     $this->assertEqual("a\r\n\r\nb", $collection->content);
 -   }
 -   
 -   public function testCanonicEncodeByteStreamGeneratesCorrectCrlf_4()
 -   {
 -     $encoder = $this->_getEncoder('7bit', true);
 -     
 -     $os = $this->_createOutputByteStream();
 -     $is = $this->_createInputByteStream();
 -     $collection = new Swift_StreamCollector();
 - 
 -     $this->_checking(Expectations::create()
 -       -> allowing($is)->write(any(), optional()) -> will($collection)
 -       -> ignoring($is)
 -       
 -       -> one($os)->read(optional()) -> returns('a')
 -       -> one($os)->read(optional()) -> returns("\n\n")
 -       -> one($os)->read(optional()) -> returns('b')
 -       -> allowing($os)->read(optional()) -> returns(false)
 -       
 -       -> ignoring($os)
 -       );
 -     
 -     $encoder->encodeByteStream($os, $is);
 -     $this->assertEqual("a\r\n\r\nb", $collection->content);
 -   }
 -   
 -   public function testCanonicEncodeByteStreamGeneratesCorrectCrlf_5()
 -   {
 -     $encoder = $this->_getEncoder('7bit', true);
 -     
 -     $os = $this->_createOutputByteStream();
 -     $is = $this->_createInputByteStream();
 -     $collection = new Swift_StreamCollector();
 - 
 -     $this->_checking(Expectations::create()
 -       -> allowing($is)->write(any(), optional()) -> will($collection)
 -       -> ignoring($is)
 -       
 -       -> one($os)->read(optional()) -> returns('a')
 -       -> one($os)->read(optional()) -> returns("\r\r")
 -       -> one($os)->read(optional()) -> returns('b')
 -       -> allowing($os)->read(optional()) -> returns(false)
 -       
 -       -> ignoring($os)
 -       );
 -     
 -     $encoder->encodeByteStream($os, $is);
 -     $this->assertEqual("a\r\n\r\nb", $collection->content);
 -   }
 -   
 -   // -- Private helpers
 -   
 -   private function _getEncoder($name, $canonical = false)
 -   {
 -     return new Swift_Mime_ContentEncoder_PlainContentEncoder($name, $canonical);
 -   }
 -   
 -   private function _createOutputByteStream($stub = false)
 -   {
 -     return $stub
 -       ? $this->_stub('Swift_OutputByteStream')
 -       : $this->_mock('Swift_OutputByteStream')
 -       ;
 -   }
 -   
 -   private function _createInputByteStream($stub = false)
 -   {
 -     return $stub
 -       ? $this->_stub('Swift_InputByteStream')
 -       : $this->_mock('Swift_InputByteStream')
 -       ;
 -   }
 -   
 - }
 
 
  |