Skip to content
Extraits de code Groupes Projets
DocumentationGeneratorTest.php 2,49 ko
Newer Older
  • Learn to ignore specific revisions
  • d-skora's avatar
    d-skora a validé
    <?php
    /**
    
     * Piwik - free/libre analytics platform
    
    d-skora's avatar
    d-skora a validé
     *
    
     * @link http://piwik.org
     * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
    
    d-skora's avatar
    d-skora a validé
     */
    
    
    namespace Piwik\Tests\Integration;
    
    use PHPUnit_Framework_TestCase;
    
    d-skora's avatar
    d-skora a validé
    use Piwik\API\DocumentationGenerator;
    use Piwik\API\Proxy;
    use Piwik\EventDispatcher;
    
    d-skora's avatar
    d-skora a validé
    
    
    d-skora's avatar
    d-skora a validé
    /**
    
    d-skora's avatar
    d-skora a validé
     * @group Core
    
    d-skora's avatar
    d-skora a validé
     */
    class DocumentationGeneratorTest extends PHPUnit_Framework_TestCase
    {
    
    mattab's avatar
    mattab a validé
        public function test_CheckIfModule_ContainsHideAnnotation()
    
    d-skora's avatar
    d-skora a validé
        {
    
            $annotation = '@hideExceptForSuperUser test test';
    
    d-skora's avatar
    d-skora a validé
            $mock = $this->getMockBuilder('ReflectionClass')
                ->disableOriginalConstructor()
                ->setMethods(array('getDocComment'))
                ->getMock();
            $mock->expects($this->once())->method('getDocComment')->willReturn($annotation);
            $documentationGenerator = new DocumentationGenerator();
            $this->assertTrue($documentationGenerator->checkIfClassCommentContainsHideAnnotation($mock));
        }
    
    mattab's avatar
    mattab a validé
        public function test_CheckDocumentation()
    
    d-skora's avatar
    d-skora a validé
        {
    
            $moduleToCheck = 'this is documentation which contains @hideExceptForSuperUser';
    
    d-skora's avatar
    d-skora a validé
            $documentationAfterCheck = 'this is documentation which contains ';
            $documentationGenerator = new DocumentationGenerator();
            $this->assertEquals($documentationGenerator->checkDocumentation($moduleToCheck), $documentationAfterCheck);
        }
    
    mattab's avatar
    mattab a validé
        public function test_CheckIfMethodComment_ContainsHideAnnotation_andText()
    
    d-skora's avatar
    d-skora a validé
        {
    
            $annotation = '@hideForAll test test';
    
    mattab's avatar
    mattab a validé
            EventDispatcher::getInstance()->addObserver('API.DocumentationGenerator.@hideForAll',
                function (&$hide) {
                    $hide = true;
    
    d-skora's avatar
    d-skora a validé
                });
    
    mattab's avatar
    mattab a validé
            $this->assertEquals(Proxy::getInstance()->shouldHideAPIMethod($annotation), true);
        }
    
        public function test_CheckIfMethodComment_ContainsHideAnnotation_only()
        {
            $annotation = '@hideForAll';
            EventDispatcher::getInstance()->addObserver('API.DocumentationGenerator.@hideForAll',
                function (&$hide) {
                    $hide = true;
                });
            $this->assertEquals(Proxy::getInstance()->shouldHideAPIMethod($annotation), true);
        }
    
        public function test_CheckIfMethodComment_DoesNotContainHideAnnotation()
        {
            $annotation = '@not found here';
            EventDispatcher::getInstance()->addObserver('API.DocumentationGenerator.@hello',
                function (&$hide) {
                    $hide = true;
                });
            $this->assertEquals(Proxy::getInstance()->shouldHideAPIMethod($annotation), false);
    
    d-skora's avatar
    d-skora a validé
        }
    }