[richfaces-svn-commits] JBoss Rich Faces SVN: r11752 - in trunk/test-applications/seleniumTest/richfaces/src: test/java/org/richfaces/testng and 1 other directory.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Dec 12 14:08:05 EST 2008


Author: andrei_exadel
Date: 2008-12-12 14:08:04 -0500 (Fri, 12 Dec 2008)
New Revision: 11752

Modified:
   trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/CalendarDataModel.java
   trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java
Log:
RF-5235

Modified: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/CalendarDataModel.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/CalendarDataModel.java	2008-12-12 18:56:30 UTC (rev 11751)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/CalendarDataModel.java	2008-12-12 19:08:04 UTC (rev 11752)
@@ -43,11 +43,10 @@
 	Calendar calendar;
 	
 	public CalendarDataModelItemImpl(Date date) {
-		Map<String, String> data = new HashMap<String, String>();
         Calendar c = Calendar.getInstance();
         c.setTime(date);
         day = c.get(Calendar.DAY_OF_MONTH);
-        this.data = data;
+        this.data = "data" + day;
         this.calendar = c;
 	}
 

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-12 18:56:30 UTC (rev 11751)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java	2008-12-12 19:08:04 UTC (rev 11752)
@@ -36,6 +36,7 @@
 import java.util.List;
 import java.util.Locale;
 
+import org.ajax4jsf.javascript.JSLiteral;
 import org.ajax4jsf.template.Template;
 import org.ajax4jsf.util.DateUtils;
 import org.richfaces.AutoTester;
@@ -356,8 +357,176 @@
     		}
     	}
     }
+    
+    
+    // Check current date str
+    private void checkCurrentDate(String date, String message) {
+    	if (message == null) {
+    		message = "";
+    	}
+    	Calendar c = Calendar.getInstance();
+    	if (!date.contains(String.valueOf(c.get(Calendar.YEAR)))) {
+    		Assert.fail(message + "Current date is invalid. Date string ["+date+"] does not contain current year");
+    	}
+    	if (!date.contains(String.valueOf(c.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.US)))) {
+    		Assert.fail(message + "Current date is invalid. Date string ["+date+"] does not contain current month");
+    	}
 
+    	if (!date.contains(String.valueOf(c.get(Calendar.DATE)))) {
+    		Assert.fail(message + "Current date is invalid. Date string ["+date+"] does not contain current day");
+    	}
+
+    	if (!date.contains(String.valueOf(c.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.US)))) {
+    		Assert.fail(message + "Current date is invalid. Date string ["+date+"] does not contain current day of week");
+    	}
+
+    	
+    }
+    
+    private void checkCurrentDate(Calendar c) {
+    	String headerDate = getCalendarDate();
+    	String expected = c.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.US);
+    	if (!headerDate.contains(expected)) {
+    		Assert.fail("Calendar displays invalid date. It should contain ["+expected+"]. But was ["+headerDate+"]");
+    	}
+    	
+    	expected = String.valueOf(c.get(Calendar.YEAR));
+    	if (!headerDate.contains(expected)) {
+    		Assert.fail("Calendar displays invalid date. It should contain ["+expected+"]. But was ["+headerDate+"]");
+    	}
+    }
+    
     @Test
+    public void testJSAPI(Template template) {
+    	renderPage(template, RESET_METHOD);
+    	initIds(getParentId());
+    	
+    	switchToClientMode();
+    	
+    	Calendar c =  Calendar.getInstance();
+    	
+    	// Test getSelectedDate
+    	String date = invokeFromComponent(calendarId, "getSelectedDate", null);
+    	checkCurrentDate(date, "'getSelectedDate' JS API function does not work");
+    	checkCurrentDate(c);
+    	
+    	//Test 'getCurrentYear'
+    	String year = invokeFromComponent(calendarId, "getCurrentYear", null);
+    	String expected = String.valueOf(c.get(Calendar.YEAR));
+    	if (!year.equals(expected)) {
+    		Assert.fail("'getCurrentYear' JS API function does not. Expected year: ["+expected+"]. But was ["+year+"]");
+    	}
+    	
+    	//Test 'getCurrentMonth'
+    	String month = invokeFromComponent(calendarId, "getCurrentMonth", null);
+    	expected = String.valueOf(c.get(Calendar.MONTH));
+    	if (!month.equals(expected)) {
+    		Assert.fail("'getCurrentMonth' JS API function does not. Expected month: ["+expected+"]. But was ["+month+"]");
+    	}
+    	
+   	
+    	//Test 'nextMonth'
+    	c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 1);
+    	invokeFromComponent(calendarId, "nextMonth", null);
+    	month = invokeFromComponent(calendarId, "getCurrentMonth", null);
+    	expected = String.valueOf(c.get(Calendar.MONTH));
+    	if (!month.equals(expected)) {
+    		Assert.fail("'nextMonth' JS API function does not. Expected month after 'nextMonth' method is ["+expected+"]. But was ["+month+"]");
+    	}
+    	checkCurrentDate(c);
+    	
+    	//Test 'nextYear'
+    	c = Calendar.getInstance();
+    	c.set(c.get(Calendar.YEAR) + 1, c.get(Calendar.MONTH) + 1, c.get(Calendar.DATE));
+    	invokeFromComponent(calendarId, "nextYear", null);
+    	year = invokeFromComponent(calendarId, "getCurrentYear", null);
+    	expected = String.valueOf(c.get(Calendar.YEAR));
+    	if (!year.equals(expected)) {
+    		Assert.fail("'nextYear' JS API function does not. Expected year after 'nextYear' method is ["+expected+"]. But was ["+year+"]");
+    	}
+    	checkCurrentDate(c);
+    	
+    	
+    	//Test 'selectDate(date)'
+    	c = Calendar.getInstance();
+    	invokeFromComponent(calendarId, "selectDate", new JSLiteral("new Date()"));
+    	date = invokeFromComponent(calendarId, "getSelectedDate", null);
+    	checkCurrentDate(date, "'selectDate' JS API function does not work. Date should be swtiched to current date. ");
+    	checkCurrentDate(c);
+    	
+    	//Test 'prevMonth()'
+    	c = Calendar.getInstance();
+    	c.set(Calendar.MONTH, c.get(Calendar.MONTH) - 1);
+    	invokeFromComponent(calendarId, "prevMonth", null);
+    	month = invokeFromComponent(calendarId, "getCurrentMonth", null);
+    	expected = String.valueOf(c.get(Calendar.MONTH));
+    	if (!month.equals(expected)) {
+    		Assert.fail("'prevMonth' JS API function does not. Expected month after 'prevMonth' method is ["+expected+"]. But was ["+month+"]");
+    	}
+    	checkCurrentDate(c);
+    	
+    	
+    	//Test 'prevYear'
+    	c = Calendar.getInstance();
+    	c.set(c.get(Calendar.YEAR) - 1, c.get(Calendar.MONTH) - 1, c.get(Calendar.DATE));
+    	invokeFromComponent(calendarId, "prevYear", null);
+    	year = invokeFromComponent(calendarId, "getCurrentYear", null);
+    	expected = String.valueOf(c.get(Calendar.YEAR));
+    	if (!year.equals(expected)) {
+    		Assert.fail("'prevYear' JS API function does not. Expected year after 'prevYear' method is ["+expected+"]. But was ["+year+"]");
+    	}
+    	checkCurrentDate(c);
+    	
+    	//Test 'today'
+    	c = Calendar.getInstance();
+    	invokeFromComponent(calendarId, "today", null);
+    	date = invokeFromComponent(calendarId, "getSelectedDate", null);
+    	checkCurrentDate(date, "'today' JS API function does not work. Date should be swtiched to current date");
+    	checkCurrentDate(c);
+    	
+    	//Test 'getData'
+    	c = Calendar.getInstance();
+    	String data = invokeFromComponent(calendarId, "getData",  new JSLiteral("new Date()"));
+    	String expectedData = "data" + c.get(Calendar.DATE);
+    	if (!data.equals("data" + c.get(Calendar.DATE))) {
+    		Assert.fail("'getData' JS API function does not work. Expected data for current date is ["+expectedData+"]. But was ["+data+"]");
+    	}
+    	
+    	//Test 'resetSelectedDate'
+    	c = Calendar.getInstance();
+    	invokeFromComponent(calendarId, "resetSelectedDate", null);
+    	date = selenium.getText(dateSelectionXpath);
+    	if (!"".equals(date)) {
+    		Assert.fail("'resetSelectedDate' JS API function does not work. Selected date should not be displayed on component footer. But was ["+date+"]");
+    	}
+    	date = invokeFromComponent(calendarId, "getSelectedDate", null);
+    	if (!"null".equals(date)) {
+    		Assert.fail("'resetSelectedDate' JS API function does not work. Selected date was not reset. Is was ["+date+"]");
+    	}
+    	checkCurrentDate(c);
+    	
+    	
+    	//Test doCollapse() 
+    	setPopup(true);
+    	setup();
+    	showPopup();  // Show popup
+    	invokeFromComponent(calendarId, "doCollapse", null);  // Hide popup
+    	AssertNotVisible(calendarId, "'doCollapse' does not work. Calendar popup has not been hidden");
+    	
+    	// Test doExpand 
+    	invokeFromComponent(calendarId, "doExpand", null); // Show popup
+    	AssertVisible(calendarId, "'doExpand' does not work. Calendar popup has not been shown");
+    	
+    	// Test doSwitch
+    	invokeFromComponent(calendarId, "doSwitch", null);  // Hide popup
+    	AssertNotVisible(calendarId, "'doSwitch' does not work. Calendar popup has not been hidden");
+    	invokeFromComponent(calendarId, "doSwitch", null);  // Show popup
+    	AssertVisible(calendarId, "'doSwitch' does not work. Calendar popup has not been shown");
+    	
+    	
+    }
+
+    @Test
     public void testRenderedAttribute(Template template) {
     	AutoTester tester = getAutoTester(this);
     	tester.renderPage(template, RESET_METHOD);




More information about the richfaces-svn-commits mailing list