1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-24 06:20:56 +01:00

Improve the PhabricatorInfrastructureTestCase unit tests

Summary:
Improve the `PhabricatorInfrastructureTestCase` unit tests such that they will fail if any of the following conditions are satisfied:

- A symbol referenced in the `__phutil_library_map__.php` file no longer exists.
- A symbol exists in the library but is not referenced within the `__phutil_library_map__.php` file.
- A symbol extends from a different parent symbol than that declared in the `__phutil_library_map.php` file.

Test Plan: See D9824.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9827
This commit is contained in:
Joshua Spence 2014-07-06 01:50:53 +10:00
parent 3cb49d68d0
commit 8fa1708940

View file

@ -1,7 +1,6 @@
<?php <?php
final class PhabricatorInfrastructureTestCase final class PhabricatorInfrastructureTestCase extends PhabricatorTestCase {
extends PhabricatorTestCase {
protected function getPhabricatorTestCaseConfiguration() { protected function getPhabricatorTestCaseConfiguration() {
return array( return array(
@ -10,7 +9,7 @@ final class PhabricatorInfrastructureTestCase
} }
/** /**
* This is more of an acceptance test case instead of a unittest. It verifies * This is more of an acceptance test case instead of a unit test. It verifies
* that all symbols can be loaded correctly. It can catch problems like * that all symbols can be loaded correctly. It can catch problems like
* missing methods in descendants of abstract base classes. * missing methods in descendants of abstract base classes.
*/ */
@ -19,6 +18,29 @@ final class PhabricatorInfrastructureTestCase
$this->assertTrue(true); $this->assertTrue(true);
} }
/**
* This is more of an acceptance test case instead of a unit test. It verifies
* that all the library map is up-to-date.
*/
public function testLibraryMap() {
$root = phutil_get_library_root('phabricator');
$new_library_map = id(new PhutilLibraryMapBuilder($root))
->setQuiet(true)
->setDryRun(true)
->buildMap();
$bootloader = PhutilBootloader::getInstance();
$old_library_map = $bootloader->getLibraryMap('phabricator');
unset($old_library_map[PhutilLibraryMapBuilder::LIBRARY_MAP_VERSION_KEY]);
$this->assertEqual(
$new_library_map,
$old_library_map,
'The library map does not appear to be up-to-date. Try '.
'rebuilding the map with `arc liberate`.');
}
public function testApplicationsInstalled() { public function testApplicationsInstalled() {
$all = PhabricatorApplication::getAllApplications(); $all = PhabricatorApplication::getAllApplications();
$installed = PhabricatorApplication::getAllInstalledApplications(); $installed = PhabricatorApplication::getAllInstalledApplications();