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

/**
 *
 * @author Vivien Barousse
 */
public class CircuitsTest extends ParapheurIntegrationTestCase {

    public void testSaveWorkflow() {
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("//img[@alt='Nouveau circuit']");
        selenium.waitForPageToLoad("30000");
        selenium.type("circuit_nom", "test-save-workflow");
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        assertTrue(selenium.isTextPresent("test-save-workflow"));
        assertFalse(selenium.isChecked("//td//*[text()=\"test-save-workflow\"]//ancestor::tr//input[@type=\"checkbox\"]"));
    }

    public void testSavePublicWorkflow() {
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("//img[@alt='Nouveau circuit']");
        selenium.waitForPageToLoad("30000");
        selenium.type("circuit_nom", "test-save-public-workflow");
        selenium.click("circuit_public");
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        assertTrue(selenium.isTextPresent("test-save-public-workflow"));
        assertTrue(selenium.isChecked("//td//*[text()=\"test-save-public-workflow\"]//ancestor::tr//input[@type=\"checkbox\"]"));
    }

    public void testDeleteWorkflow() {
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("//img[@alt='Nouveau circuit']");
        selenium.waitForPageToLoad("30000");
        selenium.type("circuit_nom", "test-delete-workflow");
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        selenium.click("//td//*[text()=\"test-delete-workflow\"]//ancestor::tr//img[@alt=\"Delete\"]");
        assertTrue(selenium.getConfirmation().matches("^Etes-vous sûr de vouloir supprimer ce circuit [\\s\\S]$"));
        selenium.waitForPageToLoad("30000");
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        assertFalse(selenium.isTextPresent("test-delete-workflow"));
    }

    public void testRenameWorkflow() {
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("//img[@alt='Nouveau circuit']");
        selenium.waitForPageToLoad("30000");
        selenium.type("circuit_nom", "test-rename-workflow");
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        selenium.click("//td//*[text()=\"test-rename-workflow\"]//ancestor::tr//img[@alt=\"Edit\"]");
        selenium.waitForPageToLoad("30000");
        selenium.type("circuit_nom", "test-rename-workflow-renamed");
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        assertTrue(selenium.isTextPresent("test-rename-workflow-renamed"));
    }

    public void testCopyWorkflow() {
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("//img[@alt='Nouveau circuit']");
        selenium.waitForPageToLoad("30000");
        selenium.type("circuit_nom", "test-copy-workflow");
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");

        selenium.click("//td//*[text()=\"test-copy-workflow\"]//ancestor::tr//img[@alt=\"Copy\"]");
        selenium.waitForPageToLoad("30000");

        assertTrue(selenium.isTextPresent("test-copy-workflow (copie)"));
    }

    public void testCopyWorkflowTwice() {
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("//img[@alt='Nouveau circuit']");
        selenium.waitForPageToLoad("30000");
        selenium.type("circuit_nom", "test-copy-workflow-twice");
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");

        selenium.click("//td//*[text()=\"test-copy-workflow-twice\"]//ancestor::tr//img[@alt=\"Copy\"]");
        selenium.waitForPageToLoad("30000");
        selenium.click("//td//*[text()=\"test-copy-workflow-twice\"]//ancestor::tr//img[@alt=\"Copy\"]");
        selenium.waitForPageToLoad("30000");

        assertTrue(selenium.isTextPresent("test-copy-workflow-twice (copie)"));
        assertTrue(selenium.isTextPresent("test-copy-workflow-twice (copie 2)"));
    }

    public void testCopyPublicWorkflow() {
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("//img[@alt='Nouveau circuit']");
        selenium.waitForPageToLoad("30000");
        selenium.type("circuit_nom", "test-copy-public-workflow");
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");

        selenium.click("//td//*[text()=\"test-copy-public-workflow\"]//ancestor::tr//img[@alt=\"Copy\"]");
        selenium.waitForPageToLoad("30000");

        assertTrue(selenium.isTextPresent("test-copy-public-workflow"));
        assertTrue(selenium.isTextPresent("test-copy-public-workflow (copie)"));
    }

    public void testCopyPublicWorkflowTwice() {
        selenium.open("/parapheur/wcs/parapheur/circuits-3/list");
        selenium.waitForPageToLoad("30000");
        selenium.type("loginForm:user-name", "admin");
        selenium.type("loginForm:user-password", "admin");
        selenium.click("loginForm:submit");
        selenium.waitForPageToLoad("30000");
        selenium.click("//img[@alt='Nouveau circuit']");
        selenium.waitForPageToLoad("30000");
        selenium.type("circuit_nom", "test-copy-public-workflow-twice");
        selenium.click("//input[@value='Valider']");
        selenium.waitForPageToLoad("30000");

        selenium.click("//td//*[text()=\"test-copy-public-workflow-twice\"]//ancestor::tr//img[@alt=\"Copy\"]");
        selenium.waitForPageToLoad("30000");
        selenium.click("//td//*[text()=\"test-copy-public-workflow-twice\"]//ancestor::tr//img[@alt=\"Copy\"]");
        selenium.waitForPageToLoad("30000");

        assertTrue(selenium.isTextPresent("test-copy-public-workflow-twice"));
        assertTrue(selenium.isTextPresent("test-copy-public-workflow-twice (copie)"));
        assertTrue(selenium.isTextPresent("test-copy-public-workflow-twice (copie 2)"));
    }

}
