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:
parent
3cb49d68d0
commit
8fa1708940
1 changed files with 25 additions and 3 deletions
|
@ -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();
|
||||||
|
|
Loading…
Reference in a new issue