Page MenuHomePhabricator

D11231.id26972.diff
No OneTemporary

D11231.id26972.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -209,6 +209,7 @@
'PhutilLexerSyntaxHighlighter' => 'markup/syntax/highlighter/PhutilLexerSyntaxHighlighter.php',
'PhutilLibraryConflictException' => 'moduleutils/PhutilLibraryConflictException.php',
'PhutilLibraryMapBuilder' => 'moduleutils/PhutilLibraryMapBuilder.php',
+ 'PhutilLibraryTestCase' => '__tests__/PhutilLibraryTestCase.php',
'PhutilLipsumContextFreeGrammar' => 'grammar/PhutilLipsumContextFreeGrammar.php',
'PhutilLock' => 'filesystem/PhutilLock.php',
'PhutilLockException' => 'filesystem/PhutilLockException.php',
@@ -605,7 +606,7 @@
'PhutilIPAddress' => 'Phobject',
'PhutilIPAddressTestCase' => 'PhutilTestCase',
'PhutilInRequestKeyValueCache' => 'PhutilKeyValueCache',
- 'PhutilInfrastructureTestCase' => 'PhutilTestCase',
+ 'PhutilInfrastructureTestCase' => 'PhutilLibraryTestCase',
'PhutilInvalidRuleParserGeneratorException' => 'PhutilParserGeneratorException',
'PhutilIrreducibleRuleParserGeneratorException' => 'PhutilParserGeneratorException',
'PhutilJIRAAuthAdapter' => 'PhutilOAuth1AuthAdapter',
@@ -624,6 +625,7 @@
'PhutilLanguageGuesserTestCase' => 'PhutilTestCase',
'PhutilLexerSyntaxHighlighter' => 'PhutilSyntaxHighlighter',
'PhutilLibraryConflictException' => 'Exception',
+ 'PhutilLibraryTestCase' => 'PhutilTestCase',
'PhutilLipsumContextFreeGrammar' => 'PhutilContextFreeGrammar',
'PhutilLockException' => 'Exception',
'PhutilLogFileChannel' => 'PhutilChannelChannel',
diff --git a/src/__tests__/PhutilInfrastructureTestCase.php b/src/__tests__/PhutilInfrastructureTestCase.php
--- a/src/__tests__/PhutilInfrastructureTestCase.php
+++ b/src/__tests__/PhutilInfrastructureTestCase.php
@@ -1,37 +1,3 @@
<?php
-final class PhutilInfrastructureTestCase extends PhutilTestCase {
-
- /**
- * 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
- * missing methods in descendants of abstract base classes.
- */
- public function testEverythingImplemented() {
- id(new PhutilSymbolLoader())->selectAndLoadSymbols();
- $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() {
- $library = phutil_get_current_library_name();
- $root = phutil_get_library_root($library);
-
- $new_library_map = id(new PhutilLibraryMapBuilder($root))
- ->buildMap();
-
- $bootloader = PhutilBootloader::getInstance();
- $old_library_map = $bootloader->getLibraryMapWithoutExtensions($library);
- 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`.');
- }
-
-}
+final class PhutilInfrastructureTestCase extends PhutilLibraryTestCase {}
diff --git a/src/__tests__/PhutilInfrastructureTestCase.php b/src/__tests__/PhutilLibraryTestCase.php
copy from src/__tests__/PhutilInfrastructureTestCase.php
copy to src/__tests__/PhutilLibraryTestCase.php
--- a/src/__tests__/PhutilInfrastructureTestCase.php
+++ b/src/__tests__/PhutilLibraryTestCase.php
@@ -1,6 +1,6 @@
<?php
-final class PhutilInfrastructureTestCase extends PhutilTestCase {
+abstract class PhutilLibraryTestCase extends PhutilTestCase {
/**
* This is more of an acceptance test case instead of a unit test. It verifies
@@ -17,8 +17,8 @@
* that all the library map is up-to-date.
*/
public function testLibraryMap() {
- $library = phutil_get_current_library_name();
- $root = phutil_get_library_root($library);
+ $root = $this->getLibraryRoot();
+ $library = phutil_get_library_name_for_root($root);
$new_library_map = id(new PhutilLibraryMapBuilder($root))
->buildMap();
@@ -30,8 +30,18 @@
$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`.');
+ pht(
+ 'The library map does not appear to be up-to-date. Try '.
+ 'rebuilding the map with `%s`.',
+ 'arc liberate'));
+ }
+
+ /**
+ * Get the root directory for the library currently being tested.
+ */
+ protected function getLibraryRoot() {
+ $caller = idx(debug_backtrace(), 2);
+ return phutil_get_library_root_for_path($caller['file']);
}
}

File Metadata

Mime Type
text/plain
Expires
Wed, May 8, 8:05 PM (2 w, 19 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6272772
Default Alt Text
D11231.id26972.diff (4 KB)

Event Timeline