001 /** 002 * Copyright 2004-2013 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 org.kuali.hr.time.util; 017 018 import org.junit.After; 019 import org.junit.Before; 020 import org.junit.Ignore; 021 import org.junit.Test; 022 023 import com.thoughtworks.selenium.DefaultSelenium; 024 import com.thoughtworks.selenium.SeleneseTestCase; 025 026 @Ignore 027 public class UICalendarTest extends SeleneseTestCase { 028 @Before 029 public void setUp() throws Exception { 030 selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://ci.kpme.kuali.org:9080/"); 031 // selenium = new DefaultSelenium("localhost", 4444, "*firefox /Applications/Firefox.app/Contents/MacOS/firefox-bin", "http://ci.kpme.kuali.org:9080/"); 032 // set speed to 1 sec between each action. this is mainly for the ajax call to get the earn code. 033 selenium.setSpeed("1000"); 034 try { 035 selenium.start(); 036 } catch (Exception e) { 037 038 } 039 } 040 041 /** 042 * Test adding and deleting a timeblock 043 * 044 * @throws Exception 045 */ 046 @Test 047 public void testAddAndDeleteTimeBlock() throws Exception { 048 openPageAndLogin("/tk-dev/TimeDetail.do"); 049 selenium.waitForPageToLoad("5000"); 050 selenium.click("id=day_9"); 051 selenium.select("id=assignment", "value=1_1234_1"); 052 selenium.type("id=beginTimeField", "08:00 AM"); 053 selenium.type("id=endTimeField", "05:00 PM"); 054 selenium.click("//button[@type='button']"); 055 selenium.waitForPageToLoad("5000"); 056 selenium.click("class=event-delete"); 057 selenium.waitForPageToLoad("3000"); 058 verifyFalse(selenium.isTextPresent("08:00 AM")); 059 verifyFalse(selenium.isTextPresent("05:00 PM")); 060 } 061 062 /** 063 * This is to test that the entry fields for time / hours / amount should be correspondent with the selected earn code 064 * 065 * @throws Exception 066 */ 067 @Test 068 public void testTestEarnCodeSwitch() throws Exception { 069 openPageAndLogin("/tk-dev/TimeDetail.do"); 070 selenium.click("id=day_10"); 071 selenium.select("id=assignment", "label=work area description : $0.00 Rcd 1 TEST-DEPT"); 072 // verify the time entry fields are presented when the earn code type is "TIME" 073 verifyTrue(selenium.isTextPresent("exact:In:")); 074 verifyTrue(selenium.isTextPresent("exact:Out:")); 075 verifyTrue(selenium.isTextPresent("RGH : REGULAR")); 076 // verify the time entry fields are presented when the earn code type is "HOURS" 077 selenium.select("id=earnCode", "label=SCK : SICK"); 078 verifyTrue(selenium.isTextPresent("exact:Hours:")); 079 // verify the time entry fields are presented when the earn code type is "AMOUNT" 080 selenium.select("id=earnCode", "label=TIP : Tips"); 081 verifyTrue(selenium.isTextPresent("exact:Amount:")); 082 } 083 084 /** 085 * Test clocking in and out 086 * 087 * @throws Exception 088 */ 089 @Test 090 public void testTestClockInAndOut() throws Exception { 091 openPageAndLogin("/tk-dev/Clock.do"); 092 selenium.waitForPageToLoad("3000"); 093 selenium.select("id=assignment", "label=work area description : $0.00 Rcd 1 TEST-DEPT"); 094 // clock in 095 selenium.click("id=clock-button"); 096 selenium.waitForPageToLoad("3000"); 097 // verify the clock out button is presented 098 verifyEquals("Clock Out", selenium.getValue("id=clock-button")); 099 // clock out 100 selenium.click("id=clock-button"); 101 // go to the time detail page and make sure clocking in/out is successful 102 selenium.click("link=Time Detail"); 103 selenium.waitForPageToLoad("3000"); 104 verifyTrue(selenium.isTextPresent("exact:RGN: REGULAR")); 105 } 106 107 @After 108 public void tearDown() throws Exception { 109 selenium.stop(); 110 } 111 112 private void openPageAndLogin(String pageLink) { 113 selenium.open(pageLink); 114 selenium.type("__login_user", "admin"); 115 selenium.click("//input[@name='login']"); 116 selenium.waitForPageToLoad("2000"); 117 } 118 } 119 120