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.mainmenu.test;
017    
018    import edu.samplu.common.ITUtil;
019    import edu.samplu.common.WebDriverLegacyITBase;
020    
021    import org.junit.Test;
022    import org.openqa.selenium.By;
023    
024    import static org.junit.Assert.assertEquals;
025    import static org.junit.Assert.assertTrue;
026    
027    /**
028     * tests that user 'admin', on blanket approving a new Routing Rule maintenance document, results in a final document
029     * 
030     * @author Kuali Rice Team (rice.collab@kuali.org)
031     */
032    public class WorkFlowRouteRulesBlanketAppLegacyIT extends WebDriverLegacyITBase {
033        @Override
034        public String getTestUrl() {
035            return ITUtil.PORTAL;
036        }
037        @Test
038        public void testUntitled() throws Exception {    
039            assertEquals("Kuali Portal Index", getTitle());
040            // click on the main menu Routing Rules link
041            waitAndClickByLinkText("Routing Rules");
042            waitForPageToLoad();
043            Thread.sleep(3000);
044            assertEquals("Kuali Portal Index", getTitle());
045            selectFrame("iframeportlet");
046            // click on the create new button
047            waitAndClickByXpath("//img[@alt='create new']");
048            waitForPageToLoad();
049            // lookup on the Document Type Name
050            waitAndClickByName("methodToCall.performLookup.(!!org.kuali.rice.kew.doctype.bo.DocumentType!!).(((name:documentTypeName))).((``)).((<>)).(([])).((**)).((^^)).((&&)).((//)).((~~)).(::::;;::::).anchor");
051            waitForPageToLoad();
052            // type in the name field the text RoutingRuleDocument
053            waitAndTypeByName("name", "RoutingRuleDocument");
054            // click the search button
055            waitAndClickByXpath("//input[@name='methodToCall.search' and @value='search']");
056            waitForPageToLoad();
057            // click the return value link
058            waitAndClickByLinkText("return value");
059            waitForPageToLoad();
060            // lookup on the Rule Template Name
061            waitAndClickByName("methodToCall.performLookup.(!!org.kuali.rice.kew.rule.bo.RuleTemplateBo!!).(((name:ruleTemplateName))).((``)).((<>)).(([])).((**)).((^^)).((&&)).((//)).((~~)).(::::;;::::).anchor");
062            waitForPageToLoad();
063            // type in the name field the text RuleRoutingTemplate
064            waitAndTypeByName("name", "RuleRoutingTemplate");
065            // click the search button
066            waitAndClickByXpath("//input[@name='methodToCall.search' and @value='search']");
067            waitForPageToLoad();
068            // click the return value link
069            waitAndClickByLinkText("return value");
070            waitForPageToLoad();
071            // click the create new button
072            waitAndClickByName("methodToCall.createRule");
073            waitForPageToLoad();
074            Thread.sleep(3000);        
075            String docId = getTextByXpath("//div[@id='headerarea']/div/table/tbody/tr[1]/td[1]");
076            assertTrue(isElementPresentByName("methodToCall.cancel"));
077            // type in the Document Overview Description the text Test Routing Rule
078            waitAndTypeByXpath("//input[@id='document.documentHeader.documentDescription']", "Test Routing Rule");
079            // click the Force Action checkbox
080            waitAndClickByXpath("//input[@id='document.newMaintainableObject.forceAction']");
081            // type in the Description text area the text Test Routing Rule1
082            waitAndTypeByXpath("//textarea[@id='document.newMaintainableObject.description']", "Test Routing Rule1");
083            // type in the Document type name field the text DocumentTypeDocument
084            waitAndTypeByXpath("//input[@id='document.newMaintainableObject.fieldValues(1321~docTypeFullName)']", "DocumentTypeDocument");
085            // lookup on Person
086            waitAndClickByName("methodToCall.performLookup.(!!org.kuali.rice.kim.impl.identity.PersonImpl!!).(((principalName:document.newMaintainableObject.add.personResponsibilities.principalName,))).((`document.newMaintainableObject.add.personResponsibilities.principalName:principalName,`)).((<>)).(([])).((**)).((^^)).((&&)).((/personImpl/)).((~~)).(::::;" + getBaseUrlString() + "/kr/lookup.do;::::).anchor15");
087            waitForPageToLoad();
088            // click the search button
089            waitAndClickByXpath("//input[@name='methodToCall.search' and @value='search']");
090            waitForPageToLoad();
091            // click the return value
092            waitAndClickByLinkText("return value");
093            waitForPageToLoad();
094            // select from the Action Request ACKNOWLEDGE
095            selectByXpath("//select[@id='document.newMaintainableObject.add.personResponsibilities.actionRequestedCd']", "ACKNOWLEDGE");
096            // type in the Priority field the text 1
097            waitAndTypeByXpath("//input[@id='document.newMaintainableObject.add.personResponsibilities.priority']", "1");
098            // click the add button
099            waitAndClickByName("methodToCall.addLine.personResponsibilities.(!!org.kuali.rice.kew.rule.PersonRuleResponsibility!!).(:::;15;:::).anchor15");
100            waitForPageToLoad();
101            checkForIncidentReport("methodToCall.blanketApprove");
102            waitAndClickByName("methodToCall.blanketApprove");
103            waitForPageToLoad();
104            driver.switchTo().defaultContent();  //selectWindow("null");
105            Thread.sleep(2000);
106            waitAndClickByXpath("//img[@alt='doc search']");
107            waitForPageToLoad();
108            assertEquals("Kuali Portal Index", getTitle());
109            selectFrame("iframeportlet");
110            waitAndClickByXpath("//input[@name='methodToCall.search' and @value='search']");
111            waitForPageToLoad();
112           
113            //docId= "link=" + docId;
114            assertTrue(isElementPresent(By.linkText(docId)));
115            if(isElementPresent(By.linkText(docId))){
116                assertEquals("FINAL", getTextByXpath("//table[@id='row']/tbody/tr[1]/td[4]"));
117            }else{
118                assertEquals(docId, getTextByXpath("//table[@id='row']/tbody/tr[1]/td[1]"));
119                assertEquals("FINAL", getTextByXpath("//table[@id='row']/tbody/tr[1]/td[4]"));
120            }
121            
122        }
123    }
124