/**
  *
  * @param string $parameterString
  * @return \webignition\InternetMediaType\Parameter 
  */
 public function parse($parameterString)
 {
     $inputString = trim($parameterString);
     $attribute = $this->getAttributeParser()->parse($inputString);
     if ($attribute == '') {
         return new Parameter();
     }
     $value = $this->getValueParser($attribute)->parse($parameterString);
     $parameter = new Parameter();
     $parameter->setAttribute($attribute);
     $parameter->setValue($value);
     return $parameter;
 }
 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 Parameter $parameter
  * @return InternetMediaType
  */
 public function removeParameter(Parameter $parameter)
 {
     if ($this->hasParameter($parameter->getAttribute())) {
         unset($this->parameters[$parameter->getAttribute()]);
     }
     return $this;
 }