Ignore:
Timestamp:
05/11/11 15:25:35 (13 years ago)
Author:
luiz-fernando
Message:

Ticket #1402 - Novos casos de teste para preferencias administrativas

File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/pages/email/MailPage.java

    r3853 r4344  
    1919public class MailPage extends Page { 
    2020 
     21        /** Botao para criar novo email. */ 
    2122        @FindBy(xpath = "//table[@id='folders_tbl']/tbody/tr[1]/td/table/tbody/tr[2]/td/div/span") 
    2223        private WebElement newEmail; 
    2324 
     25        /** Campo "Para:". */ 
    2426        @FindBy(id = "to_1") 
    2527        private WebElement to; 
    2628 
     29        /** Campo "Assunto:". */ 
    2730        @FindBy(id = "subject_1") 
    2831        private WebElement subject; 
    2932 
     33        /** Botao para enviar email. */ 
    3034        @FindBy(id = "send_button_1") 
    3135        private WebElement send; 
    3236 
     37        /** Flag de importante no momento de compor um email. */ 
    3338        @FindBy(id = "important_message_1") 
    34         /** Flag de importante no momento de compor um email. */ 
    3539        private WebElement important; 
    3640 
     41        /** Flag de importante de um email aberto. */ 
    3742        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[2]/span[3]") 
    38         /** Flag de importante de um email aberto. */ 
    3943        private WebElement importantFlag; 
    4044 
     45        /** Filtra emails importantes. */ 
    4146        @FindBy(id = "span_flag_FLAGGED") 
    42         /** Filtra emails importantes. */ 
    4347        private WebElement importantFilter; 
    4448 
     49        /** Flag normal de um email aberto. */ 
    4550        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[2]/span[3]") 
    4651        private WebElement normalFlag; 
    4752 
     53        /** Flag nao lido de um email aberto. */ 
    4854        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[2]/span[2]") 
    4955        private WebElement notReadFlag; 
    5056 
     57        /** Checkbox de confirmacao de leitura. */ 
    5158        @FindBy(id = "return_receipt_1") 
    5259        private WebElement returnReceipt; 
    5360 
     61        /** Link para acionar exibicao do campo copia oculta Cco. */ 
    5462        @FindBy(id = "a_cco_link_1") 
    5563        private WebElement blindCarbonCopyLink; 
    5664 
     65        /** Campo copia oculta "Cco:". */ 
    5766        @FindBy(id = "cco_1") 
    5867        private WebElement blindCarbonCopy; 
    5968 
     69        /** Link para acionar exibicao do campo copia Cc. */ 
    6070        @FindBy(id = "a_cc_link_1") 
    6171        private WebElement carbonCopyLink; 
    6272 
     73        /** Campo copia "Cc:". */ 
    6374        @FindBy(id = "cc_1") 
    6475        private WebElement carbonCopy; 
    6576 
     77        /** Link para salvar email. */ 
    6678        @FindBy(id = "save_message_options_1") 
    6779        private WebElement saveEmail; 
    6880 
     81        /** Link para adicionar anexos ao email. */ 
    6982        @FindBy(linkText = "Anexos: adicionar+") 
    7083        private WebElement attachmentLink; 
    7184 
     85        /** Link para adicionar 1o anexo. */ 
    7286        @FindBy(id = "inputFile_1_1") 
    7387        private WebElement attachment; 
    7488 
     89        /** Link para adicionar 2o anexo. */ 
    7590        @FindBy(id = "inputFile_1_2") 
    7691        private WebElement attachment2; 
    7792 
     93        /** Link para remover anexo. */ 
     94        @FindBy(id = "linkFile_1_1") 
     95        private WebElement removeAttachmentLink; 
     96 
     97        /** Link para apagar email quando este estiver aberto. */ 
    7898        @FindBy(xpath = "//div[@id='footer_menu']/table[@id='footer_box']/tbody/tr[@id='table_message']/td[@id='span_options']/span[1]/span") 
    7999        private WebElement deleteEmailLink; 
    80100 
     101        /** Link para pasta lixeira. */ 
    81102        @FindBy(id = "lINBOX/Trashtree_folders") 
    82103        private WebElement trashFolder; 
    83104 
     105        /** Link para limpar lixeira. */ 
    84106        @FindBy(id = "empty_trash") 
    85107        private WebElement emptyTrashLink; 
     
    88110        private WebElement emailsListDiv; 
    89111 
     112        /** Campo contendo total de emails de uma pasta. */ 
    90113        @FindBy(id = "tot_m") 
    91114        private WebElement totalEmails; 
     
    94117        private WebElement emailTab; 
    95118 
     119        /** Checkbox para selecao de todos emails de uma pasta. */ 
    96120        @FindBy(id = "chk_box_select_all_messages") 
    97121        private WebElement selectAllEmails; 
    98122 
     123        /** Link para acionar o menu Ferramentas. */ 
    99124        @FindBy(xpath = "//td[@id='link_tools']/div/span") 
    100125        private WebElement toolsMenu; 
     
    116141        private WebElement moveEmailButton; 
    117142 
     143        /** Link para encaminhar em email aberto. */ 
    118144        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[3]/span[3]") 
    119145        private WebElement forwardEmail; 
    120146 
     147        /** Link para responder em email aberto. */ 
    121148        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[3]/span[5]") 
    122149        private WebElement replyEmail; 
    123150 
     151        /** Link para responder a todos em email aberto. */ 
    124152        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[2]/td/div/span[1]") 
    125153        private WebElement replyAllEmail; 
    126154 
     155        /** Link para responder sem historico em email aberto. */ 
    127156        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[2]/td/div/span[2]") 
    128157        private WebElement replyEmailWithoutHistory; 
    129158 
     159        /** Link para responder a todos sem historico em email aberto. */ 
    130160        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[2]/td/div/span[3]") 
    131161        private WebElement replyAllEmailWithoutHistory; 
    132162 
     163        /** Link para editar email na pasta de rascunhos. */ 
    133164        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr/td[2]/span[2]/span[1]") 
    134165        private WebElement editEmail; 
     
    140171        private WebElement discardNewEmail; 
    141172 
     173        /** 
     174         * Esse botao eh no alerta ao fechar uma mensagem nao salva e nao o botao 
     175         * salvar para rascunhos. 
     176         */ 
    142177        @FindBy(xpath = "//div[@id='lertContainer']/div[@id='lertWindow']/div[@id='lertButtons']/a[3]") 
    143         /** Esse botao eh no alerta ao fechar uma mensagem nao salva e nao o botao salvar para rascunhos. */ 
    144178        private WebElement saveNewEmail; 
     179 
     180        /** Nome da pasta "Caixa de Entrada". */ 
     181        public static final String INBOX_FOLDER = "lINBOXtree_folders"; 
     182 
     183        /** Nome da pasta "Enviados". */ 
     184        public static final String SENT_FOLDER = "lINBOX/Senttree_folders"; 
    145185 
    146186        /** 
     
    151191        } 
    152192 
     193        /** 
     194         * Cria um novo email. 
     195         */ 
    153196        public void createNewEmail() { 
    154197                this.newEmail.click(); 
     
    156199        } 
    157200 
     201        /** 
     202         * Cancela criacao de novo email. 
     203         */ 
    158204        public void cancelNewEmail() { 
    159205                this.cancelNewEmail.click(); 
    160206        } 
    161207 
     208        /** 
     209         * Descarta criacao de novo email. 
     210         */ 
    162211        public void discardNewEmail() { 
    163212                this.discardNewEmail.click(); 
    164213        } 
    165214 
     215        /** 
     216         * Salva email na pasta rascunhos. 
     217         */ 
    166218        public void saveNewEmail() { 
    167219                this.saveNewEmail.click(); 
    168220        } 
    169221 
     222        /** 
     223         * Preenche campo assunto. 
     224         *  
     225         * @param subject 
     226         *            Assunto a ser preenchido. 
     227         */ 
    170228        public void setSubject(String subject) { 
    171229                this.subject.sendKeys(subject != null ? subject : ""); 
    172230        } 
    173231 
     232        /** 
     233         * Preenche corpo (texto) do email. 
     234         *  
     235         * @param body 
     236         *            Texto a ser preenchido. 
     237         */ 
    174238        public void setBody(String body) { 
    175239                // Foi o unico jeito que consegui pegar o richtexteditor... 
    176240                if (body != null) { 
     241                        // Troca CR&|LF por <br> 
     242                        body = body.replaceAll("(\r\n|\r|\n|\n\r)", "<br>"); 
    177243                        ((JavascriptExecutor) driver) 
    178244                                        .executeScript("document.getElementById('body_1').contentWindow.document.body.innerHTML='" 
     
    195261        public String readEmail(String subject) { 
    196262                // waitForElementByXpath("//div[@id='exmail_main_body']/table[1]/tbody[@id='border_tbody']/tr[1]/td[2]/table/tbody/tr/td[1]"); 
    197                 String id = findEmailIdBySuject(subject); 
     263                String id = findEmailIdBySubject(subject); 
    198264                id = id.substring(id.lastIndexOf("_") + 1); 
    199265                clickElement(By.id("td_who_" + id)); 
     
    302368        public void openFolder(String folder) { 
    303369                clickElement(By.id(folder)); 
     370                // Espera pelo "Carregando..." aparecer. 
     371                waitForElement(By.id("divProgressBar")); 
    304372                waitForElement(By.id("divScrollMain_0")); 
     373                // Espera pelo "Carregando..." desaparecer. 
     374                isNotDisplayed(this 
     375                                .waitFindElement(By.id("divProgressBar"), 5000, 1000)); 
    305376                waitForElement(By 
    306377                                .xpath("//div[@id='divScrollMain_0']/table[@id='table_box']/tbody[@id='tbody_box']/tr[1]/td[1]/input[1]")); 
     
    318389        } 
    319390 
     391        /** 
     392         * Filtra somente as mensagens importantes. 
     393         */ 
    320394        public void setImportantFilter() { 
    321395                this.importantFilter.click(); 
     
    337411        } 
    338412 
     413        /** 
     414         * Move email para um pasta no servidor. 
     415         *  
     416         * @param folderName 
     417         *            Nome da pasta pre-existente no servidor. 
     418         */ 
    339419        public void moveEmail(String folderName) { 
    340420                this.moveEmailLink.click(); 
     
    343423        } 
    344424 
     425        /** 
     426         * Edita nome de pasta. 
     427         */ 
    345428        public void editFolder() { 
    346429                this.toolsMenu.click(); 
     
    350433        } 
    351434 
     435        /** 
     436         * Cria nova pasta. 
     437         *  
     438         * @param folderName 
     439         *            Nome da pasta a ser criada. 
     440         */ 
    352441        public void createNewFolder(String folderName) { 
    353442                this.editFolder(); 
     
    359448        } 
    360449 
     450        /** 
     451         * Exclui pasta. 
     452         *  
     453         * @param folderName 
     454         *            Nome da pasta a ser excluida. 
     455         */ 
    361456        public void deleteFolder(String folderName) { 
    362457                this.editFolder(); 
     
    377472        } 
    378473 
     474        /** 
     475         * Marca email como importante apos ler. 
     476         */ 
    379477        public void setImportantFlag() { 
    380478                this.waitForElement(By 
     
    383481        } 
    384482 
     483        /** 
     484         * Marca email como normal apos ler. 
     485         */ 
    385486        public void setNormalFlag() { 
    386487                this.waitForElement(By 
     
    389490        } 
    390491 
     492        /** 
     493         * Marca email como nao lido apos ler. 
     494         */ 
    391495        public void setNotReadFlag() { 
    392496                this.waitForElement(By 
     
    419523        } 
    420524 
     525        /** 
     526         * Seleciona todos emails da pasta corrente. 
     527         */ 
    421528        public void selectAllEmails() { 
    422529                this.selectAllEmails.click(); 
     
    456563        } 
    457564 
     565        /** 
     566         * Remove anexo do email sendo composto. 
     567         */ 
     568        public void removeAttachment() { 
     569                this.removeAttachmentLink.click(); 
     570        } 
     571 
    458572        public void addAttachment2(String attachment) { 
    459573                this.attachmentLink.click(); 
     
    476590 
    477591        /** 
    478          * @param checkAlert 
    479          */ 
    480         public void closeMail(boolean checkAlert) { 
     592         * @param discardEmail 
     593         */ 
     594        public void closeMail(boolean discardEmail) { 
    481595 
    482596                // Na versao Serpro: 
     
    489603                super.clickElement(By.xpath("//td[@id='border_id_1']//img")); 
    490604 
    491                 if (checkAlert) { 
    492                         Alert closeAlert = driver.switchTo().alert(); 
    493                         closeAlert.accept(); 
     605                // if (checkAlert) { 
     606                // Alert closeAlert = driver.switchTo().alert(); 
     607                // closeAlert.accept(); 
     608                // } 
     609 
     610                // Clica em descartar. 
     611                if (discardEmail) { 
     612                        super.clickElement(By 
     613                                        .xpath("//div[@id='lertWindow']/div[@id='lertButtons']/a[2]")); 
    494614                } 
    495615        } 
    496616 
    497         public void closeMail(String id) { 
     617        public void closeMail(String id, boolean discardEmail) { 
    498618                super.clickElement(By.xpath("//td[@id='border_id_" + id + "']//img")); 
    499         } 
    500  
     619                // Clica em cancelar 
     620                if (discardEmail) { 
     621                        super.clickElement(By 
     622                                        .xpath("//div[@id='lertWindow']/div[@id='lertButtons']/a[2]")); 
     623                } 
     624        } 
     625 
     626        /** 
     627         * Envia email. 
     628         *  
     629         * @param id 
     630         *            Id do email a ser enviado. 
     631         */ 
    501632        public void sendMail(String id) { 
    502633                super.findAndClickElement("send_button_" + id); 
     
    525656         * @param select 
    526657         *            Se email encontrado, deseja seleciona-lo? 
    527          * @return "id" do email. 
     658         * @return "id" do email se encontrar, <code>null</code> se nao encontrar. 
    528659         */ 
    529660        public String findEmailIdBySuject(String subject, boolean select) { 
     661                System.out.println("searching for --------->" + subject); 
    530662                String html = driver.getPageSource(); 
    531                 String part1 = StringUtils.substringBefore(html, subject); 
    532                 int start = StringUtils.lastIndexOf(part1, "id=\"") + 4; 
    533                 int last = StringUtils.indexOf(part1, "\"", start); 
    534                 String id = StringUtils.substring(part1, start, last); 
    535  
    536                 if (select) { 
    537                         // Marca checkbox correspondente ao id da mensagem. 
    538                         clickElement(By.id("check_box" + id.substring(1))); 
     663                // System.out.println(html.indexOf(subject)); 
     664                // System.out.println(html); 
     665                if (html.indexOf(subject) >= 0) { 
     666                        String part1 = StringUtils.substringBefore(html, subject); 
     667                        int start = StringUtils.lastIndexOf(part1, "id=\"") + 4; 
     668                        int last = StringUtils.indexOf(part1, "\"", start); 
     669                        String id = StringUtils.substring(part1, start, last); 
     670                        System.out.println("******************"); 
     671                        System.out.println("******************"); 
     672                        System.out.println("******************"); 
     673                        System.out.println("******************"); 
     674                        System.out.println("******************"); 
     675                        System.out.println("******************"); 
     676                        System.out.println(id); 
     677                        if (select) { 
     678                                // Marca checkbox correspondente ao id da mensagem. 
     679                                clickElement(By.id("check_box" + id.substring(1))); 
     680                        } 
     681                        return id; 
    539682                } 
    540                 return id; 
     683                return null; 
    541684        } 
    542685 
     
    570713        } 
    571714 
    572         public String findEmailIdBySuject(String subject) { 
     715        /** 
     716         * Procura email baseado no assunto na pasta corrente. 
     717         *  
     718         * @param subject 
     719         *            Assunto a ser pesquisado. 
     720         * @return Id do email encontrado. 
     721         */ 
     722        public String findEmailIdBySubject(String subject) { 
     723                return findEmailIdBySuject(subject, false); 
     724        } 
     725 
     726        /** 
     727         * Procura email baseado no assunto em uma pasta especifica. 
     728         *  
     729         * @param folder 
     730         *            Pasta de pesquisa. 
     731         * @param subject 
     732         *            Assunto a ser pesquisado. 
     733         * @return Id do email encontrado. 
     734         */ 
     735        public String findEmailIdBySubject(String folder, String subject) { 
     736                this.openFolder(folder); 
    573737                return findEmailIdBySuject(subject, false); 
    574738        } 
     
    619783        } 
    620784 
     785        /** 
     786         * @param id 
     787         *            Id do email. 
     788         * @return Texto do email. 
     789         */ 
    621790        public Object getBody(String id) { 
    622791                waitForElement(By.id("body_" + id)); 
Note: See TracChangeset for help on using the changeset viewer.