001    /*
002     * Copyright 2006-2012 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.krad.compview;
018    
019    import com.thoughtworks.selenium.*;
020    import org.junit.After;
021    import org.junit.Before;
022    import org.junit.Test;
023    import java.util.regex.Pattern;
024    import static org.junit.Assert.assertNotSame;
025    import static org.junit.Assert.fail;
026    
027    /**
028     * tests that a line in a sub collection can be deleted
029     *
030     * @author Kuali Rice Team (rice.collab@kuali.org)
031     */
032    public class DeleteSubCollectionLineIT {
033        private DefaultSelenium selenium;
034    
035        @Before
036        public void setUp() throws Exception {
037            selenium = new DefaultSelenium("localhost", 4444, "*chrome",  System.getProperty("remote.public.url"));//"http://localhost:8080/"
038            selenium.start();
039        }
040    
041        @Test
042        /**
043         * tests that a line in a sub collection can be deleted
044         */
045        public void deleteSubCollectionLine() throws Exception {
046            selenium.open("/kr-dev/portal.do");
047            selenium.type("name=__login_user", "admin");
048            selenium.click("css=input[type=\"submit\"]");
049            selenium.waitForPageToLoad("30000");
050            selenium.click("link=KRAD");
051            selenium.waitForPageToLoad("30000");
052            selenium.click("link=Uif Components (Kitchen Sink)");
053            selenium.waitForPageToLoad("30000");
054            selenium.selectFrame("iframeportlet");
055            // click on collections page link
056            selenium.click("id=u961");
057            // Thread.sleep(30000);
058            // wait for collections page to load by checking the presence of a sub collection line item
059            for (int second = 0;; second++) {
060                if (second >= 60) fail("timeout");
061                try { if (selenium.isElementPresent("id=u1089_line0_line0_control")) break; } catch (Exception e) {}
062                Thread.sleep(1000);
063            }
064            // change a value in the line to be deleted
065            selenium.type("id=u1089_line0_line0_control", "selenium");
066            // click the delete button
067            selenium.click("id=u1140_line0_line0");
068            // confirm that the input box containing the modified value is not present
069            for (int second = 0;; second++) {
070                if (second >= 60) fail("timeout");
071                try { if (!"selenium".equals(selenium.getValue("id=u1089_line0_line0_control"))) break; } catch (Exception e) {}
072                Thread.sleep(1000);
073            }
074            // verify that the value has changed for the input box in the line that has replaced the deleted one
075            assertNotSame("selenium", selenium.getValue("id=u1089_line0_line0_control"));
076        }
077    
078        @After
079        public void tearDown() throws Exception {
080            selenium.stop();
081        }
082    }