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    
017    package edu.samplu.admin.test;
018    
019    import static org.junit.Assert.assertEquals;
020    
021    import org.junit.Test;
022    
023    import edu.samplu.common.AdminMenuLegacyITBase;
024    import edu.samplu.common.ITUtil;
025    
026    /**
027     * @author Kuali Rice Team (rice.collab@kuali.org)
028     */
029    public class PersonLegacyIT extends AdminMenuLegacyITBase {
030    
031        String docId;
032        String personName;
033    
034        @Override
035        protected String getLinkLocator() {
036            return "Person";
037        }
038        
039        @Test
040        public void testPerson() throws Exception {
041            super.gotoCreateNew();
042            waitForPageToLoad();
043            Thread.sleep(2000);
044            /*assertElementPresentByXpath("//*[@name='methodToCall.route' and @alt='submit']",
045                    "save button does not exist on the page");*/
046            waitForElementPresentByXpath("//div[@id='headerarea']/div/table/tbody/tr[1]/td[1]");
047            docId = getTextByXpath("//div[@id='headerarea']/div/table/tbody/tr[1]/td[1]");
048            waitAndTypeByXpath("//input[@id='document.documentHeader.documentDescription']", "Adding Charlie Brown");
049            waitAndTypeByName("document.documentHeader.explanation", "I want to add Charlie Brown to test KIM");
050            //here You should also check for lower case validation for principalName, but it is skipped for now as there is an incident report error there.
051            personName = "cbrown" + ITUtil.DTS_TWO;
052            waitAndTypeByName("document.principalName", personName);
053            waitAndClickByXpath("//input[@name='methodToCall.save' and @alt='save']");
054            waitForPageToLoad();
055            assertElementPresentByXpath("//div[contains(div,'Document was successfully saved.')]");
056            assertEquals("SAVED", getTextByXpath("//table[@class='headerinfo']//tr[1]/td[2]"));
057            waitAndClickByXpath("//input[@name='methodToCall.route' and @alt='submit']");
058            waitForPageToLoad();
059            assertElementPresentByXpath("//div[contains(.,'At least one affiliation must be entered.')]/img[@alt='error']");
060            assertElementPresentByXpath("//div[contains(.,'At least one name must be entered.')]/img[@alt='error']");
061            System.out.println("------------------------------------Validation Test Successful--------------------------");
062            
063            selectOptionByName("newAffln.affiliationTypeCode", "STDNT");
064            selectOptionByName("newAffln.campusCode", "BL");
065            checkByName("newAffln.dflt");
066            waitAndClickByName("methodToCall.addAffln.anchor");
067            waitForPageToLoad();
068            //waitAndClickByName("methodToCall.toggleTab.tabContact");
069            waitForPageToLoad();
070            Thread.sleep(3000);
071            selectOptionByName("newName.nameCode", "PRM");
072            selectOptionByName("newName.namePrefix", "Mr");
073            waitAndTypeByName("newName.firstName", "Charlie");
074            waitAndTypeByName("newName.lastName", "Brown");
075            checkByName("newName.dflt");
076            waitAndClickByName("methodToCall.addName.anchor");
077            waitForPageToLoad();
078            waitAndClickByXpath("//input[@name='methodToCall.route' and @alt='submit']");
079            waitForPageToLoad();
080            assertElementPresentByXpath("//div[contains(div,'Document was successfully submitted.')]",
081                    "Document is not submitted successfully");
082            assertEquals("ENROUTE", getTextByXpath("//table[@class='headerinfo']//tr[1]/td[2]"));
083            System.out.println("------------------------------------Person document submitted successfully--------------------------");
084            
085            selectTopFrame();
086            super.gotoMenuLinkLocator();
087            waitForPageToLoad();
088            waitAndTypeByName("principalName", personName);
089            waitAndClickByXpath("//input[@name='methodToCall.search' and @value='search']");
090            isElementPresentByLinkText(personName);
091            waitAndClickByName("methodToCall.clearValues");
092            waitAndTypeByName("firstName","Charlie");
093            waitAndClickByXpath("//input[@name='methodToCall.search' and @value='search']");
094            isElementPresentByLinkText(personName);
095            waitAndClickByName("methodToCall.clearValues");
096            waitAndTypeByName("lastName", "Brown");
097            waitAndClickByXpath("//input[@name='methodToCall.search' and @value='search']");
098            isElementPresentByLinkText(personName);
099            waitAndClickByName("methodToCall.clearValues");
100            waitAndTypeByName("campusCode", "BL");
101            waitAndClickByXpath("//input[@name='methodToCall.search' and @value='search']");
102            isElementPresentByLinkText(personName);
103            System.out.println("----------------------------------Lookup successful-----------------------------");
104            
105            waitAndClickByLinkText(personName);
106            waitForPageToLoad();
107            Thread.sleep(5000);
108            switchToWindow("Kuali :: Person");
109            Thread.sleep(2000);
110            assertEquals(personName, getTextByXpath("//div[@class='tab-container']/table//tr[2]/td[1]/div").trim());
111            assertEquals("BL - BLOOMINGTON", getTextByXpath("//div[@class='tab-container']/table[3]//tr[2]/td[2]/div").trim());
112            assertEquals("Student", getTextByXpath("//select/option[@selected]").trim());
113            assertElementPresentByXpath("//table[@class='tab']//input[@title='close Overview']");
114            assertElementPresentByXpath("//table[@class='tab']//input[@title='open Contact']");
115            assertElementPresentByXpath("//table[@class='tab']//input[@title='open Privacy Preferences']");
116            assertElementPresentByXpath("//table[@class='tab']//input[@title='open Membership']");
117            waitAndClickByName("methodToCall.showAllTabs");
118            Thread.sleep(3000);
119            assertElementPresentByXpath("//table[@class='tab']//input[@title='close Overview']");
120            assertElementPresentByXpath("//table[@class='tab']//input[@title='close Contact']");
121            assertElementPresentByXpath("//table[@class='tab']//input[@title='close Privacy Preferences']");
122            assertElementPresentByXpath("//table[@class='tab']//input[@title='close Membership']");
123            waitAndClickByName("methodToCall.hideAllTabs");
124            Thread.sleep(3000);
125            assertElementPresentByXpath("//table[@class='tab']//input[@title='open Overview']");
126            assertElementPresentByXpath("//table[@class='tab']//input[@title='open Contact']");
127            assertElementPresentByXpath("//table[@class='tab']//input[@title='open Privacy Preferences']");
128            assertElementPresentByXpath("//table[@class='tab']//input[@title='open Membership']");
129            waitAndClickByXpath("//*[@title='close this window']");
130            switchToWindow("null");
131            System.out.println("------------------------------------Viewing from Inquiry Framework Test Successful--------------------------");
132            
133        }
134    
135    }