Made the Tag::createInstance() create generic tag objects when there are uppercase letters in the tag name

(this fixes phpDocumentor/phpDocumentor2#672).
This commit is contained in:
Vasil Rangelov
2012-11-10 14:00:01 +02:00
parent 19a9124274
commit ca90350e36
2 changed files with 42 additions and 2 deletions
@@ -64,7 +64,7 @@ DOCBLOCK;
$this->assertTrue($object->hasTag('link'));
$this->assertFalse($object->hasTag('category'));
}
/**
* @expectedException \InvalidArgumentException
*/
@@ -93,6 +93,45 @@ DOCBLOCK;
);
}
public function testTagCaseSensitivity()
{
$fixture = <<<DOCBLOCK
/**
* This is a short description.
*
* This is a long description.
*
* @method null something()
* @Method({"GET", "POST"})
*/
DOCBLOCK;
$object = new DocBlock($fixture);
$this->assertEquals(
'This is a short description.',
$object->getShortDescription()
);
$this->assertEquals(
'This is a long description.',
$object->getLongDescription()->getContents()
);
$tags = $object->getTags();
$this->assertEquals(2, count($tags));
$this->assertTrue($object->hasTag('method'));
$this->assertTrue($object->hasTag('Method'));
$this->assertInstanceOf(
__NAMESPACE__ . '\DocBlock\Tag\MethodTag',
$tags[0]
);
$this->assertInstanceOf(
__NAMESPACE__ . '\DocBlock\Tag',
$tags[1]
);
$this->assertNotInstanceOf(
__NAMESPACE__ . '\DocBlock\Tag\MethodTag',
$tags[1]
);
}
/**
* Tests whether a type is expanded with the given namespace and that a
* keyword is not expanded.