# HG changeset patch # User Elliott Baron # Date 1488493498 18000 # Node ID c0b84b5fdafee572674ddba2b7c448e0f9a6e786 # Parent f898d30b7b1c8ebc7c36d949494eb2cdadfe4e9e Add integration test for system property "user.name" not matching current OS user Reviewed-by: jerboaa Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-February/022265.html PR3233 diff -r f898d30b7b1c -r c0b84b5fdafe integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/UsernamePropertyTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/UsernamePropertyTest.java Thu Mar 02 17:24:58 2017 -0500 @@ -0,0 +1,93 @@ +/* + * Copyright 2012-2017 Red Hat, Inc. + * + * This file is part of Thermostat. + * + * Thermostat is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2, or (at your + * option) any later version. + * + * Thermostat is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Thermostat; see the file COPYING. If not see + * . + * + * Linking this code with other modules is making a combined work + * based on this code. Thus, the terms and conditions of the GNU + * General Public License cover the whole combination. + * + * As a special exception, the copyright holders of this code give + * you permission to link this code with independent modules to + * produce an executable, regardless of the license terms of these + * independent modules, and to copy and distribute the resulting + * executable under terms of your choice, provided that you also + * meet, for each linked independent module, the terms and conditions + * of the license of that module. An independent module is a module + * which is not derived from or based on this code. If you modify + * this code, you may extend this exception to your version of the + * library, but you are not obligated to do so. If you do not wish + * to do so, delete this exception statement from your version. + */ + +package com.redhat.thermostat.itest; + +import java.util.Map; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import expectj.Spawn; + +/** + * Ensures that the Thermostat agent can still run if a bogus + * user name is set via the "user.name" system property. + */ +public class UsernamePropertyTest extends IntegrationTest { + + private static final long TIMEOUT_MS = 2000L; + private static final String USERNAME = "foo"; + private static final String PASSWORD = "bar"; + + @BeforeClass + public static void setUpOnce() throws Exception { + setupIntegrationTest(UsernamePropertyTest.class); + + createFakeSetupCompleteFile(); + + addUserToStorage(USERNAME, PASSWORD); + createAgentAuthFile(USERNAME, PASSWORD); + + startStorage(); + } + + @AfterClass + public static void tearDownOnce() throws Exception { + stopStorage(); + } + + @Test + public void testWrongUsernameProperty() throws Exception { + Map testProperties = getVerboseModeProperties(); + + String [] args = { "-J-Duser.name=not-me", "agent", "-d", "mongodb://127.0.0.1:27518" }; + SpawnResult spawnResult = spawnThermostatWithPropertiesSetAndGetProcess(testProperties, args); + Spawn service = spawnResult.spawn; + + try { + service.expect("Agent started."); + // Give agent some time to startup before killing it + Thread.sleep(TIMEOUT_MS); + } finally { + // service.stop only stops the agent/webservice. + killRecursively(spawnResult.process); + } + + service.expectClose(); + } +} diff -r f898d30b7b1c -r c0b84b5fdafe integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/standalone/AllStandaloneTests.java --- a/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/standalone/AllStandaloneTests.java Thu Mar 02 17:20:48 2017 -0500 +++ b/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/standalone/AllStandaloneTests.java Thu Mar 02 17:24:58 2017 -0500 @@ -44,6 +44,7 @@ import com.redhat.thermostat.itest.StorageConnectionTest; import com.redhat.thermostat.itest.StorageTest; import com.redhat.thermostat.itest.UserPluginsTest; +import com.redhat.thermostat.itest.UsernamePropertyTest; import com.redhat.thermostat.itest.VmCommandsTest; @@ -96,6 +97,7 @@ StorageTest.class, VmCommandsTest.class, UserPluginsTest.class, + UsernamePropertyTest.class, AllCommandsResolvableTest.class }) public class AllStandaloneTests {