diff options
author | Kunal Mehta <legoktm@gmail.com> | 2014-12-08 12:08:52 -0800 |
---|---|---|
committer | BryanDavis <bdavis@wikimedia.org> | 2014-12-29 23:20:30 +0000 |
commit | ce49874d9f71962a9a026b76162b93791e94fe3c (patch) | |
tree | 5b156e2eee8ec356541bbf1793a5700e356476b8 /tests/phpunit/includes/libs/composer | |
parent | 4051e77a3e41f4323206c2c836691c71106aeacf (diff) | |
download | mediawikicore-ce49874d9f71962a9a026b76162b93791e94fe3c.tar.gz mediawikicore-ce49874d9f71962a9a026b76162b93791e94fe3c.zip |
Add checkComposerLockUpToDate.php script
Checks whether your composer.lock file is up to date
with the current composer.json file.
Bug: T77388
Change-Id: I528d63172c238cf1ea9bc02e8eb39b93225865de
Diffstat (limited to 'tests/phpunit/includes/libs/composer')
-rw-r--r-- | tests/phpunit/includes/libs/composer/ComposerJsonTest.php | 57 | ||||
-rw-r--r-- | tests/phpunit/includes/libs/composer/ComposerLockTest.php | 31 |
2 files changed, 88 insertions, 0 deletions
diff --git a/tests/phpunit/includes/libs/composer/ComposerJsonTest.php b/tests/phpunit/includes/libs/composer/ComposerJsonTest.php new file mode 100644 index 000000000000..5c5c828a0719 --- /dev/null +++ b/tests/phpunit/includes/libs/composer/ComposerJsonTest.php @@ -0,0 +1,57 @@ +<?php + +class ComposerJsonTest extends MediaWikiTestCase { + + private $json, $json2; + + public function setUp() { + parent::setUp(); + global $IP; + $this->json = "$IP/tests/phpunit/data/composer/composer.json"; + $this->json2 = "$IP/tests/phpunit/data/composer/new-composer.json"; + } + + public static function provideGetHash() { + return array( + array( 'json', 'cc6e7fc565b246cb30b0cac103a2b31e' ), + array( 'json2', '19921dd1fc457f1b00561da932432001' ), + ); + } + + /** + * @dataProvider provideGetHash + * @covers ComposerJsonParser::getHash + */ + public function testIsHashUpToDate( $file, $expected ) { + $json = new ComposerJson( $this->$file ); + $this->assertEquals( $expected, $json->getHash() ); + } + + /** + * @covers ComposerLockComparer::getRequiredDependencies + */ + public function testGetRequiredDependencies() { + $json = new ComposerJson( $this->json ); + $this->assertArrayEquals( array( + 'cdb/cdb' => '1.0.0', + 'cssjanus/cssjanus' => '1.1.1', + 'leafo/lessphp' => '0.5.0', + 'psr/log' => '1.0.0', + ), $json->getRequiredDependencies(), false, true ); + } + + public static function provideNormalizeVersion() { + return array( + array( 'v1.0.0', '1.0.0' ), + array( '0.0.5', '0.0.5' ), + ); + } + + /** + * @dataProvider provideNormalizeVersion + * @covers ComposerJsonParser::normalizeVersion + */ + public function testNormalizeVersion( $input, $expected ) { + $this->assertEquals( $expected, ComposerJson::normalizeVersion( $input ) ); + } +} diff --git a/tests/phpunit/includes/libs/composer/ComposerLockTest.php b/tests/phpunit/includes/libs/composer/ComposerLockTest.php new file mode 100644 index 000000000000..5b09cdb8804d --- /dev/null +++ b/tests/phpunit/includes/libs/composer/ComposerLockTest.php @@ -0,0 +1,31 @@ +<?php + +class ComposerLockTest extends MediaWikiTestCase { + + private $lock; + + public function setUp() { + parent::setUp(); + global $IP; + $this->lock = "$IP/tests/phpunit/data/composer/composer.lock"; + } + + public function testGetHash() { + $lock = new ComposerLock( $this->lock ); + $this->assertEquals( 'cc6e7fc565b246cb30b0cac103a2b31e', $lock->getHash() ); + } + + /** + * @covers ComposerLockParser::getInstalledDependencies + */ + public function testGetInstalledDependencies() { + $lock = new ComposerLock( $this->lock ); + $this->assertArrayEquals( array( + 'cdb/cdb' => '1.0.0', + 'cssjanus/cssjanus' => '1.1.1', + 'leafo/lessphp' => '0.5.0', + 'psr/log' => '1.0.0', + ), $lock->getInstalledDependencies(), false, true ); + } + +} |