1   package com.atlassian.pageobjects.elements.test;
2   
3   import com.atlassian.pageobjects.elements.query.Poller;
4   import com.atlassian.pageobjects.elements.test.pageobjects.page.AuiPage;
5   import com.atlassian.pageobjects.elements.test.pageobjects.page.ElementsPage;
6   import com.atlassian.pageobjects.elements.test.pageobjects.page.JQueryPage;
7   import org.junit.Test;
8   
9   import java.util.List;
10  
11  import static junit.framework.Assert.assertEquals;
12  import static junit.framework.Assert.assertFalse;
13  import static junit.framework.Assert.assertTrue;
14  
15  public class TestComponents extends AbstractFileBasedServerTest
16  {
17      @Test
18      public void testAuiMenu()
19      {
20          AuiPage auipage = product.visit(AuiPage.class);
21  
22          //verify items in menu
23          List<String> items = auipage.openLinksMenu().getItems();
24          assertEquals(6, items.size());
25          assertEquals("JQuery Page", items.get(0));
26          for(int i = 1; i <6; i++)
27          {
28              assertEquals("Item " + i, items.get(i));
29          }
30  
31          // click on an item in the menu
32          auipage.openLinksMenu().gotoJQueryPage();
33      }
34  
35      @Test
36      public void testsAuiTab()
37      {
38          AuiPage auipage = product.visit(AuiPage.class);
39  
40          // verify default selections
41          assertTrue(auipage.roleTabs().adminTab().isOpen());
42          assertFalse(auipage.roleTabs().userTab().isOpen());
43  
44          // open user tab and verify header and selections
45          assertEquals("This is User Tab", auipage.roleTabs().openUserTab().header());
46          assertFalse(auipage.roleTabs().adminTab().isOpen());
47          assertTrue(auipage.roleTabs().userTab().isOpen());
48  
49          // Open admin and verify header and selections
50          assertEquals("This is Admin Tab", auipage.roleTabs().openAdminTab().header());
51          assertTrue(auipage.roleTabs().adminTab().isOpen());
52          assertFalse(auipage.roleTabs().userTab().isOpen());
53      }
54  
55      @Test
56      public void testsInlineDialog()
57      {
58          AuiPage auipage = product.visit(AuiPage.class);
59  
60          // verify dialog is not.
61          assertFalse(auipage.inlineDialog().getView().isPresent());
62  
63          // Invoke dialog and verify contents and is visible
64          assertEquals("AUI Inline Dialog", auipage.openInlineDialog().content());
65          assertTrue(auipage.inlineDialog().getView().isVisible());
66  
67          // click somewhere else and verify dialog is not visible.
68          auipage.roleTabs().openUserTab();
69          Poller.waitUntilFalse(auipage.inlineDialog().getView().timed().isVisible());
70  
71      }
72  
73      @Test
74      public void testJqueryMenu()
75      {
76          JQueryPage jquerypage = product.visit(JQueryPage.class);
77  
78          // verify admin menu is present
79          assertTrue(jquerypage.jqueryMenu().getTrigger().isPresent());
80  
81          // verify admin menu is not opened
82          assertFalse(jquerypage.jqueryMenu().isOpen());
83  
84          // open the admin menu, verify is open.
85          assertTrue(jquerypage.jqueryMenu().open().isOpen());
86  
87          // close the admin menu, verify not open
88          assertFalse(jquerypage.jqueryMenu().close().isOpen());
89  
90  
91          // verify follow link. Note: ElementsPage has a @WaitFor to verify that it reached the right page.
92          ElementsPage auiPage = jquerypage.jqueryMenu().open().gotoElementsPage();
93  
94          // verify high level interactions
95          jquerypage = product.visit(JQueryPage.class);
96          jquerypage.openJqueryMenu().gotoElementsPage();
97  
98      }
99  }