001 /**
002 * Copyright 2005-2011 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package edu.samplu.admin.test;
017
018 import edu.samplu.common.AdminMenuLegacyITBase;
019 import edu.samplu.common.ITUtil;
020 import org.junit.Rule;
021 import org.junit.Test;
022 import org.junit.rules.TemporaryFolder;
023 import org.openqa.selenium.By;
024
025 import java.io.File;
026 import java.io.FileWriter;
027
028 /**
029 * tests uploads of new users
030 *
031 * @author Kuali Rice Team (rice.collab@kuali.org)
032 */
033 public class XMLIngesterLegacyIT extends AdminMenuLegacyITBase {
034
035 private File loadUsersFile;
036
037 @Rule
038 public TemporaryFolder folder= new TemporaryFolder();
039
040 @Override
041 protected String getLinkLocator() {
042 return "XML Ingester";
043 }
044
045 @Override
046 public String getUserName() {
047 return "admin"; // xml ingestion requires admin permissions
048 }
049
050 @Override
051 public void setUp() throws Exception {
052 super.setUp();
053 // generated load users resource for repeated testing
054 generateLoadUsersFile(10, ITUtil.DTS);
055 }
056
057 /**
058 * Generates a temporary file for given number of users and prefix
059 *
060 * @param numberOfUsers
061 * @param prefix
062 * @throws Exception
063 */
064 private void generateLoadUsersFile(int numberOfUsers, String prefix) throws Exception {
065 loadUsersFile = folder.newFile("loadtest-users.xml");
066 java.util.Date date= new java.util.Date();
067
068 FileWriter writer = new FileWriter(loadUsersFile);
069 writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
070 writer.write("<data xmlns=\"ns:workflow\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"ns:workflow resource:WorkflowData\">\n");
071 writer.write("\t<users xmlns=\"ns:workflow/User\" xsi:schemaLocation=\"ns:workflow/User resource:User\">\n");
072 for(int i = 0; i < numberOfUsers; i++) {
073 StringBuffer stringBuffer = new StringBuffer();
074 stringBuffer.append("\t\t<user><principalId>lt" + prefix + i + "</principalId>");
075 stringBuffer.append("<emplId>lt" + prefix + i + "emplid</emplId>");
076 stringBuffer.append("<principalName>loadtester" + prefix + i + "</principalName>");
077 stringBuffer.append("<givenName>Tester</givenName>");
078 stringBuffer.append("<lastName>McLoady" + prefix + i + "</lastName>");
079 stringBuffer.append("<emailAddress>loadtester" + prefix + i + "@kuali.org</emailAddress>");
080 stringBuffer.append("</user>\n");
081 writer.write(stringBuffer.toString());
082 }
083 writer.write("\t</users>\n</data>\n");
084 writer.close();
085 }
086
087 @Test
088 public void testXMLIngesterUpload() throws Exception {
089 gotoMenuLinkLocator();
090 String path = loadUsersFile.getAbsolutePath().toString();
091 driver.findElement(By.name("file[0]")).sendKeys(path);
092 waitAndClickByXpath("//*[@id='imageField']");
093 assertTextPresent("Ingested xml doc");
094 passed();
095 }
096
097 }