/**
* 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.KickstartFactory;
import com.redhat.rhn.domain.kickstart.KickstartScript;
import com.redhat.rhn.frontend.action.kickstart.KickstartScriptCreateAction;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.testing.TestUtils;
import org.apache.commons.lang.RandomStringUtils;
/**
* KickstartScriptCreateActionTest
* @version $Rev: 1 $
*/
public class KickstartScriptActionTest extends BaseKickstartEditTestCase {
public void testExecute() throws Exception {
// Lets zero out the scripts
ksdata = clearScripts(ksdata);
assertEquals(0, ksdata.getScripts().size());
addRequestParameter(KickstartScriptCreateAction.SUBMITTED,
Boolean.FALSE.toString());
setRequestPathInfo("/kickstart/KickstartScriptCreate");
actionPerform();
assertEquals(0, ksdata.getScripts().size());
verifyFormValue(KickstartScriptCreateAction.TYPE,
KickstartScript.TYPE_PRE);
assertNotNull(request.getAttribute(KickstartScriptCreateAction.TYPES));
}
public void testExecuteLargeValueSubmit() throws Exception {
String contents = RandomStringUtils.randomAscii(400000);
String name = RandomStringUtils.randomAscii(20);
// Lets zero out the scripts
ksdata = clearScripts(ksdata);
String language = "/usr/bin/perl";
addRequestParameter(KickstartScriptCreateAction.CONTENTS,
contents);
addRequestParameter(KickstartScriptCreateAction.LANGUAGE,
language);
addRequestParameter(KickstartScriptCreateAction.TYPE,
KickstartScript.TYPE_POST);
addRequestParameter(KickstartScriptCreateAction.SUBMITTED,
Boolean.TRUE.toString());
addRequestParameter(KickstartScriptCreateAction.TEMPLATE,
Boolean.TRUE.toString());
addRequestParameter(KickstartScriptCreateAction.SCRIPTNAME,
name);
setRequestPathInfo("/kickstart/KickstartScriptCreate");
actionPerform();
String[] keys = {"errors.maxlength"};
verifyActionErrors(keys);
contents = RandomStringUtils.randomAscii(50000);
addRequestParameter(KickstartScriptCreateAction.CONTENTS,
contents);
actionPerform();
String[] successkeys = {"kickstart.script.success"};
verifyActionMessages(successkeys);
}
public void testExecuteSubmit() throws Exception {
// Lets zero out the scripts
ksdata = clearScripts(ksdata);
String contents = "some script value";
String language = "/usr/bin/perl";
addRequestParameter(KickstartScriptCreateAction.CONTENTS,
contents);
addRequestParameter(KickstartScriptCreateAction.LANGUAGE,
language);
addRequestParameter(KickstartScriptCreateAction.TYPE,
KickstartScript.TYPE_POST);
addRequestParameter(KickstartScriptCreateAction.SUBMITTED,
Boolean.TRUE.toString());
addRequestParameter(KickstartScriptCreateAction.SCRIPTNAME,
RandomStringUtils.randomAscii(20));
setRequestPathInfo("/kickstart/KickstartScriptCreate");
actionPerform();
String[] keys = {"kickstart.script.success"};
verifyActionMessages(keys);
assertNotNull(ksdata.getScripts());
KickstartScript ks = ksdata.getScripts().iterator().next();
assertEquals(contents, ks.getDataContents());
assertEquals(language, ks.getInterpreter());
assertEquals(KickstartScript.TYPE_POST, ks.getScriptType());
verifyForward("success");
}
public void testEditExecute() throws Exception {
assertEquals(5, ksdata.getScripts().size());
addRequestParameter(KickstartScriptCreateAction.SUBMITTED,
Boolean.FALSE.toString());
KickstartScript kss = ksdata.getScripts().iterator().next();
addRequestParameter(RequestContext.KICKSTART_SCRIPT_ID, kss.getId().toString());
setRequestPathInfo("/kickstart/KickstartScriptEdit");
actionPerform();
assertEquals(5, ksdata.getScripts().size());
verifyFormValue(KickstartScriptCreateAction.TYPE,
kss.getScriptType());
assertNotNull(request.getAttribute(KickstartScriptCreateAction.TYPES));
assertNotNull(request.getAttribute(RequestContext.KICKSTART_SCRIPT_ID));
}
public void testEditExecuteSubmit() throws Exception {
String contents = "some script value " + TestUtils.randomString();
String language = "/usr/bin/perl";
addRequestParameter(KickstartScriptCreateAction.CONTENTS,
contents);
addRequestParameter(KickstartScriptCreateAction.LANGUAGE,
language);
addRequestParameter(KickstartScriptCreateAction.TYPE,
KickstartScript.TYPE_POST);
addRequestParameter(KickstartScriptCreateAction.SUBMITTED,
Boolean.TRUE.toString());
addRequestParameter(KickstartScriptCreateAction.SCRIPTNAME,
RandomStringUtils.randomAscii(20));
KickstartScript kss = ksdata.getScripts().iterator().next();
addRequestParameter(RequestContext.KICKSTART_SCRIPT_ID, kss.getId().toString());
setRequestPathInfo("/kickstart/KickstartScriptEdit");
actionPerform();
String[] keys = {"kickstart.script.success"};
verifyActionMessages(keys);
assertNotNull(ksdata.getScripts());
KickstartScript ks = ksdata.getScripts().iterator().next();
assertEquals(contents, ks.getDataContents());
assertEquals(language, ks.getInterpreter());
assertEquals(KickstartScript.TYPE_POST, ks.getScriptType());
verifyForward("success");
}
private static KickstartData clearScripts(KickstartData ksdataIn) {
// Lets zero out the scripts
ksdataIn.getScripts().clear();
KickstartFactory.saveKickstartData(ksdataIn);
ksdataIn = (KickstartData) TestUtils.reload(ksdataIn);
return ksdataIn;
}
}