001    /*
002     * Copyright 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/ecl1.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 org.junit.After;
019    import org.junit.Before;
020    import org.junit.Test;
021    import org.junit.Assert;
022    
023    import com.thoughtworks.selenium.*;
024    
025    /**
026     * tests whether the "Create New Agenda" is working ok 
027     * 
028     * @author Kuali Rice Team (rice.collab@kuali.org)
029     */
030    public class CreateNewAgendaIT {
031    
032        private Selenium selenium;
033    
034        @Before
035        public void setUp() throws Exception {
036            selenium = new DefaultSelenium("localhost", 4444, "*firefox", System.getProperty("remote.public.url"));
037            selenium.start();
038        }
039    
040        @Test
041        public void testCreateNewAgenda() throws Exception {
042            selenium.open(System.getProperty("remote.public.url"));
043            selenium.type("name=__login_user", "admin");
044            selenium.click("css=input[type=\"submit\"]");
045            selenium.waitForPageToLoad("30000");
046            selenium.click("link=Create New Agenda");
047            selenium.waitForPageToLoad("30000");
048            selenium.selectFrame("iframeportlet");
049            selenium.select("name=document.newMaintainableObject.dataObject.namespace", "label=Kuali Rules Test");
050            selenium.type("name=document.newMaintainableObject.dataObject.agenda.name", "Agenda Name 1");
051            selenium.click("id=u244");
052            Thread.sleep(2000);
053            selenium.selectFrame("relative=up");
054            for (int second = 0;; second++) {
055                if (second >= 60)
056                    Assert.fail("timeout");
057                try {
058                    if (selenium.isElementPresent("id=fancybox-frame"))
059                        break;
060                } catch (Exception e) {}
061                Thread.sleep(1000);
062            }
063    
064            selenium.selectFrame("fancybox-frame");
065            for (int second = 0;; second++) {
066                if (second >= 60)
067                    Assert.fail("timeout");
068                try {
069                    if (selenium.isElementPresent("id=u80"))
070                        break;
071                } catch (Exception e) {}
072                Thread.sleep(1000);
073            }
074    
075            selenium.click("id=u80");
076            selenium.waitForPageToLoad("30000");
077            selenium.click("link=return value");
078            Thread.sleep(2000);
079            selenium.waitForPopUp("iframeportlet", "30000");
080            for (int second = 0;; second++) {
081                if (second >= 60)
082                    Assert.fail("timeout");
083                try {
084                    if (selenium.isElementPresent("id=u260_attribute"))
085                        break;
086                } catch (Exception e) {}
087                Thread.sleep(1000);
088            }
089    
090            selenium.select("id=u260_attribute", "label=Campus Agenda");
091            Thread.sleep(2000);
092            selenium.click("id=u588");
093            selenium.selectFrame("relative=up");
094            for (int second = 0;; second++) {
095                if (second >= 60)
096                    Assert.fail("timeout");
097                try {
098                    if (selenium.isElementPresent("id=fancybox-frame"))
099                        break;
100                } catch (Exception e) {}
101                Thread.sleep(1000);
102            }
103    
104            selenium.selectFrame("id=fancybox-frame");
105            for (int second = 0;; second++) {
106                if (second >= 60)
107                    Assert.fail("timeout");
108                try {
109                    if (selenium.isElementPresent("id=u80"))
110                        break;
111                } catch (Exception e) {}
112                Thread.sleep(1000);
113            }
114    
115            selenium.click("id=u80");
116            selenium.waitForPageToLoad("30000");
117            selenium.click("link=return value");
118            Thread.sleep(2000);
119            selenium.waitForPopUp("iframeportlet", "30000");
120            for (int second = 0;; second++) {
121                if (second >= 60)
122                    Assert.fail("timeout");
123                try {
124                    if (selenium.isElementPresent("id=u135"))
125                        break;
126                } catch (Exception e) {}
127                Thread.sleep(1000);
128            }
129    
130            selenium.click("id=u135");
131            selenium.click("id=u156");
132            selenium.waitForPageToLoad("30000");
133            selenium.selectWindow("null");
134            selenium.click("xpath=(//input[@name='imageField'])[2]");
135            selenium.waitForPageToLoad("30000");
136        }
137    
138        @After
139        public void tearDown() throws Exception {
140            selenium.stop();
141        }
142    }