/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.adullact.iparapheur.it;

import java.io.File;

/**
 *
 * @author vbarousse
 */
public class DossierTest extends ParapheurIntegrationTestCase {

    public void testCreateDossier() throws Exception {
        selenium.open(CONTEXT_PATH + "/faces/jsp/parapheur/login.jsp");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Constituer un nouveau dossier");
        selenium.waitForPageToLoad("30000");
        selenium.type("infos:name", "titre-dossier");
        selenium.fireEvent("infos:name", "keyup");
        selenium.click("//input[@type='checkbox']");
        selenium.type("infos:_idJsp21", "annotation-dossier");
        selenium.click("//input[@name='infos:visibilite' and @value='Confidentiel']");
        assertTrue(selenium.isElementPresent("infos:signature"));
        assertTrue(selenium.isTextPresent("Groupe"));
        assertTrue(selenium.isTextPresent("Confidentiel"));
        assertTrue(selenium.isTextPresent("Public"));
        selenium.click("infos:next-button-infos");
        selenium.waitForPageToLoad("30000");
        selenium.type("alfFileInput", getTempFile().getAbsolutePath());
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");
        selenium.click("add-content-upload-end:next-button");
        selenium.waitForPageToLoad("30000");
        selenium.click("ajout_circuit:select_soustypesmetier-button");
        selenium.waitForPageToLoad("30000");
        selenium.click("ajout_circuit:next-button-circuit");
        selenium.waitForPageToLoad("30000");
        selenium.click("person-props:_idJsp23");
        assertTrue(selenium.isTextPresent("titre-dossier"));
        assertTrue(selenium.isTextPresent("annotation-dossier"));
        assertTrue(selenium.isTextPresent("Non"));
        assertTrue(selenium.isTextPresent("Confidentiel"));
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Dossiers à transmettre");
        selenium.waitForPageToLoad("30000");
        selenium.click("_idJsp14");
        selenium.waitForPageToLoad("30000");
        selenium.click("logout");
        selenium.waitForPageToLoad("30000");
    }

    public void testAnnotation() throws Exception {
        selenium.open(CONTEXT_PATH + "/faces/jsp/parapheur/login.jsp");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Constituer un nouveau dossier");
        selenium.waitForPageToLoad("30000");
        selenium.type("infos:name", "test-annotation");
        selenium.fireEvent("infos:name", "keyup");
        selenium.type("infos:_idJsp21", "annotation-publique");
        selenium.click("infos:next-button-infos");
        selenium.waitForPageToLoad("30000");
        selenium.type("alfFileInput", getTempFile().getAbsolutePath());
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");
        selenium.click("add-content-upload-end:next-button");
        selenium.waitForPageToLoad("30000");
        selenium.click("ajout_circuit:select_soustypesmetier-button");
        selenium.waitForPageToLoad("30000");
        selenium.click("ajout_circuit:next-button-circuit");
        selenium.waitForPageToLoad("30000");
        selenium.click("person-props:_idJsp23");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Dossiers à transmettre");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=test-annotation");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Options du dossier");
        selenium.click("link=Visualiser les annotations");
        selenium.waitForPageToLoad("30000");
        selenium.waitForPageToLoad("30000");
        assertEquals("annotation-publique", selenium.getText("browse-annotations:lblPubliqueCourante"));
        selenium.click("logout");
        selenium.waitForPageToLoad("30000");
    }

    public void testCircuitComplet() {
        // A refaire
    }

    public void testRemord() {
        // A refaire
    }

    public void testAddAttachment() {
        selenium.open(CONTEXT_PATH + "/faces/jsp/parapheur/login.jsp");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Constituer un nouveau dossier");
        selenium.waitForPageToLoad("30000");
        selenium.type("infos:name", "test-pj");
        selenium.fireEvent("infos:name", "keyup");
        selenium.click("infos:next-button-infos");
        selenium.waitForPageToLoad("30000");
        selenium.type("alfFileInput", getTempFile().getAbsolutePath());
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");
        selenium.click("add-content-upload-end:next-button");
        selenium.waitForPageToLoad("30000");
        selenium.click("ajout_circuit:select_soustypesmetier-button");
        selenium.waitForPageToLoad("30000");
        selenium.click("ajout_circuit:next-button-circuit");
        selenium.waitForPageToLoad("30000");
        selenium.click("person-props:_idJsp23");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Dossiers à transmettre");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=test-pj");
        selenium.waitForPageToLoad("30000");
        selenium.click("//form[@id='dossier']/table/tbody/tr[2]/td[2]/table/tbody/tr[4]/td[2]/table/tbody/tr/td[6]/a/img");
        selenium.click("link=Joindre un document");
        selenium.waitForPageToLoad("30000");
        File pj = getTempFile();
        selenium.type("alfFileInput", pj.getAbsolutePath());
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");
        selenium.click("add-document-upload-end:finish-button");
        selenium.waitForPageToLoad("30000");
        assertTrue(selenium.isTextPresent(pj.getName()));
    }

    public void testViewDetails() {
        selenium.open(CONTEXT_PATH + "/faces/jsp/parapheur/login.jsp");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Constituer un nouveau dossier");
        selenium.waitForPageToLoad("30000");
        selenium.type("infos:name", "test-view-details");
        selenium.fireEvent("infos:name", "keyup");
        selenium.type("infos:_idJsp21", "annotation-publique");
        selenium.click("infos:signature");
        selenium.click("//input[@name='infos:visibilite' and @value='Public']");
        selenium.click("infos:next-button-infos");
        selenium.waitForPageToLoad("30000");
        selenium.type("alfFileInput", getTempFile().getAbsolutePath());
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");
        selenium.click("add-content-upload-end:next-button");
        selenium.waitForPageToLoad("30000");
        selenium.click("ajout_circuit:select_soustypesmetier-button");
        selenium.waitForPageToLoad("30000");
        selenium.click("ajout_circuit:next-button-circuit");
        selenium.waitForPageToLoad("30000");
        selenium.click("person-props:_idJsp23");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Dossiers à transmettre");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=test-view-details");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Options du dossier");
        selenium.click("link=Details du dossier");
        selenium.waitForPageToLoad("30000");
        assertTrue(selenium.isTextPresent("admin"));
        assertTrue(selenium.isTextPresent("test-view-details"));
        assertTrue(selenium.isTextPresent("Admin (Administrator )"));
        assertTrue(selenium.isTextPresent("ParapheurUser (SampleUser SampleUser)"));
    }

    public void testMajAnnotation() {
        selenium.open(CONTEXT_PATH + "/faces/jsp/parapheur/login.jsp");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Constituer un nouveau dossier");
        selenium.waitForPageToLoad("30000");
        selenium.type("infos:name", "test-maj-annotations");
        selenium.fireEvent("infos:name", "keyup");
        selenium.type("infos:_idJsp21", "annotation-publique");
        selenium.click("infos:next-button-infos");
        selenium.waitForPageToLoad("30000");
        selenium.type("alfFileInput", getTempFile().getAbsolutePath());
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");
        selenium.click("add-content-upload-end:next-button");
        selenium.waitForPageToLoad("30000");
        selenium.click("ajout_circuit:select_soustypesmetier-button");
        selenium.waitForPageToLoad("30000");
        selenium.click("ajout_circuit:next-button-circuit");
        selenium.waitForPageToLoad("30000");
        selenium.click("person-props:_idJsp23");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Dossiers à transmettre");
        selenium.waitForPageToLoad("30000");
        selenium.click("_idJsp14");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Options du dossier");
        selenium.click("link=Annoter");
        selenium.waitForPageToLoad("30000");
        selenium.type("dialog:dialog-body:textArea", "annotation-publique-modifiée");
        selenium.type("dialog:dialog-body:textArea2", "annotation-privée");
        selenium.click("dialog:finish-button");
        selenium.waitForPageToLoad("30000");
        selenium.click("link=Options du dossier");
        selenium.click("link=Visualiser les annotations");
        selenium.waitForPageToLoad("30000");
        assertTrue(selenium.isTextPresent("annotation-publique-modifiée"));
        assertTrue(selenium.isTextPresent("annotation-privée"));
    }
}
