Ignore:
Timestamp:
05/26/11 15:29:49 (13 years ago)
Author:
luiz-fernando
Message:

Ticket #1402 - Novos casos de teste para pesquisa avançada de email

File:
1 edited

Legend:

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

    r4344 r4527  
    4747        private WebElement importantFilter; 
    4848 
     49        /** Filtra emails lidos. */ 
     50        @FindBy(id = "span_flag_SEEN") 
     51        private WebElement readFilter; 
     52 
     53        @FindBy(id = "span_flag_UNSEEN") 
     54        private WebElement notReadFilter; 
     55 
     56        @FindBy(id = "span_flag_ANSWERED") 
     57        private WebElement answeredFilter; 
     58 
    4959        /** Flag normal de um email aberto. */ 
    5060        @FindBy(xpath = "//div[@id='exmail_main_body']/div[2]/table/tbody/tr[1]/td/table/tbody/tr[1]/td[2]/span[3]") 
     
    99109        private WebElement deleteEmailLink; 
    100110 
     111        @FindBy(xpath = "//div[@id='footer_menu']/table[@id='footer_box']/tbody/tr[@id='table_message']/td[@id='span_options']/span[4]/span") 
     112        private WebElement exportEmailLink; 
     113 
    101114        /** Link para pasta lixeira. */ 
    102115        @FindBy(id = "lINBOX/Trashtree_folders") 
     
    128141        private WebElement editFolder; 
    129142 
     143        @FindBy(xpath = "//div[@id='menu_tools']/table/tbody/tr[3]/td") 
     144        private WebElement editFilter; 
     145 
    130146        @FindBy(xpath = "//input[@value='Nova Pasta']") 
    131147        private WebElement createNewFolder; 
     
    133149        @FindBy(xpath = "//input[@value='Excluir pasta']") 
    134150        private WebElement deleteFolder; 
     151 
     152        @FindBy(xpath = "//input[@value='Renomear pasta']") 
     153        private WebElement renameFolder; 
    135154 
    136155        @FindBy(xpath = "//span[@onclick='wfolders.makeWindow(\"\",\"move_to\")']") 
     
    178197        private WebElement saveNewEmail; 
    179198 
     199        @FindBy(xpath = "//table[@id='folders_tbl']/tbody/tr[1]/td/table/tbody/tr[1]/td/a[1]") 
     200        private WebElement searchMessages; 
     201 
     202        @FindBy(id = "txt_de") 
     203        private WebElement searchRemetente; 
     204 
     205        @FindBy(id = "txt_para") 
     206        private WebElement searchTo; 
     207        @FindBy(id = "txt_cc") 
     208        private WebElement searchCopy; 
     209        @FindBy(id = "txt_ass") 
     210        private WebElement searchSubject; 
     211        @FindBy(id = "txt_body") 
     212        private WebElement searchBody; 
     213        @FindBy(id = "since_date") 
     214        private WebElement searchSinceDate; 
     215        @FindBy(id = "before_date") 
     216        private WebElement searchBeforeDate; 
     217        @FindBy(id = "on_date") 
     218        private WebElement searchOnDate; 
     219        @FindBy(id = "flagged") 
     220        private WebElement searchImportantFilter; 
     221        @FindBy(id = "seen") 
     222        private WebElement searchSeenFilter; 
     223        @FindBy(id = "answered") 
     224        private WebElement searchAnsweredFilter; 
     225        @FindBy(id = "recent") 
     226        private WebElement searchRecentFilter; 
     227 
     228        @FindBy(id = "incluir") 
     229        private WebElement includeFolderForSearch; 
     230 
     231        @FindBy(xpath = "//div[@id='window_search']/div[@id='div_button_search']/table/tbody/tr/td[1]/input") 
     232        private WebElement searchButton; 
     233 
     234        @FindBy(xpath = "//div[@id='window_search']/div[@id='div_button_search']/table/tbody/tr/td[3]/input") 
     235        private WebElement closeSearchButton; 
     236 
    180237        /** Nome da pasta "Caixa de Entrada". */ 
    181238        public static final String INBOX_FOLDER = "lINBOXtree_folders"; 
     
    204261        public void cancelNewEmail() { 
    205262                this.cancelNewEmail.click(); 
     263        } 
     264 
     265        public void setSearchRemetente(String searchRemetente) { 
     266                this.searchRemetente.sendKeys(searchRemetente); 
     267        } 
     268 
     269        public void setSearchTo(String searchTo) { 
     270                this.searchTo.sendKeys(searchTo); 
     271        } 
     272 
     273        public void setSearchCopy(String searchCopy) { 
     274                this.searchCopy.sendKeys(searchCopy); 
     275        } 
     276 
     277        public void setSearchSubject(String searchSubject) { 
     278                this.searchSubject.sendKeys(searchSubject); 
     279        } 
     280 
     281        public void setSearchBody(String searchBody) { 
     282                this.searchBody.sendKeys(searchBody); 
     283        } 
     284 
     285        public void setSearchSinceDate(String searchSinceDate) { 
     286                this.searchSinceDate.sendKeys(searchSinceDate); 
     287        } 
     288 
     289        public void setSearchBeforeDate(String searchBeforeDate) { 
     290                this.searchBeforeDate.sendKeys(searchBeforeDate); 
     291        } 
     292 
     293        public void setSearchOnDate(String searchOnDate) { 
     294                this.searchOnDate.sendKeys(searchOnDate); 
     295        } 
     296 
     297        public void setSearchSeenFilter(String searchSeenFilter) { 
     298                super.setComboValue(this.searchSeenFilter, searchSeenFilter); 
     299        } 
     300 
     301        public void setSearchAnsweredFilter(String searchAnsweredFilter) { 
     302                super.setComboValue(this.searchAnsweredFilter, searchAnsweredFilter); 
     303        } 
     304 
     305        public void setSearchRecentFilter(String searchRecentFilter) { 
     306                super.setComboValue(this.searchRecentFilter, searchRecentFilter); 
     307        } 
     308 
     309        public void openSearchMessageWindow() { 
     310                this.searchMessages.click(); 
     311                super.waitForElement(By.id("flagged")); 
     312        } 
     313 
     314        /** 
     315         * Pesquisa apenas mensagens importantes. 
     316         *  
     317         * @param flag 
     318         */ 
     319        public void searchImportantMessage(String flag) { 
     320                super.setComboValue(searchImportantFilter, flag); 
     321        } 
     322 
     323        /** 
     324         * Pesquisa apenas mensagens lidas. 
     325         *  
     326         * @param flag 
     327         */ 
     328        public void searchSeenMessage(String flag) { 
     329                super.setComboValue(searchSeenFilter, flag); 
     330        } 
     331 
     332        /** 
     333         * Escolhe pastas a serem pesquisadas. 
     334         *  
     335         * @param folder 
     336         */ 
     337        public void setSearchFolders(String folder) { 
     338                super.clickElement(By.id(folder)); 
     339                includeFolderForSearch.click(); 
     340        } 
     341 
     342        public void doSearch() { 
     343                searchButton.click(); 
     344        } 
     345 
     346        public void closeSearchWindow() { 
     347                closeSearchButton.click(); 
    206348        } 
    207349 
     
    300442        } 
    301443 
     444        /** 
     445         * Mostra detalhes (cabecalho do email sendo lido). 
     446         *  
     447         * @param id 
     448         */ 
     449        public void showDetails(String id) { 
     450                driver.findElement(By.id("option_hide_more_" + id + "_r")).click(); 
     451        } 
     452 
     453        /** 
     454         * Remove anexos do email sendo lido. 
     455         */ 
     456        public void removeAllAttachments() { 
     457                driver.findElement( 
     458                                By.xpath("//div[@id='exmail_main_body']/div[2]/table/tbody/tr[2]/td/div[1]/table[1]/tbody/tr[5]/td[2]/a[1]")) 
     459                                .click(); 
     460                Alert alert = driver.switchTo().alert(); 
     461                assert ("ATENÇÃO: Após a confirmação dessa mensagem, TODOS os anexos da mesma serão apagados. Tenha certeza de que possui uma cópia dos arquivos importantes. Deseja confirmar a operação?" 
     462                                .equals(alert.getText())); 
     463                alert.accept(); 
     464        } 
     465 
     466        public void blockRecipient(String message) { 
     467                driver.findElement( 
     468                                By.xpath("//div[@id='exmail_main_body']/div[2]/table/tbody/tr[2]/td/div[1]/table[1]/tbody/tr[1]/td[1]/span[@id='tt_d']/img")) 
     469                                .click(); 
     470                // Espera pelo "Carregando..." aparecer. 
     471                waitForElement(By.id("divProgressBar")); 
     472                waitForElement(By.id("divScrollMain_0")); 
     473                // Espera pelo "Carregando..." desaparecer. 
     474                isNotDisplayed(this 
     475                                .waitFindElement(By.id("divProgressBar"), 5000, 1000)); 
     476                Alert alert = driver.switchTo().alert(); 
     477                assert (message.equals(alert.getText())); 
     478                alert.accept(); 
     479        } 
     480 
    302481        private void reply(String id) { 
    303482                super.waitForElement(By.id("to_" + id)); 
     
    366545         *            Pasta de email a ser aberta. 
    367546         */ 
    368         public void openFolder(String folder) { 
     547        public void openFolder(String folder, boolean waitEmail) { 
     548                waitForElement(By.id(folder)); 
    369549                clickElement(By.id(folder)); 
    370550                // Espera pelo "Carregando..." aparecer. 
     
    374554                isNotDisplayed(this 
    375555                                .waitFindElement(By.id("divProgressBar"), 5000, 1000)); 
    376                 waitForElement(By 
    377                                 .xpath("//div[@id='divScrollMain_0']/table[@id='table_box']/tbody[@id='tbody_box']/tr[1]/td[1]/input[1]")); 
     556                if (waitEmail) { 
     557                        waitForElement(By 
     558                                        .xpath("//div[@id='divScrollMain_0']/table[@id='table_box']/tbody[@id='tbody_box']/tr[1]/td[1]/input[1]")); 
     559                } 
     560        } 
     561 
     562        public void openFolder(String folder) { 
     563                openFolder(folder, true); 
    378564        } 
    379565 
     
    394580        public void setImportantFilter() { 
    395581                this.importantFilter.click(); 
     582        } 
     583 
     584        /** 
     585         * Filtra somente as mensagens lidas. 
     586         */ 
     587        public void setReadFilter() { 
     588                this.readFilter.click(); 
     589        } 
     590 
     591        /** 
     592         * Filtra somente as mensagens nao lidas. 
     593         */ 
     594        public void setNotReadFilter() { 
     595                this.notReadFilter.click(); 
     596        } 
     597 
     598        /** 
     599         * Filtra somente as mensagens respondidas. 
     600         */ 
     601        public void setAnsweredFilter() { 
     602                this.answeredFilter.click(); 
    396603        } 
    397604 
     
    434641 
    435642        /** 
     643         * Edita filtros. 
     644         */ 
     645        public void editFilter() { 
     646                this.toolsMenu.click(); 
     647                this.waitForElement(By 
     648                                .xpath("//div[@id='menu_tools']/table/tbody/tr[3]/td")); 
     649                this.editFilter.click(); 
     650        } 
     651 
     652        /** 
     653         * Apaga uma regra do filtro. 
     654         *  
     655         * @param id 
     656         */ 
     657        public void deleteRule(int id) { 
     658                this.waitForElement(By.id("rule_" + id)); 
     659                driver.findElement(By.id("rule_" + id)).click(); 
     660                driver.findElement(By.xpath("//div[@id='form_buttons']/input[3]")) 
     661                                .click(); 
     662                driver.findElement(By.xpath("//div[@id='form_buttons']/input[4]")) 
     663                                .click(); 
     664        } 
     665 
     666        /** 
    436667         * Cria nova pasta. 
    437668         *  
     
    441672        public void createNewFolder(String folderName) { 
    442673                this.editFolder(); 
     674                this.createFolder(folderName); 
     675        } 
     676 
     677        private void createFolder(String folderName) { 
    443678                this.createNewFolder.click(); 
    444679                Alert newFolder = driver.switchTo().alert(); 
     
    449684 
    450685        /** 
     686         * Cria sub pasta. 
     687         *  
     688         * @param rootFolderName 
     689         *            Pasta pai. 
     690         * @param subFolderName 
     691         *            Nome da sub pasta a ser criada. 
     692         */ 
     693        public void createSubFolder(String rootFolderName, String subFolderName) { 
     694                this.editFolder(); 
     695                this.driver.findElement( 
     696                                By.id("lINBOX/" + rootFolderName + "folders_tree")).click(); 
     697                this.createFolder(subFolderName); 
     698        } 
     699 
     700        /** 
     701         * Renomeia pasta. 
     702         *  
     703         * @param folderName 
     704         *            Nome da pasta a ser renomeada. 
     705         * @param newName 
     706         *            Novo nome da pasta. 
     707         */ 
     708        public void renameFolder(String folderName, String newName) { 
     709                this.editFolder(); 
     710                this.driver.findElement(By.id("lINBOX/" + folderName + "folders_tree")) 
     711                                .click(); 
     712                this.renameFolder.click(); 
     713                Alert newFolder = driver.switchTo().alert(); 
     714                assert "Entre com um nome para a pasta:".equals(newFolder.getText()); 
     715                newFolder.sendKeys(newName); 
     716                newFolder.accept(); 
     717        } 
     718 
     719        /** 
     720         * @param folderName 
     721         */ 
     722        public void renameFolderInUse(String folderName) { 
     723                this.editFolder(); 
     724                this.driver.findElement(By.id("lINBOX/" + folderName + "folders_tree")) 
     725                                .click(); 
     726                this.renameFolder.click(); 
     727                Alert newFolder = driver.switchTo().alert(); 
     728                assert "Não é possível renomear esta pasta, pois está em uso no momento!" 
     729                                .equals(newFolder.getText()); 
     730                newFolder.accept(); 
     731        } 
     732 
     733        /** 
    451734         * Exclui pasta. 
    452735         *  
     
    459742                                .click(); 
    460743                this.deleteFolder.click(); 
     744        } 
     745 
     746        /** 
     747         * Exclui pasta. 
     748         *  
     749         * @param folderName 
     750         *            Nome da pasta a ser excluida. 
     751         */ 
     752        public void deleteFolder(String folderName, boolean inUse) { 
     753                this.editFolder(); 
     754                this.driver.findElement(By.id("lINBOX/" + folderName + "folders_tree")) 
     755                                .click(); 
     756                this.deleteFolder.click(); 
    461757                Alert confirm = driver.switchTo().alert(); 
    462                 assert ("Você gostaria de excluir a pasta: " + folderName + "?") 
     758                if (!inUse) { 
     759                        assert ("Você gostaria de excluir a pasta: " + folderName + "?") 
     760                                        .equals(confirm.getText()); 
     761                } else { 
     762                        assert ("Não é possível remover esta pasta, pois está em uso no momento!") 
     763                                        .equals(confirm.getText()); 
     764                } 
     765                confirm.accept(); 
     766        } 
     767 
     768        /** 
     769         * Exclui pasta. 
     770         *  
     771         * @param folderName 
     772         *            Nome da pasta a ser excluida. 
     773         */ 
     774        public void deleteSubFolder(String rootFolderName, String subFolderName) { 
     775                this.editFolder(); 
     776                this.driver.findElement( 
     777                                By.id("pINBOX/" + rootFolderName + "folders_tree")).click(); 
     778                this.driver.findElement( 
     779                                By.id("lINBOX/" + rootFolderName + "/" + subFolderName 
     780                                                + "folders_tree")).click(); 
     781                this.deleteFolder.click(); 
     782                Alert confirm = driver.switchTo().alert(); 
     783                assert ("Você gostaria de excluir a pasta: " + subFolderName + "?") 
    463784                                .equals(confirm.getText()); 
    464785                confirm.accept(); 
     
    521842        public void deleteEmail() { 
    522843                this.deleteEmailLink.click(); 
     844        } 
     845 
     846        /** 
     847         * Exporta email previamente selecionado. 
     848         */ 
     849        public void exportEmail() { 
     850                this.exportEmailLink.click(); 
    523851        } 
    524852 
     
    659987         */ 
    660988        public String findEmailIdBySuject(String subject, boolean select) { 
    661                 System.out.println("searching for --------->" + subject); 
     989                // System.out.println("searching for --------->" + subject); 
    662990                String html = driver.getPageSource(); 
    663991                // System.out.println(html.indexOf(subject)); 
     
    668996                        int last = StringUtils.indexOf(part1, "\"", start); 
    669997                        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); 
     998                        // System.out.println(id); 
    677999                        if (select) { 
    6781000                                // Marca checkbox correspondente ao id da mensagem. 
     
    6811003                        return id; 
    6821004                } 
     1005                System.out.println("email not found"); 
    6831006                return null; 
    6841007        } 
     
    7141037 
    7151038        /** 
     1039         * @param emailId 
     1040         *            Id do email. 
     1041         * @return <code>true</code> se email lido, <code>false</code> caso 
     1042         *         contrario. 
     1043         */ 
     1044        public boolean isRead(String emailId) { 
     1045                return super 
     1046                                .isDisplayed((RenderedWebElement) driver.findElement(By 
     1047                                                .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='" 
     1048                                                                + emailId 
     1049                                                                + "']/td[@id='td_message_unseen_" 
     1050                                                                + emailId + "']/img"))); 
     1051        } 
     1052 
     1053        /** 
     1054         * @param emailId 
     1055         *            Id do email. 
     1056         * @return <code>true</code> se email nao lido, <code>false</code> caso 
     1057         *         contrario. 
     1058         */ 
     1059        public boolean isNotRead(String emailId) { 
     1060                return super 
     1061                                .isDisplayed((RenderedWebElement) driver.findElement(By 
     1062                                                .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='" 
     1063                                                                + emailId 
     1064                                                                + "']/td[@id='td_message_unseen_" 
     1065                                                                + emailId + "']/img"))); 
     1066        } 
     1067 
     1068        /** 
     1069         * @param emailId 
     1070         *            Id do email. 
     1071         * @return <code>true</code> se email respondido, <code>false</code> caso 
     1072         *         contrario. 
     1073         */ 
     1074        public boolean isAnswered(String emailId) { 
     1075                return super 
     1076                                .isDisplayed((RenderedWebElement) driver.findElement(By 
     1077                                                .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='" 
     1078                                                                + emailId 
     1079                                                                + "']/td[@id='td_message_answered_" 
     1080                                                                + emailId + "']/img"))); 
     1081        } 
     1082 
     1083        /** 
    7161084         * Procura email baseado no assunto na pasta corrente. 
    7171085         *  
Note: See TracChangeset for help on using the changeset viewer.