[jboss-cvs] jboss-seam/src/test/misc/org/jboss/seam/test ...
Peter Muir
peter at bleepbleep.org.uk
Fri Jul 13 12:08:46 EDT 2007
User: pmuir
Date: 07/07/13 12:08:46
Modified: src/test/misc/org/jboss/seam/test testng.xml
SeamTestTest.java Person.java PageflowTest.java
Added: src/test/misc/org/jboss/seam/test TimeZoneTest.java
ELTest.java DataModelTest.java LocaleTest.java
MailTest.java
Log:
Better test scripts and some more tests
Revision Changes Path
1.10 +6 -0 jboss-seam/src/test/misc/org/jboss/seam/test/testng.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: testng.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/test/misc/org/jboss/seam/test/testng.xml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- testng.xml 5 May 2007 16:37:52 -0000 1.9
+++ testng.xml 13 Jul 2007 16:08:46 -0000 1.10
@@ -16,6 +16,12 @@
<class name="org.jboss.seam.test.DependencyTest"/>
<class name="org.jboss.seam.test.DependencyTest"/>
<class name="org.jboss.seam.test.SeamTestTest"/>
+ <class name="org.jboss.seam.test.MailTest"/>
+ <class name="org.jboss.seam.test.ELTest"/>
+ <class name="org.jboss.seam.test.DataModelTest"/>
+ <class name="org.jboss.seam.test.TimeZoneTest"/>
+ <class name="org.jboss.seam.test.LocaleTest"/>
+ <class name="org.jboss.seam.test.PageflowTest"/>
</classes>
</test>
</suite>
1.3 +15 -2 jboss-seam/src/test/misc/org/jboss/seam/test/SeamTestTest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: SeamTestTest.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/test/misc/org/jboss/seam/test/SeamTestTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- SeamTestTest.java 15 Jun 2007 21:45:03 -0000 1.2
+++ SeamTestTest.java 13 Jul 2007 16:08:46 -0000 1.3
@@ -1,5 +1,8 @@
package org.jboss.seam.test;
+import javax.faces.el.MethodBinding;
+
+import org.jboss.seam.jsf.UnifiedELMethodBinding;
import org.jboss.seam.mock.SeamTest;
import org.testng.annotations.Test;
@@ -22,13 +25,23 @@
@Override
protected void updateModelValues() throws Exception
{
- setValue("#{user.name}", PETER_NAME);
+ setValue("#{person.name}", PETER_NAME);
}
@Override
protected void renderResponse() throws Exception
{
- assert getValue("#{user.name}").equals(PETER_NAME);
+ assert getValue("#{person.name}").equals(PETER_NAME);
+ }
+
+ @Override
+ protected void invokeApplication() throws Exception
+ {
+ MethodBinding methodBinding = new UnifiedELMethodBinding("#{action.go}", new Class[0]);
+ Object result = methodBinding.invoke(getFacesContext(), new Object[0]);
+
+ assert result instanceof String;
+ assert "success".equals(result);
}
}.run();
}
1.2 +25 -2 jboss-seam/src/test/misc/org/jboss/seam/test/Person.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Person.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/test/misc/org/jboss/seam/test/Person.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- Person.java 5 May 2007 16:37:41 -0000 1.1
+++ Person.java 13 Jul 2007 16:08:46 -0000 1.2
@@ -1,12 +1,21 @@
package org.jboss.seam.test;
+import java.io.Serializable;
+
import org.jboss.seam.annotations.Name;
- at Name("user")
-public class Person
+ at Name("person")
+public class Person implements Serializable
{
+ public Person(String name)
+ {
+ this.name = name;
+ }
+
+ public Person() {}
+
private String name;
public String getName()
@@ -19,4 +28,18 @@
this.name = name;
}
+ @Override
+ public boolean equals(Object other)
+ {
+ if (other instanceof Person)
+ {
+ Person that = (Person) other;
+ return (this.name == null && that.name == null) || (this.name != null && this.name.equals(that.name));
+ }
+ else
+ {
+ return false;
+ }
+ }
+
}
1.6 +20 -18 jboss-seam/src/test/misc/org/jboss/seam/test/PageflowTest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PageflowTest.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/test/misc/org/jboss/seam/test/PageflowTest.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- PageflowTest.java 20 Jun 2007 08:23:20 -0000 1.5
+++ PageflowTest.java 13 Jul 2007 16:08:46 -0000 1.6
@@ -15,7 +15,7 @@
public class PageflowTest
{
- /*JbpmConfiguration jbpmConfiguration = JbpmConfiguration.parseXmlString(
+ JbpmConfiguration jbpmConfiguration = JbpmConfiguration.parseXmlString(
"<jbpm-configuration />"
);
@@ -38,12 +38,12 @@
@Test
public void testPageflowWithStartPage() {
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-
- ProcessDefinition processDefinition = PageflowHelper.parseXmlString(
+ StringReader stringReader = new StringReader(
"<pageflow-definition name='hoepla'>" +
- " <start-page name='start' />" +
- "</pageflow-definition>"
- );
+ " <start-page name='start' view-id='/start.xhtml'/>" +
+ "</pageflow-definition>");
+ PageflowParser pageflowParser = new PageflowParser(stringReader);
+ ProcessDefinition processDefinition = pageflowParser.readProcessDefinition();
assert "start".equals(processDefinition.getStartState().getName());
@@ -56,7 +56,7 @@
StringReader stringReader = new StringReader(
"<pageflow-definition name='hoepla' start-page='start'>" +
- " <page name='start' />" +
+ " <page name='start' view-id='/start.xhtml'/>" +
"</pageflow-definition>"
);
PageflowParser pageflowParser = new PageflowParser(stringReader);
@@ -66,9 +66,9 @@
jbpmContext.close();
}
- @Test
+ /*@Test
public void testOrderPageflow() {
- ProcessDefinition pageflowDefinition = PageflowHelper.parseXmlString(
+ StringReader stringReader = new StringReader(
"<pageflow-definition name='checkout'>" +
" <start-state name='start'>" +
" <transition to='confirm'/>" +
@@ -89,20 +89,22 @@
" </page>" +
"</pageflow-definition>"
);
+ PageflowParser pageflowParser = new PageflowParser(stringReader);
+ ProcessDefinition processDefinition = pageflowParser.readProcessDefinition();
- StartState start = (StartState) pageflowDefinition.getStartState();
- Page confirm = (Page) pageflowDefinition.getNode("confirm");
- Page complete = (Page) pageflowDefinition.getNode("complete");
- Page cont = (Page) pageflowDefinition.getNode("continue");
+ StartState start = (StartState) processDefinition.getStartState();
+ Page confirm = (Page) processDefinition.getNode("confirm");
+ Page complete = (Page) processDefinition.getNode("complete");
+ Page cont = (Page) processDefinition.getNode("continue");
assert confirm!=null;
assert complete!=null;
assert cont!=null;
- ProcessInstance pageflowInstance = new ProcessInstance(pageflowDefinition);
- Token token = pageflowInstance.getRootToken();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ Token token = processInstance.getRootToken();
assert start.equals(token.getNode());
- pageflowInstance.signal();
+ processInstance.signal();
}*/
}
1.1 date: 2007/07/13 16:08:46; author: pmuir; state: Exp;jboss-seam/src/test/misc/org/jboss/seam/test/TimeZoneTest.java
Index: TimeZoneTest.java
===================================================================
package org.jboss.seam.test;
import java.io.IOException;
import java.util.Locale;
import java.util.TimeZone;
import javax.faces.component.UIOutput;
import javax.faces.event.ValueChangeEvent;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.seam.international.LocaleSelector;
import org.jboss.seam.international.TimeZoneSelector;
import org.jboss.seam.mock.SeamTest;
import org.testng.annotations.Test;
public class TimeZoneTest extends SeamTest
{
@Override
protected void startJbossEmbeddedIfNecessary() throws DeploymentException, IOException {}
@Test
public void timeZoneTest() throws Exception
{
new FacesRequest()
{
@Override
protected void invokeApplication() throws Exception
{
assert org.jboss.seam.international.TimeZone.instance().equals(java.util.TimeZone.getDefault());
TimeZone cet = TimeZone.getTimeZone("CET");
TimeZoneSelector.instance().setTimeZone(cet);
assert org.jboss.seam.international.TimeZone.instance().equals(cet);
TimeZoneSelector.instance().setTimeZoneId("CET");
assert org.jboss.seam.international.TimeZone.instance().equals(cet);
TimeZoneSelector.instance().selectTimeZone("GMT");
assert org.jboss.seam.international.TimeZone.instance().getID().equals("GMT");
ValueChangeEvent valueChangeEvent = new ValueChangeEvent(new UIOutput(), "GMT", "PST");
TimeZoneSelector.instance().select(valueChangeEvent);
assert org.jboss.seam.international.TimeZone.instance().getID().equals("PST");
// TODO Test cookie stuff (need to extend Mocks for this)
}
}.run();
}
}
1.1 date: 2007/07/13 16:08:46; author: pmuir; state: Exp;jboss-seam/src/test/misc/org/jboss/seam/test/ELTest.java
Index: ELTest.java
===================================================================
package org.jboss.seam.test;
import javax.el.ELException;
import javax.faces.component.UINamingContainer;
import javax.faces.el.MethodBinding;
import javax.faces.el.ValueBinding;
import org.jboss.seam.jsf.UnifiedELMethodBinding;
import org.jboss.seam.jsf.UnifiedELValueBinding;
import org.jboss.seam.mock.SeamTest;
import org.testng.annotations.Test;
public class ELTest extends SeamTest
{
@Override
protected void startJbossEmbeddedIfNecessary()
throws org.jboss.deployers.spi.DeploymentException ,java.io.IOException {}
@Test
public void testUnifiedELMethodBinding() throws Exception
{
new FacesRequest()
{
@Override
protected void invokeApplication() throws Exception
{
MethodBinding methodBinding = new UnifiedELMethodBinding("#{action.go}", new Class[0]);
assert "#{action.go}".equals(methodBinding.getExpressionString());
assert String.class.equals(methodBinding.getType(getFacesContext()));
Object result = methodBinding.invoke(getFacesContext(), new Object[0]);
assert result instanceof String;
assert "success".equals(result);
}
}.run();
}
@Test
public void testUnifiedELMethodBindingWithNull() throws Exception
{
new FacesRequest()
{
@Override
protected void invokeApplication() throws Exception
{
MethodBinding methodBinding = new UnifiedELMethodBinding("#{action.go}", null);
assert String.class.equals(methodBinding.getType(getFacesContext()));
Object result = methodBinding.invoke(getFacesContext(), null);
assert result instanceof String;
assert "success".equals(result);
}
}.run();
}
@Test
public void testEmptyUnifiedELMethodBinding() throws Exception
{
new FacesRequest()
{
@Override
protected void invokeApplication() throws Exception
{
MethodBinding methodBinding = new UnifiedELMethodBinding();
boolean failed = false;
try
{
Object result = methodBinding.invoke(getFacesContext(), null);
}
catch (ELException e) {
failed = true;
}
assert failed;
}
}.run();
}
@Test
public void testUnifiedELValueBinding() throws Exception
{
new FacesRequest()
{
@Override
protected void invokeApplication() throws Exception
{
ValueBinding valueBinding = new UnifiedELValueBinding("#{person.name}");
assert "#{person.name}".equals(valueBinding.getExpressionString());
assert !valueBinding.isReadOnly(getFacesContext());
assert String.class.equals(valueBinding.getType(getFacesContext()));
valueBinding.setValue(getFacesContext(), "Pete");
assert "Pete".equals(valueBinding.getValue(getFacesContext()));
}
}.run();
}
@Test
public void testEmptyUnifiedELValueBinding() throws Exception
{
new FacesRequest()
{
@Override
protected void invokeApplication() throws Exception
{
ValueBinding valueBinding = new UnifiedELValueBinding();
boolean failed = false;
try
{
valueBinding.setValue(getFacesContext(), "Pete");
valueBinding.getValue(getFacesContext());
}
catch (ELException e) {
failed = true;
}
assert failed;
}
}.run();
}
}
1.1 date: 2007/07/13 16:08:46; author: pmuir; state: Exp;jboss-seam/src/test/misc/org/jboss/seam/test/DataModelTest.java
Index: DataModelTest.java
===================================================================
package org.jboss.seam.test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.NotSerializableException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.faces.model.ListDataModel;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.seam.faces.DataModels;
import org.jboss.seam.framework.EntityQuery;
import org.jboss.seam.jsf.ArrayDataModel;
import org.jboss.seam.jsf.MapDataModel;
import org.jboss.seam.jsf.SetDataModel;
import org.jboss.seam.mock.SeamTest;
import org.testng.annotations.Test;
public class DataModelTest extends SeamTest
{
@Override
protected void startJbossEmbeddedIfNecessary() throws DeploymentException, IOException {}
@Test
public void testDataModels() throws Exception
{
new FacesRequest()
{
@Override
protected void invokeApplication() throws Exception
{
DataModels dataModels = DataModels.instance();
assert dataModels.getDataModel(new ArrayList()) instanceof ListDataModel;
assert dataModels.getDataModel(new HashMap()) instanceof MapDataModel;
assert dataModels.getDataModel(new HashSet()) instanceof SetDataModel;
assert dataModels.getDataModel(new Object[0]) instanceof ArrayDataModel;
// TODO assert dataModels.getDataModel(query) instanceof ListDataModel;
boolean failed = false;
try
{
dataModels.getDataModel(new Foo());
}
catch (IllegalArgumentException e)
{
failed = true;
}
assert failed;
}
}.run();
}
@Test
public void testArrayDataModelSerialization() throws Exception
{
String[] array = {"Seam", "Hibernate"};
javax.faces.model.ArrayDataModel arrayDataModel = new ArrayDataModel(array);
arrayDataModel.setRowIndex(1);
Object object = null;
try
{
object = serialize(arrayDataModel);
}
catch (NotSerializableException e)
{
assert false;
}
assert object instanceof javax.faces.model.ArrayDataModel;
javax.faces.model.ArrayDataModel serializedArrayDataModel = (javax.faces.model.ArrayDataModel) object;
assert serializedArrayDataModel.getRowIndex() == 1;
String[] serializedArray = (String[]) serializedArrayDataModel.getWrappedData();
assert array[0].equals(serializedArray[0]);
assert array[1].equals(serializedArray[1]);
}
// Utility to serialize an object
private Object serialize(Object object) throws Exception
{
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(object);
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bis);
return ois.readObject();
}
@Test
public void testListDataModelSerialization() throws Exception
{
List<String> list = Arrays.asList("Seam", "Hibernate");
javax.faces.model.ListDataModel listDataModel = new org.jboss.seam.jsf.ListDataModel(list);
listDataModel.setRowIndex(1);
Object object = null;
try
{
object = serialize(listDataModel);
}
catch (NotSerializableException e)
{
assert false;
}
assert object instanceof javax.faces.model.ListDataModel;
javax.faces.model.ListDataModel serializedListDataModel = (javax.faces.model.ListDataModel) object;
List<String> serializedList = (List<String>) serializedListDataModel.getWrappedData();
assert serializedListDataModel.getRowIndex() == 1;
assert list.get(0).equals(serializedList.get(0));
assert list.get(1).equals(serializedList.get(1));
}
@Test
public void testMapDataModel() throws IOException, ClassNotFoundException
{
Map<String, Person> map = new HashMap<String, Person>();
map.put("0", new Person("Gavin"));
map.put("1", new Person("Tom"));
javax.faces.model.DataModel mapDataModel = new MapDataModel();
assert mapDataModel.getRowCount() == -1;
assert mapDataModel.getRowData() == null;
assert !mapDataModel.isRowAvailable();
mapDataModel = new MapDataModel(map);
assert mapDataModel.getWrappedData() instanceof Map;
assert map.get("0").equals(((Map) mapDataModel.getWrappedData()).get("0"));
assert map.get("1").equals(((Map) mapDataModel.getWrappedData()).get("1"));
mapDataModel.setRowIndex(10);
assert !mapDataModel.isRowAvailable();
boolean failed = false;
try
{
mapDataModel.getRowData();
}
catch (IllegalArgumentException e)
{
failed = true;
}
assert failed;
mapDataModel.setRowIndex(1);
assert mapDataModel.isRowAvailable();
assert mapDataModel.getRowIndex() == 1;
assert mapDataModel.getRowCount() == 2;
// JBSEAM-1660
/*try
{
mapDataModel.setWrappedData(null);
}
catch (NullPointerException e)
{
// Spec allows passing null
assert false;
}*/
}
//JBSEAM-1659
/*@Test
public void testMapDataModelSerialization() throws Exception
{
Map<String, Person> map = new HashMap<String, Person>();
map.put("0", new Person("Gavin"));
map.put("1", new Person("Tom"));
javax.faces.model.DataModel mapDataModel = new MapDataModel(map);
mapDataModel.setRowIndex(1);
Object object = null;
try
{
object = serialize(mapDataModel);
}
catch (NotSerializableException e)
{
assert false;
}
assert object instanceof javax.faces.model.DataModel;
javax.faces.model.DataModel serializedMapDataModel = (javax.faces.model.DataModel) object;
Map<String, Person> serializedMap = (Map<String, Person>) serializedMapDataModel.getWrappedData();
assert serializedMapDataModel.getRowIndex() == 1;
assert map.get("0").equals(serializedMap.get("0"));
assert map.get("1").equals(serializedMap.get("1"));
}*/
@Test
public void testSetDataModel() throws IOException, ClassNotFoundException
{
Person gavin = new Person("Gavin");
Person tom = new Person("Tom");
Set<Person> set = new HashSet<Person>();
set.add(gavin);
set.add(tom);
javax.faces.model.DataModel setDataModel = new SetDataModel();
assert setDataModel.getRowCount() == -1;
assert setDataModel.getRowData() == null;
assert !setDataModel.isRowAvailable();
setDataModel = new SetDataModel(set);
assert setDataModel.getWrappedData() instanceof Set;
assert set.contains(gavin);
assert set.contains(tom);
setDataModel.setRowIndex(10);
assert !setDataModel.isRowAvailable();
boolean failed = false;
try
{
setDataModel.getRowData();
}
catch (IllegalArgumentException e)
{
failed = true;
}
assert failed;
setDataModel.setRowIndex(1);
assert setDataModel.isRowAvailable();
assert setDataModel.getRowIndex() == 1;
assert setDataModel.getRowCount() == 2;
// JBSEAM-1660
/*try
{
setDataModel.setWrappedData(null);
}
catch (NullPointerException e)
{
// Spec allows passing null
assert false;
}*/
}
@Test
public void testSetDataModelSerialization() throws Exception
{
Person gavin = new Person("Gavin");
Person tom = new Person("Tom");
Set<Person> set = new HashSet<Person>();
set.add(gavin);
set.add(tom);
javax.faces.model.DataModel setDataModel = new SetDataModel(set);
setDataModel.setRowIndex(1);
Object object = null;
try
{
object = serialize(setDataModel);
}
catch (NotSerializableException e)
{
assert false;
}
assert object instanceof javax.faces.model.DataModel;
javax.faces.model.DataModel serializedSetDataModel = (javax.faces.model.DataModel) object;
Set<Person> serializedSet = (Set<Person>) serializedSetDataModel.getWrappedData();
assert serializedSetDataModel.getRowIndex() == 1;
assert serializedSet.contains(gavin);
assert serializedSet.contains(tom);
}
}
1.1 date: 2007/07/13 16:08:46; author: pmuir; state: Exp;jboss-seam/src/test/misc/org/jboss/seam/test/LocaleTest.java
Index: LocaleTest.java
===================================================================
package org.jboss.seam.test;
import java.io.IOException;
import java.util.Locale;
import java.util.TimeZone;
import javax.ejb.Local;
import javax.faces.component.UIComponentBase;
import javax.faces.component.UIOutput;
import javax.faces.event.ValueChangeEvent;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.seam.international.LocaleSelector;
import org.jboss.seam.international.TimeZoneSelector;
import org.jboss.seam.mock.SeamTest;
import org.testng.annotations.Test;
public class LocaleTest extends SeamTest
{
@Override
protected void startJbossEmbeddedIfNecessary() throws DeploymentException, IOException {}
@Test
public void localeTest() throws Exception
{
new FacesRequest()
{
@Override
protected void invokeApplication() throws Exception
{
assert org.jboss.seam.international.Locale.instance().equals(Locale.getDefault());
LocaleSelector.instance().setLocale(Locale.UK);
assert org.jboss.seam.international.Locale.instance().equals(Locale.UK);
LocaleSelector.instance().setLocaleString(Locale.FRANCE.toString());
LocaleSelector.instance().getLanguage().equals(Locale.FRANCE.getLanguage());
LocaleSelector.instance().getCountry().equals(Locale.FRANCE.getCountry());
LocaleSelector.instance().getVariant().equals(Locale.FRANCE.getVariant());
assert org.jboss.seam.international.Locale.instance().equals(Locale.FRANCE);
assert LocaleSelector.instance().getLocaleString().equals(Locale.FRANCE.toString());
LocaleSelector.instance().select();
assert org.jboss.seam.international.Locale.instance().equals(Locale.FRANCE);
LocaleSelector.instance().selectLanguage(Locale.JAPANESE.getLanguage());
assert org.jboss.seam.international.Locale.instance().getLanguage().equals(Locale.JAPANESE.getLanguage());
ValueChangeEvent valueChangeEvent = new ValueChangeEvent(new UIOutput(), Locale.JAPANESE.toString(), Locale.TAIWAN.toString());
LocaleSelector.instance().select(valueChangeEvent);
assert org.jboss.seam.international.Locale.instance().equals(Locale.TAIWAN);
Locale uk_posix = new Locale(Locale.UK.getLanguage(), Locale.UK.getCountry(), "POSIX");
LocaleSelector.instance().setLocale(uk_posix);
assert org.jboss.seam.international.Locale.instance().equals(uk_posix);
assert LocaleSelector.instance().getLanguage().equals(uk_posix.getLanguage());
assert LocaleSelector.instance().getCountry().equals(uk_posix.getCountry());
assert LocaleSelector.instance().getVariant().equals(uk_posix.getVariant());
LocaleSelector.instance().setLanguage(Locale.CHINA.getLanguage());
LocaleSelector.instance().setCountry(Locale.CHINA.getCountry());
LocaleSelector.instance().setVariant(null);
assert org.jboss.seam.international.Locale.instance().equals(Locale.CHINA);
LocaleSelector.instance().setLanguage(Locale.ITALIAN.getLanguage());
LocaleSelector.instance().setCountry(null);
LocaleSelector.instance().setVariant(null);
assert org.jboss.seam.international.Locale.instance().equals(Locale.ITALIAN);
assert LocaleSelector.instance().getSupportedLocales().size() == 1;
assert LocaleSelector.instance().getSupportedLocales().get(0).getValue().equals(Locale.ENGLISH.toString());
assert LocaleSelector.instance().getSupportedLocales().get(0).getLabel().equals(Locale.ENGLISH.getDisplayName());
boolean failed = false;
try
{
LocaleSelector.instance().setLocale(null);
}
catch (NullPointerException e)
{
failed = true;
}
assert failed;
// TODO Test cookie stuff (need to extend Mocks for this)
}
}.run();
}
}
1.1 date: 2007/07/13 16:08:46; author: pmuir; state: Exp;jboss-seam/src/test/misc/org/jboss/seam/test/MailTest.java
Index: MailTest.java
===================================================================
package org.jboss.seam.test;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.naming.NamingException;
import org.jboss.seam.mail.MailSession;
import org.jboss.seam.mail.MeldwareUser;
import org.jboss.seam.text.SeamTextLexer;
import org.jboss.seam.text.SeamTextParser;
import org.testng.annotations.Test;
import com.sun.mail.smtp.SMTPSSLTransport;
import com.sun.mail.smtp.SMTPTransport;
public class MailTest
{
private static final String HOST = "smtp.jboss.org";
private static final String DEFAULT_HOST = "localhost";
private static final int PORT = 666;
private static final int DEFAULT_PORT = 25;
private static final int DEFAULT_SSL_PORT = 465;
private static final String USERNAME = "pmuir";
private static final String PASSWORD = "letmein";
private static final String EMAIL = "pete.muir at jboss.org";
@Test
public void testBasicMailSession()
{
MailSession mailSession = new MailSession();
mailSession.create();
Session session = null;
try
{
session = mailSession.getSession();
}
catch (NamingException e)
{
assert false;
// Naming exception can't occur if we aren't getting the Session from
// JNDI
}
assert DEFAULT_HOST.equals(session.getProperty("mail.smtp.host"));
int port = 0;
try
{
port = Integer.parseInt(session.getProperty("mail.smtp.port"));
}
catch (NumberFormatException e)
{
assert false;
}
assert port == DEFAULT_PORT;
assert "smtp".equals(session.getProperty("mail.transport.protocol"));
SMTPTransport transport = null;
try
{
assert session.getTransport() instanceof SMTPTransport;
transport = (SMTPTransport) session.getTransport();
}
catch (NoSuchProviderException e)
{
assert false;
}
assert !session.getDebug();
assert transport.getStartTLS();
}
@Test
public void testMailSession()
{
MailSession mailSession = new MailSession();
mailSession.setHost(HOST);
mailSession.setPort(PORT);
mailSession.setDebug(true);
mailSession.create();
Session session = null;
try
{
session = mailSession.getSession();
}
catch (NamingException e)
{
assert false;
// Naming exception can't occur if we aren't getting the Session from
// JNDI
}
assert HOST.equals(session.getProperty("mail.smtp.host"));
int port = 0;
try
{
port = Integer.parseInt(session.getProperty("mail.smtp.port"));
}
catch (NumberFormatException e)
{
assert false;
}
assert port == PORT;
try
{
assert session.getTransport() instanceof SMTPTransport;
}
catch (NoSuchProviderException e)
{
assert false;
}
assert session.getDebug();
}
@Test
public void testAuthenticatedMailSession()
{
MailSession mailSession = new MailSession();
mailSession.setUsername(USERNAME);
mailSession.setPassword(PASSWORD);
mailSession.create();
Session session = null;
try
{
session = mailSession.getSession();
}
catch (NamingException e)
{
assert false;
// Naming exception can't occur if we aren't getting the Session from
// JNDI
}
assert "true".equals(session.getProperty("mail.smtp.auth"));
// TODO Check authentication
}
@Test
public void testMissingPasswordMailSession()
{
MailSession mailSession = new MailSession();
mailSession.setUsername(USERNAME);
mailSession.create();
Session session = null;
try
{
session = mailSession.getSession();
}
catch (NamingException e)
{
assert false;
// Naming exception can't occur if we aren't getting the Session from
// JNDI
}
assert null == session.getProperty("mail.smtp.auth");
}
@Test
public void testMissingUsernameMailSession()
{
MailSession mailSession = new MailSession();
mailSession.setPassword(PASSWORD);
mailSession.create();
Session session = null;
try
{
session = mailSession.getSession();
}
catch (NamingException e)
{
assert false;
// Naming exception can't occur if we aren't getting the Session from
// JNDI
}
assert null == session.getProperty("mail.smtp.auth");
}
@Test
public void testBasicSslMailSession()
{
MailSession mailSession = new MailSession();
mailSession.setSsl(true);
mailSession.create();
Session session = null;
try
{
session = mailSession.getSession();
}
catch (NamingException e)
{
assert false;
// Naming exception can't occur if we aren't getting the Session from
// JNDI
}
assert "smtps".equals(session.getProperty("mail.transport.protocol"));
SMTPSSLTransport transport = null;
try
{
assert session.getTransport() instanceof SMTPSSLTransport;
transport = (SMTPSSLTransport) session.getTransport();
}
catch (NoSuchProviderException e)
{
assert false;
}
int port = 0;
try
{
port = Integer.parseInt(session.getProperty("mail.smtps.port"));
}
catch (NumberFormatException e)
{
assert false;
}
assert port == DEFAULT_SSL_PORT;
assert DEFAULT_HOST.equals(session.getProperty("mail.smtps.host"));
assert !session.getDebug();
// TLS not used over SSL
assert !transport.getStartTLS();
}
@Test
public void testSslMailSession()
{
MailSession mailSession = new MailSession();
mailSession.setHost(HOST);
mailSession.setSsl(true);
mailSession.setPort(PORT);
mailSession.create();
Session session = null;
try
{
session = mailSession.getSession();
}
catch (NamingException e)
{
assert false;
// Naming exception can't occur if we aren't getting the Session from
// JNDI
}
int port = 0;
try
{
port = Integer.parseInt(session.getProperty("mail.smtps.port"));
}
catch (NumberFormatException e)
{
assert false;
}
assert port == PORT;
}
@Test
public void testAuthenticatedSslMailSession()
{
MailSession mailSession = new MailSession();
mailSession.setUsername(USERNAME);
mailSession.setPassword(PASSWORD);
mailSession.setSsl(true);
mailSession.create();
Session session = null;
try
{
session = mailSession.getSession();
}
catch (NamingException e)
{
assert false;
// Naming exception can't occur if we aren't getting the Session from
// JNDI
}
assert "true".equals(session.getProperty("mail.smtps.auth"));
assert session.getProperty("mail.smtp.auth") == null;
// TODO Check authentication
}
@Test
public void testJndiMailSession()
{
MailSession mailSession = new MailSession();
mailSession.setSessionJndiName("java:/Mail");
mailSession.create();
boolean failure = false;
// We can't get a Session from JNDI without a full container.
try
{
Session session = mailSession.getSession();
}
catch (Exception e)
{
failure = true;
}
assert failure;
}
@Test
public void testMeldwareUser()
{
MeldwareUser meldwareUser = new MeldwareUser();
meldwareUser.setUsername(USERNAME);
meldwareUser.setPassword(PASSWORD);
meldwareUser.getAliases().add(EMAIL);
assert USERNAME.equals(meldwareUser.getUsername());
assert PASSWORD.equals(meldwareUser.getPassword());
assert meldwareUser.getAliases() != null;
assert meldwareUser.getAliases().contains(EMAIL);
assert meldwareUser.getRoles().contains("calendaruser");
assert !meldwareUser.getRoles().contains("adminuser");
meldwareUser.setAliases(new ArrayList<String>());
assert meldwareUser.getAliases().isEmpty();
}
@Test
public void testAdminMeldwareUser()
{
MeldwareUser meldwareUser = new MeldwareUser();
meldwareUser.setAdministrator(true);
assert meldwareUser.getRoles().contains("calendaruser");
assert meldwareUser.getRoles().contains("adminuser");
}
// TODO Write tests for Meldware
}
More information about the jboss-cvs-commits
mailing list