Author: fdesbois Date: 2010-04-13 21:30:57 +0000 (Tue, 13 Apr 2010) New Revision: 445 Log: - Use testify to create test for Tapestry pages/components - Try to use DemoModule + LayoutDemo page to test Layout component - Test on connection (using StateManager and manually connection with form submission) - Problem on SessionState user not present in Layout when loading the page --> need more explanation on Testify/PageTester Added: trunk/wao-ui/src/test/java/test/ trunk/wao-ui/src/test/java/test/fr/ trunk/wao-ui/src/test/java/test/fr/ifremer/ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/AbstractApplicationTest.java trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/components/ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/data/ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/DemoModule.java trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.java trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.tml trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java Modified: trunk/pom.xml trunk/wao-ui/pom.xml trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BooleanImage.tml trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml trunk/wao-ui/src/main/webapp/Contacts.tml trunk/wao-ui/src/main/webapp/Index.tml trunk/wao-ui/src/test/resources/log4j.properties Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-04-13 21:30:53 UTC (rev 444) +++ trunk/pom.xml 2010-04-13 21:30:57 UTC (rev 445) @@ -101,7 +101,25 @@ </exclusion> </exclusions> </dependency> +<!-- <dependency> + <groupId>org.apache.tapestry</groupId> + <artifactId>tapestry-test</artifactId> + <version>${tapestry.version}</version> + <scope>test</scope> + </dependency>--> <dependency> + <groupId>com.formos.tapestry</groupId> + <artifactId>tapestry-testify</artifactId> + <version>1.0.2</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>1.8.4</version> + <scope>test</scope> + </dependency> + <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> @@ -216,7 +234,7 @@ <!-- libraries version --> <i18n.version>1.2.1</i18n.version> - <nuitonutils.version>1.2.2-SNAPSHOT</nuitonutils.version> + <nuitonutils.version>1.2.2</nuitonutils.version> <topia.version>2.3.3-SNAPSHOT</topia.version> <eugene.version>2.0.1-SNAPSHOT</eugene.version> <tapestry.version>5.1.0.5</tapestry.version> Modified: trunk/wao-ui/pom.xml =================================================================== --- trunk/wao-ui/pom.xml 2010-04-13 21:30:53 UTC (rev 444) +++ trunk/wao-ui/pom.xml 2010-04-13 21:30:57 UTC (rev 445) @@ -56,21 +56,22 @@ <artifactId>jfreechart</artifactId> </dependency> <!-- Tests --> - <dependency> +<!-- <dependency> <groupId>org.apache.tapestry</groupId> <artifactId>tapestry-test</artifactId> - </dependency> -<!-- <dependency> + </dependency>--> + <dependency> <groupId>com.formos.tapestry</groupId> <artifactId>tapestry-testify</artifactId> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> - </dependency>--> + </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> + <version>4.7</version> </dependency> <!-- Logging --> <dependency> @@ -137,6 +138,25 @@ </overlays> </configuration> </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.5</version> + <executions> + <execution> + <id>default-client</id> + + <!--goals><goal>test</goal></goals--> + </execution> + </executions> + <configuration> + <includes> + <include>**/*Test.java</include> + </includes> + </configuration> + </plugin> + </plugins> </build> Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-04-13 21:30:53 UTC (rev 444) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-04-13 21:30:57 UTC (rev 445) @@ -106,6 +106,7 @@ } if (logger.isDebugEnabled()) { logger.debug("Initialize page from Layout"); + logger.debug("currentUserExists : " + isCurrentUserExists()); } //page.initialize(); } @@ -264,9 +265,15 @@ @Log Object onSuccessFromConnexionForm() throws WaoException { try { - // FIXME-FD20100120 Problem with NPE in Topia --> see Ano #243 on nuiton.org + if (logger.isDebugEnabled()) { + logger.debug("Login : " + login); + } if (login != null && password != null) { currentUser = serviceUser.connect(login, password); + if (logger.isDebugEnabled()) { + logger.debug("User connected : " + + currentUser.getFullName()); + } } } catch (WaoBusinessException eee) { if (eee.getType().equals(Type.BAD_CONNECTION)) { @@ -275,6 +282,9 @@ } else if (eee.getType().equals(Type.ILLEGAL_CONNECTION)) { connexionFeedback.addInfo(eee.getMessage()); } + if (logger.isDebugEnabled()) { + logger.error("WaoBusinessException : " + eee.getMessage(), eee); + } } return null; } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-04-13 21:30:53 UTC (rev 444) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-04-13 21:30:57 UTC (rev 445) @@ -120,6 +120,7 @@ void setupRender() throws WaoException { if (log.isDebugEnabled()) { log.debug("RESET DATA"); + log.debug("User : " + user.getFullName()); } contacts = null; contactsForm.clearErrors(); Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BooleanImage.tml =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BooleanImage.tml 2010-04-13 21:30:53 UTC (rev 444) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BooleanImage.tml 2010-04-13 21:30:57 UTC (rev 445) @@ -1,12 +1,12 @@ <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter"> <t:if t:test="empty"> - <img src="${asset:context:}/img/help-22px.png" title="${emptyTitle}" /> + <img src="${asset:context:img/help-22px.png}" title="${emptyTitle}" /> <p:else> <t:if t:test="value"> - <img src="${asset:context:}/img/true-22px.png" title="${trueTitle}" /> + <img src="${asset:context:img/true-22px.png}" title="${trueTitle}" /> <p:else> - <img src="${asset:context:}/img/false-22px.png" title="${falseTitle}" /> + <img src="${asset:context:img/false-22px.png}" title="${falseTitle}" /> </p:else> </t:if> </p:else> Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-04-13 21:30:53 UTC (rev 444) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-04-13 21:30:57 UTC (rev 445) @@ -3,9 +3,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>WAO - Web Applicatif Obsmer : ${pageTitle}</title> - <link rel="stylesheet" type="text/css" href="${asset:context:}/css/common.css" /> - <link rel="stylesheet" type="text/css" href="${asset:context:}/css/main.css" /> - <script type="text/javascript" src="${asset:context:}/js/wao.js"/> + <link rel="stylesheet" type="text/css" href="${asset:context:css/common.css}" /> + <link rel="stylesheet" type="text/css" href="${asset:context:css/main.css}" /> + <script type="text/javascript" src="${asset:context:js/wao.js}"/> </head> <t:if t:test="currentUserExists"> <body> @@ -25,12 +25,12 @@ <div id="so-session" class="clearfix"> <div class="fleft"> <a t:type="pagelink" t:page="index" title="Page d'accueil"> - <img src="${asset:context:}/img/logo-wao-48px.png" alt="WAO logo" title="Retourner sur la page d'accueil"/> + <img src="${asset:context:img/logo-wao-48px.png}" alt="WAO logo" title="Retourner sur la page d'accueil"/> </a> </div> <div class="fleft"> <a href="mailto:obsmer at ifremer.fr" title="Contacter un responsable Obsmer"> - <img src="${asset:context:}/img/MiniLogo.jpg" alt="Obsmer logo"/> + <img src="${asset:context:img/MiniLogo.jpg}" alt="Obsmer logo"/> </a> </div> <div id="user-infos" class="fleft"> @@ -39,13 +39,13 @@ </div> <div id="user-actions" class="fright"> <a t:type="pagelink" t:page="index" title="Page d'accueil"> - <img src="${asset:context:}/img/home.png" alt="Accueil" title="Page d'accueil" /> + <img src="${asset:context:img/home.png}" alt="Accueil" title="Page d'accueil" /> </a> <a t:type="pagelink" t:page="userProfile" title="Gestion profil"> - <img src="${asset:context:}/img/user.png" alt="Preferences" title="Gestion profil"/> + <img src="${asset:context:img/user.png}" alt="Preferences" title="Gestion profil"/> </a> <a t:type="actionlink" t:id="exit" title="Déconnexion"> - <img src="${asset:context:}/img/exit.png" alt="Exit" title="Déconnexion"/> + <img src="${asset:context:img/exit.png}" alt="Exit" title="Déconnexion"/> </a> </div> </div> @@ -140,7 +140,7 @@ </div> </div> <div class="fright" id="so-connexion-logo"> - <img src="${asset:context:}/img/logo-wao-48px.png" alt="Logo Obsmer"/> + <img src="${asset:context:img/logo-wao-48px.png}" alt="Logo Obsmer"/> </div> </form> </div> Modified: trunk/wao-ui/src/main/webapp/Contacts.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Contacts.tml 2010-04-13 21:30:53 UTC (rev 444) +++ trunk/wao-ui/src/main/webapp/Contacts.tml 2010-04-13 21:30:57 UTC (rev 445) @@ -73,12 +73,12 @@ <label>Observations: </label> <input t:type="checkbox" t:id="mammalsObservation1" value="contactFilter.mammalsObservation" /> <t:label t:for="mammalsObservation1"> - <img src="${asset:context:}/img/eye-22px.png" alt="Observations" title="Observations" /> + <img src="${asset:context:img/eye-22px.png}" alt="Observations" title="Observations" /> </t:label> <label>Captures acc.: </label> <input t:type="checkbox" t:id="mammalsCapture1" value="contactFilter.mammalsCapture" /> <t:label t:for="mammalsCapture1"> - <img src="${asset:context:}/img/fishing-net-22px.png" alt="Captures" title="Captures" /> + <img src="${asset:context:img/fishing-net-22px.png}" alt="Captures" title="Captures" /> </t:label> </div><p> </p> <div> @@ -87,29 +87,29 @@ <label>Validation société: </label> <input t:type="checkbox" t:id="companyAccepted" value="contactFilter.companyAccepted" /> <t:label t:for="companyAccepted"> - <img src="${asset:context:}/img/true-22px.png" title="Accepté par la société" /> + <img src="${asset:context:img/true-22px.png}" title="Accepté par la société" /> </t:label> <input t:type="checkbox" t:id="companyRefused" value="contactFilter.companyRefused" /> <t:label t:for="companyRefused"> - <img src="${asset:context:}/img/false-22px.png" title="Refusé par la société" /> + <img src="${asset:context:img/false-22px.png}" title="Refusé par la société" /> </t:label> <input t:type="checkbox" t:id="companyUndefined" value="contactFilter.companyUndefined" /> <t:label t:for="companyUndefined"> - <img src="${asset:context:}/img/help-22px.png" title="Non validé par la société" /> + <img src="${asset:context:img/help-22px.png}" title="Non validé par la société" /> </t:label> <!--<t:if t:test="user.admin">--> <label>Validation programme: </label> <input t:type="checkbox" t:id="programAccepted" value="contactFilter.programAccepted" /> <t:label t:for="programAccepted"> - <img src="${asset:context:}/img/true-22px.png" title="Accepté par le programme" /> + <img src="${asset:context:img/true-22px.png}" title="Accepté par le programme" /> </t:label> <input t:type="checkbox" t:id="programRefused" value="contactFilter.programRefused" /> <t:label t:for="programRefused"> - <img src="${asset:context:}/img/false-22px.png" title="Refusé par le programme" /> + <img src="${asset:context:img/false-22px.png}" title="Refusé par le programme" /> </t:label> <input t:type="checkbox" t:id="programUndefined" value="contactFilter.programUndefined" /> <t:label t:for="programUndefined"> - <img src="${asset:context:}/img/help-22px.png" title="Non validé par le programme" /> + <img src="${asset:context:img/help-22px.png}" title="Non validé par le programme" /> </t:label> <!--</t:if>--> </div> @@ -132,7 +132,7 @@ <input t:type="upload" t:id="contactsCsvFile" t:validate="required" /> <input t:type="submit" class="ico import" value="OK" title="Importer une liste de contacts (format CSV avec encodage UTF-8)" /> <a t:type="actionlink" t:id="exportShowContacts"> - <img src="${asset:context:}/img/file-export-22px.png" alt="Export" + <img src="${asset:context:img/file-export-22px.png}" alt="Export" title="Exporter les ${contacts.availableRows} contacts trouvés ${tooltipExportFrom}" /> </a> </form> @@ -197,20 +197,20 @@ <t:if t:test="editionMode"> <input t:type="checkbox" t:id="mammalsObservation" value="contactEdited.mammalsObservation"/> <t:label t:for="mammalsObservation"> - <img src="${asset:context:}/img/eye-22px.png" alt="Observations" + <img src="${asset:context:img/eye-22px.png}" alt="Observations" title="Observations" /> </t:label> <input t:type="checkbox" t:id="mammalsCapture" value="contactEdited.mammalsCapture" /> <t:label t:for="mammalsCapture"> - <img src="${asset:context:}/img/fishing-net-22px.png" alt="Captures" + <img src="${asset:context:img/fishing-net-22px.png}" alt="Captures" title="Captures" /> </t:label> <p:else> <t:if t:test="contact.mammalsObservation"> - <img src="${asset:context:}/img/eye-22px.png" alt="Observations" title="Observations" /> + <img src="${asset:context:img/eye-22px.png}" alt="Observations" title="Observations" /> </t:if> <t:if t:test="contact.mammalsCapture"> - <img src="${asset:context:}/img/fishing-net-22px.png" alt="Captures" title="Captures" /> + <img src="${asset:context:img/fishing-net-22px.png}" alt="Captures" title="Captures" /> </t:if> </p:else> </t:if> @@ -233,7 +233,7 @@ <t:if t:test="editionMode"> <!--<span t:type="ck/Tooltip" title="Commentaire" t:value="prop:commentTooltip" t:effect="appear">--> <a href="#" onclick="openCommentWindow(windowComment, 'commentPopup', 'contact-comment', ${contact.contactState.isUnfinishedState()})"> - <img src="${asset:context:}/img/comment-22px.png" id="commentImg" alt="Add comment" /> + <img src="${asset:context:img/comment-22px.png}" id="commentImg" alt="Add comment" /> </a> <!--</span>--> @@ -246,9 +246,10 @@ </p> <p> </p> <p class="aright"> - <a onclick="closeCommentWindow(windowComment, 'commentPopup', 'contact-comment', ${contact.contactState.isUnfinishedState()}, 'commentImg', '${asset:context:}')" class="save"> - <img src="${asset:context:}/img/save-22px.png" alt="Save comment" title="Enregistrer le commentaire"/> - </a> +<!-- <a onclick="closeCommentWindow(windowComment, 'commentPopup', 'contact-comment', ${contact.contactState.isUnfinishedState()}, 'commentImg', '${asset:context:}')" class="save"> + <img src="${asset:context:img/save-22px.png}" alt="Save comment" title="Enregistrer le commentaire"/> + </a>--> + </p> </div> @@ -278,8 +279,8 @@ </t:if> <p:else> <t:unless t:test="user.admin"> - <img src="${asset:context:}/img/edit-unavailable-22px.png" alt="Edit unavailable" title="Edition du contact indisponible"/> - <img src="${asset:context:}/img/delete-unavailable-22px.png" alt="Delete unavailable" title="Suppression du contact indisponible"/> + <img src="${asset:context:img/edit-unavailable-22px.png}" alt="Edit unavailable" title="Edition du contact indisponible"/> + <img src="${asset:context:img/delete-unavailable-22px.png}" alt="Delete unavailable" title="Suppression du contact indisponible"/> </t:unless> </p:else> </t:if> @@ -291,8 +292,8 @@ t:context="contact.topiaId" title="Refuser le contact" /> <p:else> <t:unless t:test="canUnvalidate()"> - <img src="${asset:context:}/img/accept-unavailable-22px.png" alt="Accept unavailable" title="Validation du contact indisponible"/> - <img src="${asset:context:}/img/refuse-unavailable-22px.png" alt="Refuse unavailable" title="Refus du contact indisponible"/> + <img src="${asset:context:img/accept-unavailable-22px.png}" alt="Accept unavailable" title="Validation du contact indisponible"/> + <img src="${asset:context:img/refuse-unavailable-22px.png}" alt="Refuse unavailable" title="Refus du contact indisponible"/> </t:unless> </p:else> </t:if> Modified: trunk/wao-ui/src/main/webapp/Index.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Index.tml 2010-04-13 21:30:53 UTC (rev 444) +++ trunk/wao-ui/src/main/webapp/Index.tml 2010-04-13 21:30:57 UTC (rev 445) @@ -5,7 +5,7 @@ <t:if t:test="canEditNews()"> <p class="aright"> <a t:type="actionlink" t:id="addNews"> - <img src="${asset:context:}/img/add-32px.png" alt="Ajouter" title="Ajouter un nouvel article"/> + <img src="${asset:context:img/add-32px.png}" alt="Ajouter" title="Ajouter un nouvel article"/> </a> </p> </t:if> @@ -33,15 +33,15 @@ <input t:type="submitContext" t:context="rowIndex" t:id="saveNews" class="ico22px save22px" value="Save" title="Enregistrer les modifications" /> <a t:type="actionlink" t:id="cancelEdit"> - <img src="${asset:context:}/img/undo-22px.png" title="Annuler les modifications"/> + <img src="${asset:context:img/undo-22px.png}" title="Annuler les modifications"/> </a> <p:else> <a t:type="actionlink" t:id="editNews" t:context="rowIndex" title="Modifier l'article"> - <img src="${asset:context:}/img/edit.png" alt="Edit" /> + <img src="${asset:context:img/edit.png}" alt="Edit" /> </a> <a t:type="actionlink" t:id="deleteNews" t:context="rowIndex" title="Supprimer l'article" t:mixins="confirm" t:message="Etes-vous sûr de vouloir supprimer définitivement cet article ?"> - <img src="${asset:context:}/img/delete2.png" alt="Delete" /> + <img src="${asset:context:img/delete2.png}" alt="Delete" /> </a> </p:else> </t:if> Added: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/AbstractApplicationTest.java =================================================================== --- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/AbstractApplicationTest.java (rev 0) +++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/AbstractApplicationTest.java 2010-04-13 21:30:57 UTC (rev 445) @@ -0,0 +1,64 @@ +package test.fr.ifremer.wao.ui; + +import com.formos.tapestry.testify.core.TapestryTester; +import com.formos.tapestry.testify.junit4.TapestryTest; +import fr.ifremer.wao.bean.UserRole; +import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.entity.WaoUser; +import test.fr.ifremer.wao.ui.demo.DemoModule; +import fr.ifremer.wao.ui.services.AppModule; +import org.apache.tapestry5.ioc.annotations.Inject; +import org.apache.tapestry5.services.ApplicationStateManager; +import org.mockito.MockitoAnnotations; +import org.mockito.Mock; +import static org.mockito.Mockito.*; + + +/** + * AbstractApplicationTest + * + * Created: 13 avr. 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public abstract class AbstractApplicationTest extends TapestryTest { + +// @Inject +// private Logger logger; + + private static final TapestryTester SHARED_TESTER = + new TapestryTester( + "fr.ifremer.wao.ui", AppModule.class, DemoModule.class); + + public AbstractApplicationTest() { + super(SHARED_TESTER); + } + + @Override + protected void setUpForAllTestMethods() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Mock + protected WaoUser user; + + @Inject + private ApplicationStateManager stateManager; + + protected void prepareObserverUser(boolean contributeSession) { + Company company = mock(Company.class); + when(company.getName()).thenReturn("TARTANPION"); + + when(user.getFullName()).thenReturn("Jean Michmuche"); + when(user.isAdmin()).thenReturn(false); + when(user.getUserRole()).thenReturn(UserRole.OBSERVER); + when(user.getCompany()).thenReturn(company); + if (contributeSession) { + stateManager.set(WaoUser.class, user); + } + } +} Property changes on: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/AbstractApplicationTest.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Added: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/DemoModule.java =================================================================== --- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/DemoModule.java (rev 0) +++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/DemoModule.java 2010-04-13 21:30:57 UTC (rev 445) @@ -0,0 +1,25 @@ + +package test.fr.ifremer.wao.ui.demo; + +import org.apache.tapestry5.ioc.Configuration; +import org.apache.tapestry5.services.LibraryMapping; + +/** + * DemoModule + * + * Created: 13 avr. 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class DemoModule { + + public static void contributeComponentClassResolver( + Configuration<LibraryMapping> configuration) { + configuration.add(new LibraryMapping("demo", + DemoModule.class.getPackage().getName())); + } +} Property changes on: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/DemoModule.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Added: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.java =================================================================== --- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.java (rev 0) +++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.java 2010-04-13 21:30:57 UTC (rev 445) @@ -0,0 +1,34 @@ + +package test.fr.ifremer.wao.ui.demo.pages; + +import fr.ifremer.wao.entity.WaoUser; +import org.apache.tapestry5.annotations.SessionState; +import org.apache.tapestry5.ioc.annotations.Inject; +import org.slf4j.Logger; + +/** + * LayoutDemo + * + * Created: 13 avr. 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class LayoutDemo { + + @Inject + private Logger logger; + + @SessionState + private WaoUser user; + + void setupRender() { + if (logger.isDebugEnabled()) { + logger.debug("User connected : " + user); + } + } + +} Property changes on: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Added: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.tml =================================================================== --- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.tml (rev 0) +++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.tml 2010-04-13 21:30:57 UTC (rev 445) @@ -0,0 +1,5 @@ +<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"> + <body> + OHO + </body> +</html> \ No newline at end of file Added: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java =================================================================== --- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java (rev 0) +++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java 2010-04-13 21:30:57 UTC (rev 445) @@ -0,0 +1,91 @@ + +package test.fr.ifremer.wao.ui.pages; + +//import fr.ifremer.wao.ui.AbstractApplicationTest; +import com.formos.tapestry.testify.core.ForComponents; +import fr.ifremer.wao.WaoBusinessException; +import fr.ifremer.wao.WaoException; +import fr.ifremer.wao.entity.News; +import fr.ifremer.wao.entity.WaoUser; +import fr.ifremer.wao.service.ServiceNews; +import fr.ifremer.wao.service.ServiceUser; +import fr.ifremer.wao.ui.services.WaoManager; +import java.util.ArrayList; +import test.fr.ifremer.wao.ui.AbstractApplicationTest; +import java.util.HashMap; +import java.util.Map; +import org.apache.tapestry5.dom.Document; +import org.apache.tapestry5.dom.Element; +import org.apache.tapestry5.ioc.annotations.Inject; +import org.apache.tapestry5.services.ApplicationStateManager; +import org.junit.*; +import org.mockito.Mock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import static org.mockito.Mockito.*; + +/** + * + * @author fdesbois + */ +public class ConnectionTest extends AbstractApplicationTest { + +// @Inject +// private Logger logger; + private static final Logger logger = + LoggerFactory.getLogger(ConnectionTest.class); + + @ForComponents + @Mock + private ServiceUser serviceUser; + + @ForComponents + @Mock + private ServiceNews serviceNews; + + @Inject + private ApplicationStateManager stateManager; + + @Test + public void testObserverSession() + throws WaoException, WaoBusinessException { + if (logger.isInfoEnabled()) { + logger.info("testObserverSession"); + } + prepareObserverUser(true); + WaoUser sso = stateManager.getIfExists(WaoUser.class); + Assert.assertNotNull(sso); + Assert.assertFalse(sso.isAdmin()); + } + + @Test + public void testConnection() throws WaoException, WaoBusinessException { + if (logger.isInfoEnabled()) { + logger.info("testConnection"); + } + when(serviceNews.getNews()).thenReturn(new ArrayList<News>()); + Document page = tester.renderPage("Index"); + if (logger.isInfoEnabled()) { + logger.info("Content : " + page.getRootElement()); + } + + prepareObserverUser(false); + connectUser(page); + } + + // TEMP : waiting for better solution using stateManager through Layout + private void connectUser(Document page) + throws WaoException, WaoBusinessException { + when(serviceUser.connect("jmichmuche", "password")).thenReturn(user); + + Map<String, String> fieldValues = new HashMap<String, String>(); + fieldValues.put("login", "jmichmuche"); + fieldValues.put("password", "password"); + Document result = tester.submitForm( + page.getElementById("connexionForm"), fieldValues); + if (logger.isInfoEnabled()) { + logger.info("Content : " + result.getRootElement()); + } + } + +} \ No newline at end of file Property changes on: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Modified: trunk/wao-ui/src/test/resources/log4j.properties =================================================================== --- trunk/wao-ui/src/test/resources/log4j.properties 2010-04-13 21:30:53 UTC (rev 444) +++ trunk/wao-ui/src/test/resources/log4j.properties 2010-04-13 21:30:57 UTC (rev 445) @@ -6,3 +6,6 @@ log4j.appender.console.layout.ConversionPattern=%d [%p] %c %m%n #log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss} %5p (%F:%L) %m%n log4j.appender.console.Threshold=DEBUG + +log4j.logger.test.fr.ifremer.wao=DEBUG +log4j.logger.fr.ifremer.wao=DEBUG