public function testWithSlightlyInvalidMediaTypeString()
 {
     $mediaType = new InternetMediaType();
     $mediaType->setType('text');
     $mediaType->setSubtype('javascript');
     $parameter1 = new Parameter();
     $parameter1->setAttribute('UTF-8');
     $mediaType->addParameter($parameter1);
     $parameter2 = new Parameter();
     $parameter2->setAttribute('charset');
     $parameter2->setValue('UTF-8');
     $mediaType->addParameter($parameter1);
     $mediaType->addParameter($parameter2);
     $this->assertEquals('text/javascript', $mediaType->getTypeSubtypeString());
     $this->assertEquals('text/javascript; utf-8; charset=UTF-8', (string) $mediaType);
 }
 /**
  *
  * @param string $internetMediaTypeString
  * @return \webignition\InternetMediaType\InternetMediaType
  */
 public function parse($internetMediaTypeString)
 {
     $inputString = trim($internetMediaTypeString);
     $internetMediaType = new InternetMediaType();
     $internetMediaType->setType($this->getTypeParser()->parse($inputString));
     $internetMediaType->setSubtype($this->getSubypeParser()->parse($inputString));
     $parameterString = $this->getParameterString($inputString, $internetMediaType->getType(), $internetMediaType->getSubtype());
     $parameterStrings = $this->getParameterStrings($parameterString);
     $parameters = $this->getParameters($parameterStrings);
     foreach ($parameters as $parameter) {
         $internetMediaType->addParameter($parameter);
     }
     return $internetMediaType;
 }