source: devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/email/MailFolderPage.java @ 4620

Revision 4620, 4.0 KB checked in by luiz-fernando, 13 years ago (diff)

Ticket #1771 - Refactoring, criadas novas classes para Pasta, Filtro, Pesquisa

Line 
1package org.expressolivre.cte.pages.email;
2
3import org.expressolivre.cte.pages.common.Page;
4import org.openqa.selenium.Alert;
5import org.openqa.selenium.By;
6import org.openqa.selenium.WebDriver;
7import org.openqa.selenium.WebElement;
8import org.openqa.selenium.support.FindBy;
9
10/**
11 * Pagina de administracao das pastas do Expresso.
12 *
13 * @author L.F.Estivalet (Serpro)
14 *
15 *         Created on Jun 16, 2011 at 4:01:32 PM
16 *
17 */
18public class MailFolderPage extends Page {
19
20        @FindBy(xpath = "//input[@value='Nova Pasta']")
21        private WebElement createNewFolder;
22
23        @FindBy(xpath = "//input[@value='Excluir pasta']")
24        private WebElement deleteFolder;
25
26        @FindBy(xpath = "//input[@value='Renomear pasta']")
27        private WebElement renameFolder;
28
29        public MailFolderPage(WebDriver driver) {
30                super(driver);
31                // TODO Auto-generated constructor stub
32        }
33
34        /**
35         * Cria nova pasta.
36         *
37         * @param folderName
38         *            Nome da pasta a ser criada.
39         */
40        public void createNewFolder(String folderName) {
41                this.createFolder(folderName);
42        }
43
44        private void createFolder(String folderName) {
45                this.createNewFolder.click();
46                Alert newFolder = driver.switchTo().alert();
47                assert "Insira o nome da nova pasta: ".equals(newFolder.getText());
48                newFolder.sendKeys(folderName);
49                newFolder.accept();
50        }
51
52        /**
53         * Cria sub pasta.
54         *
55         * @param rootFolderName
56         *            Pasta pai.
57         * @param subFolderName
58         *            Nome da sub pasta a ser criada.
59         */
60        public void createSubFolder(String rootFolderName, String subFolderName) {
61                this.driver.findElement(
62                                By.id("lINBOX/" + rootFolderName + "folders_tree")).click();
63                this.createFolder(subFolderName);
64        }
65
66        /**
67         * Renomeia pasta.
68         *
69         * @param folderName
70         *            Nome da pasta a ser renomeada.
71         * @param newName
72         *            Novo nome da pasta.
73         */
74        public void renameFolder(String folderName, String newName) {
75                super.waitForElement(By.id("lINBOX/" + folderName + "folders_tree"));
76                this.driver.findElement(By.id("lINBOX/" + folderName + "folders_tree"))
77                                .click();
78                this.renameFolder.click();
79                Alert newFolder = driver.switchTo().alert();
80                assert "Entre com um nome para a pasta:".equals(newFolder.getText());
81                newFolder.sendKeys(newName);
82                newFolder.accept();
83        }
84
85        /**
86         * @param folderName
87         */
88        public void renameFolderInUse(String folderName) {
89                this.driver.findElement(By.id("lINBOX/" + folderName + "folders_tree"))
90                                .click();
91                this.renameFolder.click();
92                Alert newFolder = driver.switchTo().alert();
93                assert "Não é possível renomear esta pasta, pois está em uso no momento!"
94                                .equals(newFolder.getText());
95                newFolder.accept();
96        }
97
98        /**
99         * Exclui pasta.
100         *
101         * @param folderName
102         *            Nome da pasta a ser excluida.
103         */
104        public void deleteFolder(String folderName) {
105                this.driver.findElement(By.id("lINBOX/" + folderName + "folders_tree"))
106                                .click();
107                this.deleteFolder.click();
108        }
109
110        /**
111         * Exclui pasta.
112         *
113         * @param folderName
114         *            Nome da pasta a ser excluida.
115         */
116        public void deleteFolder(String folderName, boolean inUse) {
117                this.driver.findElement(By.id("lINBOX/" + folderName + "folders_tree"))
118                                .click();
119                this.deleteFolder.click();
120                Alert confirm = driver.switchTo().alert();
121                if (!inUse) {
122                        assert ("Você gostaria de excluir a pasta: " + folderName + "?")
123                                        .equals(confirm.getText());
124                } else {
125                        assert ("Não é possível remover esta pasta, pois está em uso no momento!")
126                                        .equals(confirm.getText());
127                }
128                confirm.accept();
129        }
130
131        /**
132         * Exclui pasta.
133         *
134         * @param folderName
135         *            Nome da pasta a ser excluida.
136         */
137        public void deleteSubFolder(String rootFolderName, String subFolderName) {
138                this.driver.findElement(
139                                By.id("pINBOX/" + rootFolderName + "folders_tree")).click();
140                this.driver.findElement(
141                                By.id("lINBOX/" + rootFolderName + "/" + subFolderName
142                                                + "folders_tree")).click();
143                this.deleteFolder.click();
144                Alert confirm = driver.switchTo().alert();
145                assert ("Você gostaria de excluir a pasta: " + subFolderName + "?")
146                                .equals(confirm.getText());
147                confirm.accept();
148        }
149
150}
Note: See TracBrowser for help on using the repository browser.