@Test
  public void testSwitchTypeClient() {
    accordionItemAttributes.set(AccordionItemAttributes.switchType, "client");

    guardNoRequest(page.getItemHeaders().get(0)).click();
    waitGui(driver).until().element(page.getItemContents().get(0)).is().visible();
  }
  @Test
  public void testSwitchTypeServer() {
    accordionItemAttributes.set(AccordionItemAttributes.switchType, "server");

    guardHttp(page.getItemHeaders().get(0)).click();
    waitModel(driver).until().element(page.getItemContents().get(0)).is().visible();
  }
  @Test
  public void testInit() {
    assertVisible(page.getAccordionRootElement(), "Accordion is not visible!");

    assertVisible(page.getItemHeaders().get(2), "Item3's header should be visible.");

    assertVisible(page.getItemContents().get(2), "Content of item3 should be visible.");

    assertNotVisible(page.getItemContents().get(0), "Item1's content should not be visible.");
  }
 @Test
 @Templates(value = "plain")
 public void testOnmouseover() {
   Action action =
       new Actions(driver)
           .moveToElement(page.getRequestTimeElement())
           .moveToElement(page.getItemHeaders().get(0))
           .build();
   testFireEvent(accordionItemAttributes, AccordionItemAttributes.onmouseover, action);
 }
 @Test
 @Templates("plain")
 public void testOnmouseup() {
   Action action =
       new Actions(driver)
           .clickAndHold(page.getItemHeaders().get(2))
           .moveToElement(page.getItemHeaders().get(0))
           .release()
           .build();
   testFireEvent(accordionItemAttributes, AccordionItemAttributes.onmouseup, action);
 }
 @Test
 @Templates("plain")
 public void testHeaderClass() {
   testStyleClass(page.getItemHeaders().get(0), headerClass);
   assertFalse(
       belongsClass(page.getItemHeaders().get(1), "metamer-ftest-class"),
       "headerClass should be set only on first item");
   assertFalse(
       belongsClass(page.getItemHeaders().get(2), "metamer-ftest-class"),
       "headerClass should be set only on first item");
   assertFalse(
       belongsClass(page.getItemHeaders().get(3), "metamer-ftest-class"),
       "headerClass should be set only on first item");
 }
 @Test
 @Templates("plain")
 @RegressionTest("https://issues.jboss.org/browse/RF-10297")
 public void testHeaderInactiveClass() {
   testStyleClass(page.getInactiveHeaders().get(0), headerInactiveClass);
   assertFalse(
       belongsClass(page.getInactiveHeaders().get(1), "metamer-ftest-class"),
       "headerInactiveClass should be set only on first item");
   assertFalse(
       belongsClass(page.getInactiveHeaders().get(2), "metamer-ftest-class"),
       "headerInactiveClass should be set only on first item");
   assertFalse(
       belongsClass(page.getInactiveHeaders().get(3), "metamer-ftest-class"),
       "headerInactiveClass should be set only on first item");
 }
 @Test
 @Templates("plain")
 public void testOnheadermousedown() {
   Action action = new Actions(driver).clickAndHold(page.getItemHeaders().get(0)).build();
   testFireEvent(accordionItemAttributes, AccordionItemAttributes.onheadermousedown, action);
   new Actions(driver).release().build().perform();
 }
 @Test
 @RegressionTest("https://issues.jboss.org/browse/RF-10488")
 public void testName() {
   accordionItemAttributes.set(AccordionItemAttributes.name, "new name");
   guardAjax(driver.findElement(ByJQuery.selector("input[type=submit][name$=switchButtonCustom]")))
       .click();
   waitAjax(driver).until().element(page.getItemContents().get(0)).is().visible();
 }
  @Test
  @Templates("plain")
  @RegressionTest("https://issues.jboss.org/browse/RF-10297")
  public void testHeaderDisabledClass() {
    accordionItemAttributes.set(AccordionItemAttributes.disabled, true);

    testStyleClass(page.getDisabledHeaders().get(0), headerDisabledClass);
  }
  @Test
  @Templates("plain")
  public void testRightInactiveIcon() {
    By image = By.cssSelector(page.getRightIconSelector() + " img");

    // icon should not be locateable
    for (int i = 1; i < 6; i++) {
      try {
        driver.findElement(
            ByJQuery.selector(page.getRightIconSelector().replace("1", String.valueOf(i))));
      } catch (NoSuchElementException e) {
        // ok
      }
    }

    verifyStandardIcons(
        AccordionItemAttributes.rightInactiveIcon, page.getRightInactiveIcon(), image, "");
  }
  @Test
  @Templates("plain")
  public void testRightActiveIcon() {
    By image = By.cssSelector(page.getRightIconSelector() + " img");

    // icon should not be locateable
    for (int i = 1; i < 6; i++) {
      try {
        driver.findElement(
            ByJQuery.selector(page.getRightIconSelector().replace("1", String.valueOf(i))));
      } catch (NoSuchElementException e) {
        // ok
      }
    }
    guardAjax(page.getItemHeaders().get(0)).click();
    waitAjax(driver).until().element(page.getItemContents().get(0)).is().visible();
    verifyStandardIcons(
        AccordionItemAttributes.rightActiveIcon, page.getRightActiveIcon(), image, "");
  }
 @Test
 @Templates("plain")
 public void testOnheadermousemove() {
   Action action =
       new Actions(driver)
           .moveToElement(page.getItemHeaders().get(2))
           .moveToElement(page.getItemHeaders().get(0))
           .build();
   testFireEvent(accordionItemAttributes, AccordionItemAttributes.onheadermousemove, action);
 }
 @Test
 @RegressionTest(
     "https://issues.jboss.org/browse/RF-9821 https://issues.jboss.org/browse/RF-10488")
 public void testOnleave() {
   Action action =
       new Actions(driver)
           .click(page.getItemHeaders().get(0))
           .click(page.getItemHeaders().get(2))
           .build();
   testFireEvent(accordionItemAttributes, AccordionItemAttributes.onleave, action);
 }
 @Test
 public void testSwitchTypeNull() {
   guardAjax(page.getItemHeaders().get(0)).click();
   waitAjax(driver).until().element(page.getItemContents().get(0)).is().visible();
 }
 @Test
 @Templates("plain")
 public void testContentClass() {
   testStyleClass(page.getItemContents().get(0), contentClass);
 }
 @Test
 public void testOnenter() {
   Action action = new Actions(driver).click(page.getItemHeaders().get(0)).build();
   testFireEvent(accordionItemAttributes, AccordionItemAttributes.onenter, action);
 }
 @Test
 @Templates("plain")
 public void testHeaderStyle() {
   testStyle(page.getItemHeaders().get(0), headerStyle);
 }
 @Test
 public void testDisabled() {
   accordionItemAttributes.set(AccordionItemAttributes.disabled, true);
   guardNoRequest(page.getItemHeaders().get(0)).click();
   assertNotVisible(page.getItemContents().get(0), "Item1's content should not be visible.");
 }
 @Test
 @Templates("plain")
 public void testOnheaderdblclick() {
   Action action = new Actions(driver).doubleClick(page.getItemHeaders().get(0)).build();
   testFireEvent(accordionItemAttributes, AccordionItemAttributes.onheaderdblclick, action);
 }
 @Test
 public void testHeader() {
   accordionItemAttributes.set(AccordionItemAttributes.header, "new header");
   String headerText = page.getInactiveHeaders().get(0).getText();
   assertEquals("new header", headerText);
 }