1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-18 11:30:55 +01:00
phorge-phorge/src/__tests__/PhabricatorCelerityTestCase.php

37 lines
1.1 KiB
PHP
Raw Normal View History

<?php
final class PhabricatorCelerityTestCase extends PhabricatorTestCase {
/**
* This is more of an acceptance test case instead of a unit test. It verifies
* that the Celerity map is up-to-date.
*/
public function testCelerityMaps() {
$resources_map = CelerityPhysicalResources::getAll();
foreach ($resources_map as $resources) {
$old_map = new CelerityResourceMap($resources);
$new_map = id(new CelerityResourceMapGenerator($resources))
->generate();
Improve top-level exception handling Summary: Fixes T6692. Addresses two main issues: - The write guard would sometimes not get disposed of on exception pathways, generating an unnecessary secondary error which was just a symptom of the original root error. - This was generally confusing and reduced the quality of reports we received because users would report the symptomatic error sometimes instead of the real error. - Instead, reflow the handling so that we always dispose of the write guard if we create one. - If we missed the Controller-level error page generation (normally, a nice page with full CSS, etc), we'd jump straight to Startup-level error page generation (very basic plain text). - A large class of errors occur too early or too late to be handled by Controller-level pages, but many of these errors are not fundamental, and the plain text page is excessively severe. - Provide a mid-level simple HTML error page for errors which can't get full CSS, but also aren't so fundamental that we have no recourse but plain text. Test Plan: Mid-level errors now produce an intentional-looking error page: {F259885} Verified that setup errors still render properly. @chad, feel free to tweak the exception page -- I just did a rough pass on it. Like the setup error stuff, it doesn't have Celerity, so we can't use `{$colors}` and no other CSS will be loaded. Reviewers: chad, btrahan Reviewed By: btrahan Subscribers: epriestley, chad Maniphest Tasks: T6692 Differential Revision: https://secure.phabricator.com/D11126
2015-01-02 19:49:27 +01:00
// Don't actually compare these values with assertEqual(), since the diff
// isn't helpful and is often enormously huge.
$maps_are_identical =
($new_map->getNameMap() === $old_map->getNameMap()) &&
($new_map->getSymbolMap() === $old_map->getSymbolMap()) &&
($new_map->getRequiresMap() === $old_map->getRequiresMap()) &&
($new_map->getPackageMap() === $old_map->getPackageMap());
$this->assertTrue(
$maps_are_identical,
pht(
'When this test fails, it means the Celerity resource map is out '.
'of date. Run `%s` to rebuild it.',
'bin/celerity map'));
}
}
}