@ -23,6 +23,7 @@ import java.util.Set;
import java.util.concurrent.atomic.AtomicReference ;
import org.junit.After ;
import org.junit.Before ;
import org.junit.Rule ;
import org.junit.Test ;
import org.junit.rules.ExpectedException ;
@ -81,9 +82,12 @@ import static org.mockito.Mockito.verify;
*
* @author Phillip Webb
* @author Dave Syer
* @author Andy Wilkinson
* /
public class SpringApplicationTests {
private String headlessProperty ;
@Rule
public ExpectedException thrown = ExpectedException . none ( ) ;
@ -96,6 +100,23 @@ public class SpringApplicationTests {
throw new IllegalStateException ( "Could not obtain Environment" ) ;
}
@Before
public void storeAndClearHeadlessProperty ( ) {
this . headlessProperty = System . getProperty ( "java.awt.headless" ) ;
System . clearProperty ( "java.awt.headless" ) ;
}
@After
public void reinstateHeadlessProperty ( ) {
if ( this . headlessProperty = = null ) {
System . clearProperty ( "java.awt.headless" ) ;
}
else {
System . setProperty ( "java.awt.headless" , this . headlessProperty ) ;
}
}
@After
public void close ( ) {
if ( this . context ! = null ) {
@ -504,6 +525,15 @@ public class SpringApplicationTests {
assertThat ( System . getProperty ( "java.awt.headless" ) , equalTo ( "false" ) ) ;
}
@Test
public void headlessSystemPropertyTakesPrecedence ( ) throws Exception {
System . setProperty ( "java.awt.headless" , "false" ) ;
TestSpringApplication application = new TestSpringApplication ( ExampleConfig . class ) ;
application . setWebEnvironment ( false ) ;
application . run ( ) ;
assertThat ( System . getProperty ( "java.awt.headless" ) , equalTo ( "false" ) ) ;
}
private boolean hasPropertySource ( ConfigurableEnvironment environment ,
Class < ? > propertySourceClass , String name ) {
for ( PropertySource < ? > source : environment . getPropertySources ( ) ) {