/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/KickstartScriptActionTest.java

https://github.com/colloquium/spacewalk · Java · 151 lines · 114 code · 15 blank · 22 comment · 0 complexity · ad9a69618b2811ecc228e9eb1ab1d8f6 MD5 · raw file

  1. /**
  2. * Copyright (c) 2009--2010 Red Hat, Inc.
  3. *
  4. * This software is licensed to you under the GNU General Public License,
  5. * version 2 (GPLv2). There is NO WARRANTY for this software, express or
  6. * implied, including the implied warranties of MERCHANTABILITY or FITNESS
  7. * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
  8. * along with this software; if not, see
  9. * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
  10. *
  11. * Red Hat trademarks are not licensed under GPLv2. No permission is
  12. * granted to use or replicate Red Hat trademarks that are incorporated
  13. * in this software or its documentation.
  14. */
  15. package com.redhat.rhn.frontend.action.kickstart.test;
  16. import com.redhat.rhn.domain.kickstart.KickstartData;
  17. import com.redhat.rhn.domain.kickstart.KickstartFactory;
  18. import com.redhat.rhn.domain.kickstart.KickstartScript;
  19. import com.redhat.rhn.frontend.action.kickstart.KickstartScriptCreateAction;
  20. import com.redhat.rhn.frontend.struts.RequestContext;
  21. import com.redhat.rhn.testing.TestUtils;
  22. import org.apache.commons.lang.RandomStringUtils;
  23. /**
  24. * KickstartScriptCreateActionTest
  25. * @version $Rev: 1 $
  26. */
  27. public class KickstartScriptActionTest extends BaseKickstartEditTestCase {
  28. public void testExecute() throws Exception {
  29. // Lets zero out the scripts
  30. ksdata = clearScripts(ksdata);
  31. assertEquals(0, ksdata.getScripts().size());
  32. addRequestParameter(KickstartScriptCreateAction.SUBMITTED,
  33. Boolean.FALSE.toString());
  34. setRequestPathInfo("/kickstart/KickstartScriptCreate");
  35. actionPerform();
  36. assertEquals(0, ksdata.getScripts().size());
  37. verifyFormValue(KickstartScriptCreateAction.TYPE,
  38. KickstartScript.TYPE_PRE);
  39. assertNotNull(request.getAttribute(KickstartScriptCreateAction.TYPES));
  40. }
  41. public void testExecuteLargeValueSubmit() throws Exception {
  42. String contents = RandomStringUtils.randomAscii(400000);
  43. // Lets zero out the scripts
  44. ksdata = clearScripts(ksdata);
  45. String language = "/usr/bin/perl";
  46. addRequestParameter(KickstartScriptCreateAction.CONTENTS,
  47. contents);
  48. addRequestParameter(KickstartScriptCreateAction.LANGUAGE,
  49. language);
  50. addRequestParameter(KickstartScriptCreateAction.TYPE,
  51. KickstartScript.TYPE_POST);
  52. addRequestParameter(KickstartScriptCreateAction.SUBMITTED,
  53. Boolean.TRUE.toString());
  54. addRequestParameter(KickstartScriptCreateAction.TEMPLATE,
  55. Boolean.TRUE.toString());
  56. setRequestPathInfo("/kickstart/KickstartScriptCreate");
  57. actionPerform();
  58. String[] keys = {"kickstart.script.toolarge"};
  59. verifyActionErrors(keys);
  60. contents = RandomStringUtils.randomAscii(50000);
  61. addRequestParameter(KickstartScriptCreateAction.CONTENTS,
  62. contents);
  63. actionPerform();
  64. String[] successkeys = {"kickstart.script.success"};
  65. verifyActionMessages(successkeys);
  66. }
  67. public void testExecuteSubmit() throws Exception {
  68. // Lets zero out the scripts
  69. ksdata = clearScripts(ksdata);
  70. String contents = "some script value";
  71. String language = "/usr/bin/perl";
  72. addRequestParameter(KickstartScriptCreateAction.CONTENTS,
  73. contents);
  74. addRequestParameter(KickstartScriptCreateAction.LANGUAGE,
  75. language);
  76. addRequestParameter(KickstartScriptCreateAction.TYPE,
  77. KickstartScript.TYPE_POST);
  78. addRequestParameter(KickstartScriptCreateAction.SUBMITTED,
  79. Boolean.TRUE.toString());
  80. setRequestPathInfo("/kickstart/KickstartScriptCreate");
  81. actionPerform();
  82. String[] keys = {"kickstart.script.success"};
  83. verifyActionMessages(keys);
  84. assertNotNull(ksdata.getScripts());
  85. KickstartScript ks = (KickstartScript) ksdata.getScripts().iterator().next();
  86. assertEquals(contents, ks.getDataContents());
  87. assertEquals(language, ks.getInterpreter());
  88. assertEquals(KickstartScript.TYPE_POST, ks.getScriptType());
  89. verifyForward("success");
  90. }
  91. public void testEditExecute() throws Exception {
  92. assertEquals(5, ksdata.getScripts().size());
  93. addRequestParameter(KickstartScriptCreateAction.SUBMITTED,
  94. Boolean.FALSE.toString());
  95. KickstartScript kss = (KickstartScript) ksdata.getScripts().iterator().next();
  96. addRequestParameter(RequestContext.KICKSTART_SCRIPT_ID, kss.getId().toString());
  97. setRequestPathInfo("/kickstart/KickstartScriptEdit");
  98. actionPerform();
  99. assertEquals(5, ksdata.getScripts().size());
  100. verifyFormValue(KickstartScriptCreateAction.TYPE,
  101. kss.getScriptType());
  102. assertNotNull(request.getAttribute(KickstartScriptCreateAction.TYPES));
  103. assertNotNull(request.getAttribute(RequestContext.KICKSTART_SCRIPT_ID));
  104. }
  105. public void testEditExecuteSubmit() throws Exception {
  106. String contents = "some script value " + TestUtils.randomString();
  107. String language = "/usr/bin/perl";
  108. addRequestParameter(KickstartScriptCreateAction.CONTENTS,
  109. contents);
  110. addRequestParameter(KickstartScriptCreateAction.LANGUAGE,
  111. language);
  112. addRequestParameter(KickstartScriptCreateAction.TYPE,
  113. KickstartScript.TYPE_POST);
  114. addRequestParameter(KickstartScriptCreateAction.SUBMITTED,
  115. Boolean.TRUE.toString());
  116. KickstartScript kss = (KickstartScript) ksdata.getScripts().iterator().next();
  117. addRequestParameter(RequestContext.KICKSTART_SCRIPT_ID, kss.getId().toString());
  118. setRequestPathInfo("/kickstart/KickstartScriptEdit");
  119. actionPerform();
  120. String[] keys = {"kickstart.script.success"};
  121. verifyActionMessages(keys);
  122. assertNotNull(ksdata.getScripts());
  123. KickstartScript ks = (KickstartScript) ksdata.getScripts().iterator().next();
  124. assertEquals(contents, ks.getDataContents());
  125. assertEquals(language, ks.getInterpreter());
  126. assertEquals(KickstartScript.TYPE_POST, ks.getScriptType());
  127. verifyForward("success");
  128. }
  129. private static KickstartData clearScripts(KickstartData ksdataIn) {
  130. // Lets zero out the scripts
  131. ksdataIn.getScripts().clear();
  132. KickstartFactory.saveKickstartData(ksdataIn);
  133. ksdataIn = (KickstartData) TestUtils.reload(ksdataIn);
  134. return ksdataIn;
  135. }
  136. }