From 8fa1708940c69132b252de9cd2d67e219e23d5ec Mon Sep 17 00:00:00 2001 From: Joshua Spence Date: Sun, 6 Jul 2014 01:50:53 +1000 Subject: [PATCH] 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 --- .../PhabricatorInfrastructureTestCase.php | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/__tests__/PhabricatorInfrastructureTestCase.php b/src/__tests__/PhabricatorInfrastructureTestCase.php index fba21b7d5d..de3fc51f58 100644 --- a/src/__tests__/PhabricatorInfrastructureTestCase.php +++ b/src/__tests__/PhabricatorInfrastructureTestCase.php @@ -1,7 +1,6 @@ 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() { $all = PhabricatorApplication::getAllApplications(); $installed = PhabricatorApplication::getAllInstalledApplications();