1
0
Fork 0

[Archiver] Rules in GitExcludeFilter are too broad

pull/2649/head
Zbigniew 2014-01-30 23:34:28 +00:00
parent 0238aaf5ac
commit a4a9d0f0e4
2 changed files with 37 additions and 1 deletions

View File

@ -140,7 +140,7 @@ abstract class BaseExcludeFilter
$pattern .= '/'; $pattern .= '/';
} }
$pattern .= substr(Finder\Glob::toRegex($rule), 2, -2); $pattern .= substr(Finder\Glob::toRegex($rule), 2, -1);
return array($pattern . '#', $negate, false); return array($pattern . '#', $negate, false);
} }

View File

@ -0,0 +1,36 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Test\Package\Archiver;
use Composer\Package\Archiver\GitExcludeFilter;
class GitExcludeFilterTest extends \PHPUnit_Framework_TestCase
{
/**
* @dataProvider patterns
*/
public function testPatternEscape($ignore, $expected)
{
$filter = new GitExcludeFilter('/');
$this->assertEquals($expected, $filter->parseGitIgnoreLine($ignore));
}
public function patterns()
{
return array(
array('app/config/parameters.yml', array('#(?=[^\.])app/(?=[^\.])config/(?=[^\.])parameters\.yml$#', false, false)),
array('!app/config/parameters.yml', array('#(?=[^\.])app/(?=[^\.])config/(?=[^\.])parameters\.yml$#', true, false)),
);
}
}