Merge branch '3.6' into 3.7

This commit is contained in:
Robbie Averill 2019-01-29 13:59:56 +02:00
commit 4182d1b60c
2 changed files with 10 additions and 1 deletions

View File

@ -866,7 +866,7 @@ class Injector {
return $this->instantiate($spec, $name); return $this->instantiate($spec, $name);
} }
return $this->instantiate($spec); return $this->instantiate($spec, null, 'prototype');
} }
/** /**

View File

@ -39,6 +39,13 @@ class DataObjectTest extends SapphireTest {
*/ */
public function testSingleton($inst, $defaultValue, $altDefaultValue) public function testSingleton($inst, $defaultValue, $altDefaultValue)
{ {
// Calls to scaffold the test database may have cached service specs for DataObjects
// with the incorrect 'type' set (singleton instead of prototype)
Injector::nest();
$reflectionProp = new ReflectionProperty('Injector', 'specs');
$reflectionProp->setAccessible(true);
$reflectionProp->setValue(Injector::inst(), array());
$inst = $inst(); $inst = $inst();
// Test that populateDefaults() isn't called on singletons // Test that populateDefaults() isn't called on singletons
// which can lead to SQL errors during build, and endless loops // which can lead to SQL errors during build, and endless loops
@ -53,6 +60,8 @@ class DataObjectTest extends SapphireTest {
} else { } else {
$this->assertEmpty($inst->MyFieldWithAltDefault); $this->assertEmpty($inst->MyFieldWithAltDefault);
} }
Injector::unnest();
} }
public function provideSingletons() public function provideSingletons()