View Javadoc
1   package com.atlassian.activeobjects.pageobjects;
2   
3   import com.atlassian.pageobjects.Page;
4   import com.atlassian.pageobjects.elements.ElementBy;
5   import com.atlassian.pageobjects.elements.PageElement;
6   import com.atlassian.webdriver.AtlassianWebDriver;
7   import org.openqa.selenium.By;
8   
9   import javax.inject.Inject;
10  import java.util.LinkedList;
11  import java.util.List;
12  
13  import static com.atlassian.activeobjects.pageobjects.AoTable.table;
14  
15  public class ActiveObjectsAdminPage implements Page {
16      @Inject
17      protected AtlassianWebDriver driver;
18  
19      @ElementBy(tagName = "tbody")
20      PageElement plugins;
21  
22      @Override
23      public String getUrl() {
24          return "/plugins/servlet/active-objects/tables/list";
25      }
26  
27      public String getTitle() {
28          return driver.getTitle();
29      }
30  
31      public List<AoTable> getTables() {
32          final List<AoTable> tables = new LinkedList<AoTable>();
33          for (PageElement tr : plugins.findAll(By.tagName("tr"))) {
34              final String pluginName = tr.find(By.className("ao-plugin-name")).getText();
35              final List<PageElement> tableNames = tr.find(By.className("ao-table-names")).findAll(By.tagName("li"));
36              final List<PageElement> rowCounts = tr.find(By.className("ao-row-counts")).findAll(By.tagName("li"));
37  
38              for (int i = 0; i < tableNames.size(); i++) {
39                  tables.add(table(pluginName, tableNames.get(i).getText(), rowCounts.get(i).getText()));
40              }
41          }
42          return tables;
43      }
44  }