/**
* Copyright (c) 2009--2012 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.test.KickstartDataTest;
import com.redhat.rhn.frontend.action.kickstart.KickstartAdvancedOptionsAction;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.testing.RhnPostMockStrutsTestCase;
import com.redhat.rhn.testing.TestUtils;
/**
* KickstartAdvancedOptionsTest
* @version $Rev: 1 $
*/
public class KickstartAdvancedOptionsActionTest extends RhnPostMockStrutsTestCase {
protected KickstartData ksdata;
protected KickstartData ksdataOptions;
public void setUp() throws Exception {
super.setUp();
this.ksdata = KickstartDataTest.createKickstartWithChannel(user.getOrg());
this.ksdataOptions = KickstartDataTest.createKickstartWithOptions(user.getOrg());
TestUtils.saveAndFlush(ksdata);
TestUtils.saveAndFlush(ksdataOptions);
addRequestParameter(RequestContext.KICKSTART_ID, this.ksdata.getId().toString());
}
public void testExecute() throws Exception {
setRequestPathInfo("/kickstart/KickstartOptionsEdit");
actionPerform();
assertNotNull(request.getAttribute(KickstartAdvancedOptionsAction.OPTIONS));
}
public void testSubmit() throws Exception {
setRequestPathInfo("/kickstart/KickstartOptionsEdit");
addRequestParameter(KickstartAdvancedOptionsAction.SUBMITTED,
Boolean.TRUE.toString());
// setup some required fields
addRequestParameter("keyboard", "keyboard");
addRequestParameter("keyboard_txt", "US");
addRequestParameter("lang", "lang");
addRequestParameter("lang_txt", "en_US");
addRequestParameter("langsupport", "langsupport");
addRequestParameter("langsupport_txt", "--default en_US");
addRequestParameter("mouse", "mouse");
addRequestParameter("mouse_txt", "none");
addRequestParameter("bootloader", "bootloader");
addRequestParameter("bootloader_txt", "--location mbr");
addRequestParameter("timezone", "timezone");
addRequestParameter("timezone_txt", "America/New_York");
addRequestParameter("auth", "auth");
addRequestParameter("auth_txt", "--enablemd5 --enableshadow");
addRequestParameter("rootpw", "rootpw");
addRequestParameter("rootpw_txt", "$1$nCCVpGg");
addRequestParameter("customOptions", "repo blah");
// setup a non required field
addRequestParameter("skipx", "skipx");
actionPerform();
assertNotNull(request.getAttribute(RequestContext.KICKSTART));
assertNotNull(request.getParameter("rootpw"));
assertNotNull(request.getParameter("keyboard"));
assertNotNull(request.getParameter("lang"));
assertNotNull(request.getParameter("langsupport"));
assertNotNull(request.getParameter("mouse"));
assertNotNull(request.getParameter("bootloader"));
assertNotNull(request.getParameter("timezone"));
assertNotNull(request.getParameter("auth"));
assertNotNull(request.getParameter("skipx"));
String[] keys = {"kickstart.options.success"};
verifyActionMessages(keys);
// Verify we can submit twice
actionPerform();
verifyActionMessages(keys);
}
/*
* need to test how hibernate handles cascading orphans from the
* parent set. Page is loaded that has a ksdata with options already
* set. The reqeste params will replace the existing option set
*/
public void testReplaceSubmit() throws Exception {
setRequestPathInfo("/kickstart/KickstartOptionsEdit");
addRequestParameter(KickstartAdvancedOptionsAction.SUBMITTED,
Boolean.TRUE.toString());
// setup some required fields
addRequestParameter("keyboard", "keyboard");
addRequestParameter("keyboard_txt", "US");
addRequestParameter("lang", "lang");
addRequestParameter("lang_txt", "en_US");
addRequestParameter("langsupport", "langsupport");
addRequestParameter("langsupport_txt", "--default en_US");
addRequestParameter("mouse", "mouse");
addRequestParameter("mouse_txt", "");
addRequestParameter("bootloader", "bootloader");
addRequestParameter("bootloader_txt", "--location mbr");
addRequestParameter("timezone", "timezone");
addRequestParameter("timezone_txt", "America/New_York");
addRequestParameter("auth", "auth");
addRequestParameter("auth_txt", "--enablemd5 --enableshadow");
addRequestParameter("rootpw", "rootpw");
addRequestParameter("rootpw_txt", "badpassword");
addRequestParameter("customOptions", "repo blah");
// setup a non required field
addRequestParameter("skipx", "skipx");
addRequestParameter(RequestContext.KICKSTART_ID,
this.ksdataOptions.getId().toString());
actionPerform();
assertNotNull(request.getAttribute(RequestContext.KICKSTART));
String[] keys = {"kickstart.options.success"};
verifyActionMessages(keys);
}
}