}
foreach ( $info['config'] as $key => $val ) {
if ( $key[0] !== '@' ) {
- $this->addConfigGlobal( "$prefix$key", $val );
+ $this->globals["$prefix$key"] = $val;
}
}
}
if ( isset( $data['path'] ) && $data['path'] ) {
$value = "$dir/$value";
}
- $this->addConfigGlobal( "$prefix$key", $value );
+ $this->globals["$prefix$key"] = $value;
}
}
}
- /**
- * Helper function to set a value to a specific global, if it isn't set already.
- *
- * @param string $key The config key with the prefix and anything
- * @param mixed $value The value of the config
- */
- private function addConfigGlobal( $key, $value ) {
- if ( array_key_exists( $key, $this->globals ) ) {
- throw new RuntimeException(
- "The configuration setting '$key' was already set by another extension,"
- . " and cannot be set again." );
- }
- $this->globals[$key] = $value;
- }
-
protected function extractServiceWiringFiles( $dir, array $info ) {
if ( isset( $info['ServiceWiringFiles'] ) ) {
foreach ( $info['ServiceWiringFiles'] as $path ) {
$this->assertEquals( 'somevalue', $extracted['globals']['egBar'] );
}
- /**
- * @covers ExtensionProcessor::addConfigGlobal()
- * @expectedException RuntimeException
- */
- public function testDuplicateConfigKey1() {
- $processor = new ExtensionProcessor;
- $info = [
- 'config' => [
- 'Bar' => '',
- ]
- ] + self::$default;
- $info2 = [
- 'config' => [
- 'Bar' => 'g',
- ],
- 'name' => 'FooBar2',
- ];
- $processor->extractInfo( $this->dir, $info, 1 );
- $processor->extractInfo( $this->dir, $info2, 1 );
- }
-
- /**
- * @covers ExtensionProcessor::addConfigGlobal()
- * @expectedException RuntimeException
- */
- public function testDuplicateConfigKey2() {
- $processor = new ExtensionProcessor;
- $info = [
- 'config' => [
- 'Bar' => [ 'value' => 'somevalue' ],
- ]
- ] + self::$default;
- $info2 = [
- 'config' => [
- 'Bar' => [ 'value' => 'somevalue' ],
- ],
- 'name' => 'FooBar2',
- ];
- $processor->extractInfo( $this->dir, $info, 2 );
- $processor->extractInfo( $this->dir, $info2, 2 );
- }
-
public static function provideExtractExtensionMessagesFiles() {
$dir = __DIR__ . '/FooBar/';
return [