View Javadoc

1   package org.itracker.selenium;
2   
3   import java.io.IOException;
4   import org.junit.Test;
5   
6   /**
7    * Verifies the functionality of per-project issues list page.
8    * 
9    * @author Andrey Sergievskiy <seas@andreysergievskiy.com>
10   */
11  public class ViewProjectIssueListTest extends AbstractSeleniumTestCase {
12      /**
13       * 1. Login into the application with a specific user (admin_test1).
14       * 2. Goto Project List page.
15       * 3. Select project "test_name" and click "View" link for it.
16       * 4. At the "View Issue" page, compare all issues to the data we
17       *    expect.
18       * @throws java.io.IOException
19       */
20      @Test
21      public void testViewProjectIssueList() throws IOException {
22          closeSession();
23          selenium.open("http://" + applicationHost + ":" + applicationPort + "/"
24                  + applicationPath);
25  
26          assertTrue(selenium.isElementPresent("//.[@name='login']"));
27          assertTrue(selenium.isElementPresent("//.[@name='password']"));
28          assertTrue(selenium.isElementPresent("//.[@value='Login']"));
29          selenium.type("//.[@name='login']", "admin_test1");
30          selenium.type("//.[@name='password']", "admin_test1");
31          selenium.click("//.[@value='Login']");
32          selenium.waitForPageToLoad(SE_TIMEOUT);
33          
34          selenium.click("listprojects");
35          selenium.waitForPageToLoad(SE_TIMEOUT);
36          
37          // Click view issue link (usually it's named "View").
38          assertTrue(selenium.isElementPresent("//tr[starts-with(@id, 'project.')]/td[3][text()='test_name']/../td[1]/a[1]"));
39          selenium.click("//tr[starts-with(@id, 'project.')]/td[3][text()='test_name']/../td[1]/a[1]");
40          selenium.waitForPageToLoad(SE_TIMEOUT);
41          
42          assertEquals(4, selenium.getXpathCount("//tr[starts-with(@id, 'issue.')]"));
43          assertTrue(selenium.isElementPresent("//tr[starts-with(@id, 'issue.')]/td[3][text()='1']/../td[11][text()='test_description']/../td[13][contains(text(),'A. admin lastname')]"));
44          assertTrue(selenium.isElementPresent("//tr[starts-with(@id, 'issue.')]/td[3][text()='2']/../td[11][text()='test_description 2']/../td[13][contains(text(),'A. admin lastname')]"));
45          assertTrue(selenium.isElementPresent("//tr[starts-with(@id, 'issue.')]/td[3][text()='3']/../td[11][text()='test_description 3']/../td[13][contains(text(),'A. admin lastname')]"));
46          assertTrue(selenium.isElementPresent("//tr[starts-with(@id, 'issue.')]/td[3][text()='4']/../td[11][text()='test_description 4']/../td[13][contains(text(),'A. admin lastname')]"));
47      }
48      
49      @Override
50      protected String[] getDataSetFiles() {
51          return new String[]{
52                  "dataset/languagebean_init_dataset.xml",
53                  "dataset/languagebean_dataset.xml",
54                  "dataset/userpreferencesbean_dataset.xml",
55                  "dataset/userbean_dataset.xml",
56                  "dataset/projectbean_dataset.xml",
57                  "dataset/permissionbean_dataset.xml",
58                  "dataset/versionbean_dataset.xml",
59                  "dataset/issuebean_dataset.xml"
60          };
61      }
62  
63      @Override
64      protected String[] getConfigLocations() {
65          return new String[]{ "application-context.xml"};
66      }
67  }