/**
* Copyright (c) 2009--2010 Red Hat, Inc.
*
* This software is licensed to you under the GNU General Public License,
* version 2 (GPLv2). There is NO WARRANTY for this software, express or
* implied, including the implied warranties of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
* along with this software; if not, see
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
*
* Red Hat trademarks are not licensed under GPLv2. No permission is
* granted to use or replicate Red Hat trademarks that are incorporated
* in this software or its documentation.
*/
package com.redhat.rhn.frontend.action.kickstart.test;
import com.redhat.rhn.domain.kickstart.KickstartData;
import com.redhat.rhn.domain.kickstart.KickstartFactory;
import com.redhat.rhn.domain.kickstart.KickstartInstallType;
import com.redhat.rhn.domain.kickstart.SELinuxMode;
import com.redhat.rhn.frontend.action.kickstart.SystemDetailsEditAction;
import com.redhat.rhn.frontend.struts.RhnAction;
import com.redhat.rhn.manager.kickstart.KickstartWizardHelper;
import com.redhat.rhn.testing.TestUtils;
public class KickstartSystemDetailsTest extends BaseKickstartEditTestCase {
/**
* {@inheritDoc}
*/
public void setUp() throws Exception {
// TODO Auto-generated method stub
super.setUp();
KickstartWizardHelper cmd = new KickstartWizardHelper(user);
cmd.createCommand("selinux", "--permissive", ksdata);
}
public void testDisplay() throws Exception {
// Create a kickstart and the ranges so the list
// will return something.
setupForDisplay(ksdata);
actionPerform();
verifyNoActionErrors();
}
public void testEditSELinux() throws Exception {
setupForEdit(ksdata);
addRequestParameter("selinuxMode", "enforcing");
addRequestParameter("rootPassword", "blahblah");
addRequestParameter("rootPasswordConfirm", "blahblah");
addRequestParameter("pwdChanged", "true");
actionPerform();
verifyNoActionErrors();
verifyFormValue("selinuxMode", "enforcing");
}
public void testEditRootPasswordErr() throws Exception {
setupForEdit(ksdata);
addRequestParameter("rootPassword", "blahblah");
addRequestParameter("rootPasswordConfirm", "blah");
addRequestParameter("pwdChanged", "true");
actionPerform();
String[] errMessages = {"kickstart.systemdetails.root.password.jsp.error"};
verifyActionErrors(errMessages);
}
public void testEditRootPasswordSuccess() throws Exception {
setupForEdit(ksdata);
addRequestParameter("selinuxMode", "permissive");
addRequestParameter("rootPassword", "blahblah");
addRequestParameter("rootPasswordConfirm", "blahblah");
addRequestParameter("pwdChanged", "true");
actionPerform();
verifyNoActionErrors();
}
public void testEditNetworkSuccess() throws Exception {
setupForEdit(ksdata);
addRequestParameter("selinuxMode", "permissive");
addRequestParameter("rootPassword", "blahblah");
addRequestParameter("rootPasswordConfirm", "blahblah");
addRequestParameter("pwdChanged", "true");
actionPerform();
verifyNoActionErrors();
}
public void testRHEL3Execute() throws Exception {
ksdata.getKickstartDefaults().getKstree().
setInstallType(KickstartFactory.
lookupKickstartInstallTypeByLabel(KickstartInstallType.RHEL_3));
KickstartFactory.saveKickstartData(ksdata);
ksdata = (KickstartData) TestUtils.reload(ksdata);
setRequestPathInfo("/kickstart/SystemDetailsEdit");
addRequestParameter("registrationType", "reactivation");
addRequestParameter(RhnAction.SUBMITTED, Boolean.TRUE.toString());
addRequestParameter(SystemDetailsEditAction.SE_LINUX_PARAM,
SELinuxMode.ENFORCING.getValue());
actionPerform();
// Make sure we DONT update if its rhel3
assertEquals("--permissive", ksdata.getCommand("selinux").getArguments());
verifyNoActionErrors();
}
public void testRHEL4Execute() throws Exception {
ksdata.getKickstartDefaults().getKstree().
setInstallType(KickstartFactory.
lookupKickstartInstallTypeByLabel(KickstartInstallType.RHEL_4));
KickstartFactory.saveKickstartData(ksdata);
ksdata = (KickstartData) TestUtils.reload(ksdata);
assertNotNull(ksdata.getCommand("selinux"));
setRequestPathInfo("/kickstart/SystemDetailsEdit");
addRequestParameter("registrationType", "reactivation");
addRequestParameter(RhnAction.SUBMITTED, Boolean.TRUE.toString());
addRequestParameter(SystemDetailsEditAction.SE_LINUX_PARAM,
SELinuxMode.ENFORCING.getValue());
actionPerform();
// Make sure we update if its rhel4
assertEquals("--enforcing", ksdata.getCommand("selinux").getArguments());
verifyNoActionErrors();
}
private void setupForDisplay(KickstartData k) throws Exception {
clearRequestParameters();
setRequestPathInfo("/kickstart/SystemDetailsEdit");
addRequestParameter("ksid", k.getId().toString());
}
private void setupForEdit(KickstartData k) throws Exception {
setupForDisplay(k);
addRequestParameter("submitted", "true");
addRequestParameter("registrationType", "reactivation");
}
}