/**
  * Tests PFXUtils::guessEncoding().
  */
 public function testGuessEncoding()
 {
     $content = 'The ɋuick brőwn fox jumped ōver the lazy dog.';
     $file = self::_createTempFile(null, $content);
     $fh = fopen($file, 'r');
     $this->assertEquals('UTF-8', PFXUtils::guessEncoding($fh));
     $this->assertEquals($content, fread($fh, strlen($content)));
     fclose($fh);
     // Now try an explicit UTF-8 BOM
     $file = self::_createTempFile(null, "" . $content);
     $fh = fopen($file, 'r');
     $this->assertEquals('UTF-8', PFXUtils::guessEncoding($fh));
     $this->assertEquals($content, fread($fh, strlen($content)));
     fclose($fh);
     // UTF-16BE
     $file = self::_createTempFile(null, "��" . $content);
     $fh = fopen($file, 'r');
     $this->assertEquals('UTF-16BE', PFXUtils::guessEncoding($fh));
     $this->assertEquals($content, fread($fh, strlen($content)));
     /* Even though we just advanced the pointer, we should still get the
        same result if we do the same tests again, because the method will
        rewind it for us. */
     $this->assertEquals('UTF-16BE', PFXUtils::guessEncoding($fh));
     $this->assertEquals($content, fread($fh, strlen($content)));
     fclose($fh);
     // UTF-16LE
     $file = self::_createTempFile(null, "��" . $content);
     $fh = fopen($file, 'r');
     $this->assertEquals('UTF-16LE', PFXUtils::guessEncoding($fh));
     $this->assertEquals($content, fread($fh, strlen($content)));
     $this->assertEquals('UTF-16LE', PFXUtils::guessEncoding($fh));
     $this->assertEquals($content, fread($fh, strlen($content)));
     fclose($fh);
     // UTF-32BE
     $file = self::_createTempFile(null, "��" . $content);
     $fh = fopen($file, 'r');
     $this->assertEquals('UTF-32BE', PFXUtils::guessEncoding($fh));
     $this->assertEquals($content, fread($fh, strlen($content)));
     $this->assertEquals('UTF-32BE', PFXUtils::guessEncoding($fh));
     $this->assertEquals($content, fread($fh, strlen($content)));
     fclose($fh);
     // UTF-32LE
     $file = self::_createTempFile(null, "��" . $content);
     $fh = fopen($file, 'r');
     $this->assertEquals('UTF-32LE', PFXUtils::guessEncoding($fh));
     $this->assertEquals($content, fread($fh, strlen($content)));
     $this->assertEquals('UTF-32LE', PFXUtils::guessEncoding($fh));
     $this->assertEquals($content, fread($fh, strlen($content)));
     fclose($fh);
 }