[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