[richfaces-svn-commits] JBoss Rich Faces SVN: r11589 - in trunk/test-applications/seleniumTest/richfaces/src: main/webapp/pages/calendar and 1 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Dec 5 11:37:52 EST 2008


Author: andrei_exadel
Date: 2008-12-05 11:37:52 -0500 (Fri, 05 Dec 2008)
New Revision: 11589

Modified:
   trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/CalendarTestBean.java
   trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/calendar/calendarTest.xhtml
   trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java
Log:
RF-5152

Modified: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/CalendarTestBean.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/CalendarTestBean.java	2008-12-05 16:01:56 UTC (rev 11588)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/CalendarTestBean.java	2008-12-05 16:37:52 UTC (rev 11589)
@@ -73,6 +73,11 @@
     private String mode = UICalendar.AJAX_MODE;
 
     private String status;
+    
+    private Date preloadDateRangeStart;
+    
+    private Date preloadDateRangeEnd;
+    
 
     public CalendarTestBean() {
         selectedDate = DEFAULT_DATE;
@@ -81,6 +86,11 @@
         datePattern = DATE_PATTERN;
         locale = LOCALE;
         timeZone = TIME_ZONE;
+        Calendar c = getLocale()!=null ? Calendar.getInstance(getLocale()) : Calendar.getInstance();
+        c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH) - 1, 1); 
+        preloadDateRangeStart = c.getTime(); // Set preloadBegin by the first day of the last month
+        c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 3, 0);
+        preloadDateRangeEnd = c.getTime(); // Set preloadEnd by the last day of the next month
     }
 
     public Date getSelectedDate() {
@@ -204,6 +214,7 @@
         status = "";
         selectedDate = new Date();
         isPopup = false;
+        currentDate = new Date();
     }
 
     public String resetAction() {
@@ -274,4 +285,32 @@
         this.isPopup = isPopup;
     }
 
+	/**
+	 * @return the preloadDateRangeStart
+	 */
+	public Date getPreloadDateRangeStart() {
+		return preloadDateRangeStart;
+	}
+
+	/**
+	 * @param preloadDateRangeStart the preloadDateRangeStart to set
+	 */
+	public void setPreloadDateRangeStart(Date preloadDateRangeStart) {
+		this.preloadDateRangeStart = preloadDateRangeStart;
+	}
+
+	/**
+	 * @return the preloadDateRangeEnd
+	 */
+	public Date getPreloadDateRangeEnd() {
+		return preloadDateRangeEnd;
+	}
+
+	/**
+	 * @param preloadDateRangeEnd the preloadDateRangeEnd to set
+	 */
+	public void setPreloadDateRangeEnd(Date preloadDateRangeEnd) {
+		this.preloadDateRangeEnd = preloadDateRangeEnd;
+	}
+
 }

Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/calendar/calendarTest.xhtml
===================================================================
(Binary files differ)

Modified: trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java	2008-12-05 16:01:56 UTC (rev 11588)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java	2008-12-05 16:37:52 UTC (rev 11589)
@@ -152,13 +152,25 @@
         String weekNumId = calendarId + "WeekNum2";
         selenium.click("//tr[@id='" + weekNumId + "']/td[starts-with(@class, '" + availableDayCellClass + "')]");
     }
-
+    
     void changeCurrentDate(boolean wait4ajax) {
         selenium.click("//td[@id='" + calendarHeaderId + "']/table/tbody/tr/td/div");
         if (wait4ajax) {
             waitForAjaxCompletion();
         }
     }
+    
+    Calendar changeCurrentDate(Calendar c, boolean wait4ajax) {
+        selenium.click("//td[@id='" + calendarHeaderId + "']/table/tbody/tr/td/div");
+        if (wait4ajax) {
+            waitForAjaxCompletion();
+        }
+        c.set(Calendar.YEAR, c.get(Calendar.YEAR) - 1);
+        if (getCalendarDate().indexOf(c.get(Calendar.YEAR)) == -1) {
+        	Assert.fail("Date is incorrect");
+        }
+        return c;
+    }
 
     void reset() {
         clickCommandAndWait(resetActionId);
@@ -172,7 +184,27 @@
     	selenium.click(timeSelectionXpath);
     }
     
-    void _testModelDataAppliedToClient() {
+    String getCalendarDate() {
+    	return selenium.getText(currentDateHeaderXpath);
+    }
+    
+    Calendar nextMonth(Calendar c) {
+    	String date = getCalendarDate();
+    	selenium.click("//td[@id='" + calendarHeaderId + "']/table/tbody/tr/td[@class='rich-calendar-tool'][3]/div");
+    	Assert.assertFalse(getCalendarDate().equals(date), "Current date has not been changed after next month clicked");
+    	c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 1);
+    	return c;
+    }
+    
+    Calendar previousMonth(Calendar c) {
+    	String date = getCalendarDate();
+    	selenium.click("//td[@id='" + calendarHeaderId + "']/table/tbody/tr/td[@class='rich-calendar-tool'][2]/div");
+    	Assert.assertFalse(getCalendarDate().equals(date), "Current date has not been changed after previous month clicked");
+    	c.set(Calendar.MONTH, c.get(Calendar.MONTH) - 1);
+    	return c;
+    }
+    
+    void _testModelDataAppliedToClient(Calendar c) {
     	 String currentDate = selenium.getText(dateSelectionXpath);
          selenium.click("//table[@id='"+calendarId+"']/tbody/tr/td[text() = '13']");
          
@@ -180,8 +212,6 @@
          	Assert.fail("Enabled attribute of data model was not applied for client data. 13th day should disabled and should force date change after click.");
          }
          
-         Calendar c = Calendar.getInstance();
-         c.setTime(new Date());
          int currentMonth = c.get(Calendar.MONTH);
          
          String cellDay7StyleClass = selenium.getAttribute("//table[@id='"+calendarId+"']/tbody/tr/td[text() = '7']/@class");
@@ -198,19 +228,55 @@
     }
     
     @Test
+    public void testClientMode(Template template) {
+    	renderPage(template, RESET_METHOD);
+        initIds(getParentId());
+        switchToClientMode();
+        
+        Calendar c = Calendar.getInstance();
+        c = previousMonth(c);
+		Assert.assertTrue(runScript("window.done").equals(Boolean.FALSE.toString().toLowerCase()), "Change of current date should not force ajax request in client mode.");
+        
+        try {
+			_testModelDataAppliedToClient(c);
+			c = nextMonth(c);
+			_testModelDataAppliedToClient(c);
+			c = nextMonth(c);
+			_testModelDataAppliedToClient(c);
+		} catch (AssertionError e) {
+			Assert.fail("Calendar does not preload data in client mode for interval defined by 'preloadDateRangeBegin' & 'preloadDateRangeEnd'. It should preload data for last, current & next month. " + e);
+		}
+        
+		boolean error = false;
+		c = nextMonth(c);
+		try {
+			_testModelDataAppliedToClient(c);
+		}catch (AssertionError e) {
+			error = true;
+		}
+		
+		if (!error) {
+			Assert.fail("Calendar pre-loaded data for interval that not defined by 'preloadDateRangeBegin' & 'preloadDateRangeEnd'");
+		}
+		
+    }
+    
+    @Test
     public void testDataModelAttribute(Template template) {
     	renderPage(template, RESET_METHOD);
         initIds(getParentId());
         
-        _testModelDataAppliedToClient();
+        Calendar c = Calendar.getInstance();
         
+        _testModelDataAppliedToClient(c);
+        
         try {
-        	changeCurrentDate(true);
+        	c = changeCurrentDate(c, true);
         }catch (SeleniumException exception) {
 			Assert.fail("Celendar in ajax mode does not request for the next portion of data after current date has been changed");
 		}
         
-        _testModelDataAppliedToClient();
+        _testModelDataAppliedToClient(c);
       
     }
     
@@ -378,7 +444,7 @@
 
     @Test
     public void testValueAndCurrentDateOfCalendarInCaseOfPopupTrue(Template template) {
-        renderPage(template);
+        renderPage(template, RESET_METHOD);
         initIds(getParentId());
         String expectedSelectedDate = "03/03/2007 11:00";
         String expectedCurrentDate = "04/04/2008 13:00";
@@ -425,7 +491,7 @@
 
     @Test
     public void testValueAndCurrentDateOfCalendarWithPopupFalse(Template template) {
-        renderPage(template, null);
+        renderPage(template, RESET_METHOD);
         initIds(getParentId());
         String expectedSelectedDate = "03/03/2007 11:00";
         String expectedCurrentDate = "04/04/2008 13:00";




More information about the richfaces-svn-commits mailing list