Changeset 3708 for devel/testlink


Ignore:
Timestamp:
01/19/11 14:25:51 (13 years ago)
Author:
luiz-fernando
Message:

Ticket #1402 - Novos casos de teste implementados usando WebDriver?

Location:
devel/testlink/automation2.0
Files:
19 added
1 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • devel/testlink/automation2.0/src/test/java/br/gov/serpro/expresso/cte/common/BaseTestCase.java

    r3663 r3708  
    3434        } 
    3535 
     36        /** 
     37         * TODO Rever esse metodo. Foi o unico jeito que consegui fazer pegar o 
     38         * numero total de mensagens importantes. O metodo apenas aguarda 5 segundos 
     39         * antes de continuar a execucao. 
     40         *  
     41         * @throws Exception 
     42         *  
     43         * @see br.gov.serpro.cte.email.listar.ListarEmailsImportantesTestCase 
     44         */ 
     45        public void dummyWait() throws Exception { 
     46                dummyWait(5); 
     47        } 
     48 
     49        /** 
     50         * @param seconds 
     51         * @throws Exception 
     52         */ 
     53        public void dummyWait(int seconds) throws Exception { 
     54                for (int second = 0;; second++) { 
     55                        if (second >= seconds) { 
     56                                System.out.println("timeout"); 
     57                                return; 
     58                        } 
     59                        Thread.sleep(1000); 
     60                } 
     61 
     62        } 
     63 
    3664} 
  • devel/testlink/automation2.0/src/test/java/br/gov/serpro/expresso/cte/common/Constants.java

    r3663 r3708  
    88        public static final String EMAIL_TESTE_1 = Config.getInstance().getValor( 
    99                        "email.teste.1"); 
     10        public static final String EMAIL_TESTE_N_DESTINATARIOS = Config 
     11                        .getInstance().getValor("email.teste.multiplos"); 
     12        public static final String EMAIL_INVALIDO = Config.getInstance().getValor( 
     13                        "email.invalido"); 
    1014        public static final String EMAIL_ASSUNTO = Config.getInstance().getValor( 
    1115                        "assunto"); 
     16        public static final String EMAIL_ASSUNTO_COPIA_OCULTA = Config 
     17                        .getInstance().getValor("assunto.somente.copia.oculta"); 
     18        public static final String EMAIL_ASSUNTO_COPIA = Config.getInstance() 
     19                        .getValor("assunto.somente.copia"); 
     20        public static final String EMAIL_ASSUNTO_MULTIPLOS_ANEXOS = Config 
     21                        .getInstance().getValor("assunto.multiplos.anexos"); 
     22        public static final String EMAIL_ASSUNTO_MULTIPLOS_DESTINATARIOS = Config 
     23                        .getInstance().getValor("assunto.multiplos.destinatarios"); 
    1224        public static final String EMAIL_TEXTO = Config.getInstance().getValor( 
    1325                        "texto.email"); 
    14         public static final String EMAIL_ENVIADO = Config.getInstance() 
     26        public static final String EMAIL_TEXTO_COPIA_OCULTA = Config.getInstance() 
     27                        .getValor("texto.email.copia.oculta"); 
     28        public static final String EMAIL_TEXTO_COPIA = Config.getInstance() 
     29                        .getValor("texto.email.copia"); 
     30        public static final String EMAIL_TEXTO_MULTIPLOS_ANEXOS = Config 
     31                        .getInstance().getValor("texto.email.multiplos.anexos"); 
     32        public static final String EMAIL_TEXTO_MULTIPLOS_DESTINATARIOS = Config 
     33                        .getInstance().getValor("texto.email.multiplos.destinatarios"); 
     34 
     35        public static final String MSG_EMAIL_ENVIADO = Config.getInstance() 
    1536                        .getMensagem("email.enviado"); 
    16  
    17         public static final String EMAIL_APAGAR_MENSAGEM = Config.getInstance() 
     37        public static final String MSG_EMAIL_APAGAR_MENSAGEM = Config.getInstance() 
    1838                        .getMensagem("apagar.uma.mensagem"); 
    19         public static final String EMAIL_LIMPAR_LIXEIRA = Config.getInstance() 
     39        public static final String MSG_EMAIL_APAGAR_MENSAGENS = Config 
     40                        .getInstance().getMensagem("apagar.mensagem"); 
     41        public static final String MSG_EMAIL_LIMPAR_LIXEIRA = Config.getInstance() 
    2042                        .getMensagem("limpar.lixeira"); 
     43        public static final String MSG_EMAIL_DESTINATARIO_INVALIDO = Config 
     44                        .getInstance().getMensagem("destinatario.invalido"); 
     45        public static final String MSG_EMAIL_IMPORTANTE = Config.getInstance() 
     46                        .getMensagem("marcar.importante"); 
     47        public static final String MSG_EMAIL_NORMAL = Config.getInstance() 
     48                        .getMensagem("marcar.normal"); 
     49        public static final String MSG_EMAIL_NAO_LIDO = Config.getInstance() 
     50                        .getMensagem("marcar.nao.lido"); 
    2151 
    2252} 
  • devel/testlink/automation2.0/src/test/java/br/gov/serpro/expresso/cte/email/compor/EnviarEmailConfirmacaoLeituraTestCase.java

    r3663 r3708  
    1717                mp.composeEmail("luiz-fernando.estivalet@cte.serpro.gov.br", 
    1818                                "assunto conf leitura", "texto conf leitura"); 
    19                 mp.setReturnReceipt(); 
     19                mp.checkReturnReceipt(); 
    2020                mp.sendMail(); 
    2121                mp.assertMessage("Sua mensagem foi enviada e salva."); 
  • devel/testlink/automation2.0/src/test/java/br/gov/serpro/expresso/cte/email/compor/EnviarEmailImportanteTestCase.java

    r3663 r3708  
    1616                mp.composeEmail("luiz-fernando.estivalet@cte.serpro.gov.br", 
    1717                                "assunto importante", "texto importante"); 
    18                 mp.setImportantFlag(); 
     18                mp.checkImportantFlag(); 
    1919                mp.sendMail(); 
    2020                mp.assertMessage("Sua mensagem foi enviada e salva."); 
  • devel/testlink/automation2.0/src/test/java/br/gov/serpro/expresso/cte/email/compor/EnviarEmailTestCase.java

    r3663 r3708  
    1717                mp.composeEmail(EMAIL_TESTE_1, EMAIL_ASSUNTO, EMAIL_TEXTO); 
    1818                mp.sendMail(); 
    19                 mp.assertMessage(EMAIL_ENVIADO); 
     19                mp.assertMessage(MSG_EMAIL_ENVIADO); 
    2020        } 
    2121} 
  • devel/testlink/automation2.0/src/test/java/br/gov/serpro/expresso/cte/email/listar/ApagarEmailSelecionadoTestCase.java

    r3663 r3708  
    1717                mp.findEmailIdBySuject(EMAIL_ASSUNTO, true); 
    1818                mp.deleteEmail(); 
    19                 mp.assertMessage(EMAIL_APAGAR_MENSAGEM); 
     19                mp.assertMessage(MSG_EMAIL_APAGAR_MENSAGEM); 
    2020        } 
    2121 
  • devel/testlink/automation2.0/src/test/java/br/gov/serpro/expresso/cte/email/listar/LimparLixeiraTestCase.java

    r3663 r3708  
    1919                // Alerta de confirmacao de limpeza da lixeira. 
    2020                Alert confirm = driver.switchTo().alert(); 
    21                 assert EMAIL_LIMPAR_LIXEIRA.equals(confirm.getText()); 
     21                assert MSG_EMAIL_LIMPAR_LIXEIRA.equals(confirm.getText()); 
    2222                confirm.accept(); 
    2323 
  • devel/testlink/automation2.0/src/test/java/br/gov/serpro/expresso/cte/pages/common/Page.java

    r3663 r3708  
    4343 
    4444        /** 
     45         * Aguarda elemento aparecer e depois clica. 
     46         *  
     47         * @param id 
     48         *            Id do elemento a ser clicado. 
     49         */ 
     50        public void findAndClickElement(String id) { 
     51                this.waitForElementById(id); 
     52                this.clickElement(id); 
     53        } 
     54 
     55        /** 
    4556         * Aguarda por um elemento. 
    4657         *  
     
    7687         * @param e 
    7788         */ 
    78         private void isDisplayed(RenderedWebElement e) { 
     89        public boolean isDisplayed(RenderedWebElement e) { 
    7990                System.out.println("starting tentatives"); 
    8091                // Up to 10 times 
     
    8394                        // Check whether our element is visible yet 
    8495                        if (e.isDisplayed()) { 
    85                                 return; 
     96                                return true; 
    8697                        } 
    8798 
     
    92103                        } 
    93104                } 
    94  
     105                return false; 
    95106        } 
    96107 
  • devel/testlink/automation2.0/src/test/java/br/gov/serpro/expresso/cte/pages/email/MailPage.java

    r3663 r3708  
    22 
    33import org.apache.commons.lang.StringUtils; 
     4import org.openqa.selenium.Alert; 
     5import org.openqa.selenium.By; 
    46import org.openqa.selenium.JavascriptExecutor; 
     7import org.openqa.selenium.RenderedWebElement; 
    58import org.openqa.selenium.WebDriver; 
    69import org.openqa.selenium.WebElement; 
     
    3033 
    3134        @FindBy(id = "important_message_1") 
     35        /** Flag de importante no momento de compor um email. */ 
    3236        private WebElement important; 
     37 
     38        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[2]/span[3]") 
     39        /** Flag de importante de um email aberto. */ 
     40        private WebElement importantFlag; 
     41 
     42        @FindBy(id = "span_flag_FLAGGED") 
     43        /** Filtra emails importantes. */ 
     44        private WebElement importantFilter; 
     45 
     46        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[2]/span[3]") 
     47        private WebElement normalFlag; 
     48 
     49        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[2]/span[2]") 
     50        private WebElement notReadFlag; 
    3351 
    3452        @FindBy(id = "return_receipt_1") 
     
    5068        private WebElement saveEmail; 
    5169 
    52         @FindBy(xpath = "//div[@id='div_message_scroll_1']/form/table/tbody/tr[10]/td[2]/a") 
     70        @FindBy(linkText = "Anexos: adicionar+") 
    5371        private WebElement attachmentLink; 
    5472 
     
    5674        private WebElement attachment; 
    5775 
     76        @FindBy(id = "inputFile_1_2") 
     77        private WebElement attachment2; 
     78 
    5879        @FindBy(xpath = "//div[@id='footer_menu']/table[@id='footer_box']/tbody/tr[@id='table_message']/td[@id='span_options']/span[1]/span") 
    5980        private WebElement deleteEmailLink; 
     
    7192        private WebElement totalEmails; 
    7293 
     94        @FindBy(xpath = "//div[@id='exmail_main_body']/table[1]/tbody[@id='border_tbody']/tr[1]/td[2]/table/tbody/tr/td[1]") 
     95        private WebElement emailTab; 
     96 
     97        @FindBy(id = "chk_box_select_all_messages") 
     98        private WebElement selectAllEmails; 
     99 
     100        @FindBy(xpath = "//td[@id='link_tools']/div/span") 
     101        private WebElement toolsMenu; 
     102 
     103        @FindBy(xpath = "//div[@id='menu_tools']/table/tbody/tr[4]/td") 
     104        private WebElement editFolder; 
     105 
     106        @FindBy(xpath = "//input[@value='Nova Pasta']") 
     107        private WebElement createNewFolder; 
     108 
     109        @FindBy(xpath = "//input[@value='Excluir pasta']") 
     110        private WebElement deleteFolder; 
     111 
     112        @FindBy(xpath = "//span[@onclick='wfolders.makeWindow(\"\",\"move_to\")']") 
     113        /** Opcao de mover do rodape. */ 
     114        private WebElement moveEmailLink; 
     115 
     116        @FindBy(id = "dJSWin_wfolders_bok") 
     117        private WebElement moveEmailButton; 
     118 
     119        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[3]/span[3]") 
     120        private WebElement forwardEmail; 
     121 
    73122        /** 
    74123         * @param driver 
     
    78127        } 
    79128 
    80         /** 
    81          * @param to 
    82          * @param subject 
    83          * @param body 
    84          */ 
    85         public void composeEmail(String to, String subject, String body) { 
     129        public void createNewEmail() { 
    86130                this.newEmail.click(); 
    87131                waitForElementById("to_1"); 
    88                 this.to.sendKeys(to); 
     132        } 
     133 
     134        public void setSubject(String subject) { 
    89135                this.subject.sendKeys(subject != null ? subject : ""); 
    90  
     136        } 
     137 
     138        public void setBody(String body) { 
    91139                // Foi o unico jeito que consegui pegar o richtexteditor... 
    92140                if (body != null) { 
     
    98146 
    99147        /** 
     148         * @param to 
     149         * @param subject 
     150         * @param body 
     151         */ 
     152        public void composeEmail(String to, String subject, String body) { 
     153                this.createNewEmail(); 
     154                this.to.sendKeys(to); 
     155                this.setSubject(subject); 
     156                this.setBody(body); 
     157        } 
     158 
     159        public String readEmail(String subject) { 
     160                String id = findEmailIdBySuject(subject); 
     161                clickElement(id); 
     162                return id.substring(id.lastIndexOf("_") + 1); 
     163                // waitForElementByXpath("//div[@id='exmail_main_body']/table[1]/tbody[@id='border_tbody']/tr[1]/td[2]/table/tbody/tr/td[1]"); 
     164        } 
     165 
     166        /** 
     167         * Encaminha uma mensagem. 
     168         *  
     169         * @param id 
     170         *            Id da mensagem a ser encaminhada 
     171         * @param to 
     172         *            Destinatario 
     173         */ 
     174        public void forwardEmail(String id, String to) { 
     175                super.waitForElementByXpath("//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[3]/span[3]"); 
     176                this.forwardEmail.click(); 
     177                super.waitForElementById("to_" + id); 
     178                driver.findElement(By.id("to_" + id)).sendKeys(to); 
     179                driver.findElement(By.id("send_button_" + id)).click(); 
     180        } 
     181 
     182        /** 
    100183         * Abre uma pasta de email especifica. 
    101184         *  
     
    119202        } 
    120203 
     204        public void setImportantFilter() { 
     205                this.importantFilter.click(); 
     206        } 
     207 
    121208        /** 
    122209         * Limpa a lixeira. 
     
    134221        } 
    135222 
     223        public void moveEmail(String folderName) { 
     224                this.moveEmailLink.click(); 
     225                super.findAndClickElement("lINBOX/" + folderName + "wfolders_tree"); 
     226                this.moveEmailButton.click(); 
     227        } 
     228 
     229        public void editFolder() { 
     230                this.toolsMenu.click(); 
     231                this.waitForElementByXpath("//div[@id='menu_tools']/table/tbody/tr[4]/td"); 
     232                this.editFolder.click(); 
     233        } 
     234 
     235        public void createNewFolder(String folderName) { 
     236                this.editFolder(); 
     237                this.createNewFolder.click(); 
     238                Alert newFolder = driver.switchTo().alert(); 
     239                assert "Insira o nome da nova pasta: ".equals(newFolder.getText()); 
     240                newFolder.sendKeys(folderName); 
     241                newFolder.accept(); 
     242        } 
     243 
     244        public void deleteFolder(String folderName) { 
     245                this.editFolder(); 
     246                this.driver.findElement(By.id("lINBOX/" + folderName + "folders_tree")) 
     247                                .click(); 
     248                this.deleteFolder.click(); 
     249                Alert confirm = driver.switchTo().alert(); 
     250                assert ("Você gostaria de excluir a pasta: " + folderName + "?") 
     251                                .equals(confirm.getText()); 
     252                confirm.accept(); 
     253        } 
     254 
    136255        /** 
    137256         * Marca email sendo composto como importante. 
    138257         */ 
     258        public void checkImportantFlag() { 
     259                this.important.click(); 
     260        } 
     261 
    139262        public void setImportantFlag() { 
    140                 this.important.click(); 
     263                this.waitForElementByXpath("//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[2]/span[3]"); 
     264                this.importantFlag.click(); 
     265        } 
     266 
     267        public void setNormalFlag() { 
     268                this.waitForElementByXpath("//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[2]/span[3]"); 
     269                this.normalFlag.click(); 
     270        } 
     271 
     272        public void setNotReadFlag() { 
     273                this.waitForElementByXpath("//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[2]/span[2]"); 
     274                this.notReadFlag.click(); 
    141275        } 
    142276 
     
    144278         * Marca solicitacao de confirmacao de leitura do email sendo composto. 
    145279         */ 
    146         public void setReturnReceipt() { 
     280        public void checkReturnReceipt() { 
    147281                this.returnReceipt.click(); 
    148282        } 
     
    163297        public void deleteEmail() { 
    164298                this.deleteEmailLink.click(); 
     299        } 
     300 
     301        public void selectAllEmails() { 
     302                this.selectAllEmails.click(); 
    165303        } 
    166304 
     
    196334                this.attachmentLink.click(); 
    197335                this.attachment.sendKeys(attachment); 
     336        } 
     337 
     338        public void addAttachment2(String attachment) { 
     339                this.attachmentLink.click(); 
     340                this.attachment2.sendKeys(attachment); 
    198341        } 
    199342 
     
    244387 
    245388        /** 
     389         * @return Ids de todos os emails da pasta selecionada. 
     390         */ 
     391        public String[] getEmailIds() { 
     392                String[] ids = new String[this.getTotalEmails()]; 
     393                for (int i = 1; i <= this.getTotalEmails(); i++) { 
     394                        String id = driver 
     395                                        .findElement( 
     396                                                        By.xpath("//div[@id='divScrollMain_0']/table[@id='table_box']/tbody[@id='tbody_box']/tr[" 
     397                                                                        + i + "]/td[1]/input[1]")).getAttribute( 
     398                                                        "id"); 
     399                        ids[i - 1] = id.substring(id.lastIndexOf("_") + 1); 
     400                } 
     401                return ids; 
     402        } 
     403 
     404        /** 
     405         * @param emailId 
     406         *            Id do email. 
     407         * @return <code>true</code> se email importante, <code>false</code> caso 
     408         *         contrario. 
     409         */ 
     410        public boolean isImportant(String emailId) { 
     411                return super 
     412                                .isDisplayed((RenderedWebElement) driver.findElement(By 
     413                                                .xpath("//div[@id='exmail_main_body']/div[@id='content_id_0']/div[@id='divScrollMain_0']/table[@id='table_box']/tbody[@id='tbody_box']/tr[@id='" 
     414                                                                + emailId + "']/td[5]/img"))); 
     415        } 
     416 
     417        public String findEmailIdBySuject(String subject) { 
     418                return findEmailIdBySuject(subject, false); 
     419        } 
     420 
     421        /** 
    246422         * Verifica se mensagem informada corresponde ao exibido pelo Expresso na 
    247423         * div onde sao exibidas mensagens ao usuario. 
Note: See TracChangeset for help on using the changeset viewer.