-
- $illegalDeps = [];
- foreach ( $data['modules'] as $moduleName => $module ) {
- if ( $module instanceof ResourceLoaderStartUpModule ) {
- $illegalDeps[] = $moduleName;
- }
- }
-
- /** @var ResourceLoaderModule $module */
- foreach ( $data['modules'] as $moduleName => $module ) {
- foreach ( $illegalDeps as $illegalDep ) {
- $this->assertNotContains(
- $illegalDep,
- $module->getDependencies( $data['context'] ),
- "Module '$moduleName' must not depend on '$illegalDep'"
- );
- }
- }
- }
-
- /**
- * Verify that all modules specified as dependencies of other modules actually exist.
- */
- public function testMissingDependencies() {
- $data = self::getAllModules();
- $validDeps = array_keys( $data['modules'] );
+ $knownDeps = array_keys( $data['modules'] );
+ $illegalDeps = [ 'startup' ];
+
+ // Avoid an assert for each module to keep the test fast.
+ // Instead, perform a single assertion against everything at once.
+ // When all is good, actual/expected are both empty arrays.
+ // When we find issues, add the violations to 'actual' and add an empty
+ // key to 'expected'. These keys in expected are because the PHPUnit diff
+ // (as of 6.5) only goes one level deep.
+ $actualUnknown = [];
+ $expectedUnknown = [];
+ $actualIllegal = [];
+ $expectedIllegal = [];