/*
* JBoss, Home of Professional Open Source
* Copyright 2010-2016, Red Hat, Inc. and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.richfaces.tests.metamer.ftest.richInputNumberSlider;
import static org.jboss.arquillian.graphene.Graphene.guardAjax;
import static org.richfaces.tests.metamer.ftest.extension.configurator.use.annotation.ValuesFrom.FROM_ENUM;
import static org.richfaces.tests.metamer.ftest.extension.configurator.use.annotation.ValuesFrom.FROM_FIELD;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
import javax.faces.event.PhaseId;
import org.jboss.arquillian.graphene.Graphene;
import org.jboss.arquillian.graphene.condition.element.WebElementConditionFactory;
import org.openqa.selenium.By;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.FindBy;
import org.richfaces.fragment.common.ClearType;
import org.richfaces.fragment.common.Event;
import org.richfaces.fragment.common.Utils;
import org.richfaces.tests.metamer.ftest.BasicAttributes;
import org.richfaces.tests.metamer.ftest.annotations.IssueTracking;
import org.richfaces.tests.metamer.ftest.extension.attributes.coverage.annotations.CoversAttributes;
import org.richfaces.tests.metamer.ftest.extension.configurator.skip.annotation.Skip;
import org.richfaces.tests.metamer.ftest.extension.configurator.templates.annotation.Templates;
import org.richfaces.tests.metamer.ftest.extension.configurator.use.annotation.UseWithField;
import org.richfaces.tests.metamer.ftest.webdriver.Attributes;
import org.richfaces.tests.metamer.ftest.webdriver.MetamerPage;
import org.richfaces.tests.metamer.ftest.webdriver.MetamerPage.WaitRequestType;
import org.testng.annotations.Test;
/**
* Test case for page /faces/components/richInputNumberSlider/simple.xhtml
*
* @author <a href="https://community.jboss.org/people/ppitonak">Pavol Pitonak</a>
* @author <a href="mailto:jstefek@redhat.com">Jiri Stefek</a>
*/
public class TestInputNumberSliderAttributes extends AbstractSliderTest {
private final Attributes<InputNumberSliderAttributes> inputNumberSliderAttributes = getAttributes();
@FindBy(css = "span.rf-insl > br")
private WebElement br;
private Position position;
public enum Position {
NULL("null"),
bottom("bottom"),
left("left"),
right("right"),
top("top");
final String value;
private Position(String value) {
this.value = value;
}
}
private final Action delayTestAction = new Action() {
private String timeBefore = "";
@Override
public void perform() {
Graphene.waitModel().until().element(getMetamerPage().getRequestTimeElement()).text().not().equalTo(timeBefore);
timeBefore = getMetamerPage().getRequestTimeElement().getText();
}
};
@Override
public String getComponentTestPagePath() {
return "richInputNumberSlider/simple.xhtml";
}
@Test
@CoversAttributes("accesskey")
@IssueTracking("https://issues.jboss.org/browse/RF-11315")
@Templates(value = "plain")
public void testAccesskey() {
testHTMLAttribute(slider.advanced().getInput().advanced().getInputElement(), inputNumberSliderAttributes,
InputNumberSliderAttributes.accesskey);
}
@Test(groups = "smoke")
@CoversAttributes("showArrows")
@Override
public void testClickLeftArrow() {
super.testClickLeftArrow();
}
@Test
@CoversAttributes("showArrows")
@Override
public void testClickRightArrow() {
super.testClickRightArrow();
}
@Test
@CoversAttributes("decreaseClass")
@Templates(value = "plain")
public void testDecreaseClass() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.showArrows, Boolean.TRUE);
testStyleClass(slider.advanced().getArrowDecreaseElement(), BasicAttributes.decreaseClass);
}
@Test
@CoversAttributes("decreaseSelectedClass")
@Templates(value = "plain")
public void testDecreaseSelectedClass() {
attsSetter()
.setAttribute(InputNumberSliderAttributes.delay).toValue(4000)
.setAttribute(InputNumberSliderAttributes.showArrows).toValue(true)
.asSingleAction().perform();
String value = "metamer-ftest-class";
inputNumberSliderAttributes.set(InputNumberSliderAttributes.decreaseSelectedClass, value);
fireEvent(slider.advanced().getArrowDecreaseElement(), Event.MOUSEDOWN);
Graphene.waitGui().withMessage("decreaseSelectedClass does not work")
.until().element(slider.advanced().getArrowDecreaseElement()).attribute("class").contains(value);
fireEvent(slider.advanced().getArrowIncreaseElement(), Event.MOUSEUP);
}
@Test
@CoversAttributes("delay")
@UseWithField(field = "delay", valuesFrom = FROM_FIELD, value = "delays")
@Templates("plain")
public void testDelay() {
attsSetter()
.setAttribute(InputNumberSliderAttributes.delay).toValue(delay)
.setAttribute(InputNumberSliderAttributes.showArrows).toValue(true)
.asSingleAction().perform();
fireEvent(slider.advanced().getArrowIncreaseElement(), Event.MOUSEDOWN);// starts with increasing/decreasing of the value
testDelay(delayTestAction, delayTestAction, "delay", delay);
fireEvent(slider.advanced().getArrowIncreaseElement(), Event.MOUSEUP);
}
@Test
@CoversAttributes("dir")
@Templates(value = "plain")
public void testDir() {
testDir(slider.advanced().getRootElement());
}
@Test
@CoversAttributes("disabled")
public void testDisabled() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.disabled, Boolean.TRUE);
assertVisible(slider.advanced().getDisabledHandleElement(), "Disabled handle is not on the page.");
assertNotVisible(slider.advanced().getHandleElement(), "Slider's handle is not present on the page.");
assertEquals(slider.advanced().getInput().advanced().getInputElement().getAttribute("disabled"), "true",
"Slider's input should be disabled.");
}
@Test(groups = "smoke")
@CoversAttributes("enableManualInput")
public void testEnableManualInput() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.enableManualInput, Boolean.FALSE);
assertEquals(slider.advanced().getInput().advanced().getInputElement().getAttribute("readonly"), "true",
"Slider's input should be readonly.");
testMoveWithSlider();
}
@Test
@CoversAttributes("handleClass")
@Templates(value = "plain")
public void testHandleClass() {
testStyleClass(slider.advanced().getHandleElement(), BasicAttributes.handleClass);
}
@Test
@CoversAttributes("handleSelectedClass")
@Templates(value = "plain")
public void testHandleSelectedClass() {
String value = "metamer-ftest-class";
inputNumberSliderAttributes.set(InputNumberSliderAttributes.handleSelectedClass, value);
fireEvent(slider.advanced().getHandleElement(), Event.MOUSEDOWN);
assertTrue(slider.advanced().getHandleElement().getAttribute("class").contains(value),
"handleSelectedClass does not work");
}
@Test
@CoversAttributes("handleType")
@Templates(value = "plain")
public void testHandleType() {
// check default value, same as 'arrow'
inputNumberSliderAttributes.set(InputNumberSliderAttributes.handleType, "");
final WebElement handleContainer = slider.advanced().getRootElement().findElement(By.className("rf-insl-hnd-cntr"));
final WebElement sliderRoot = slider.advanced().getRootElement();
String style = handleContainer.getAttribute("style");
assertFalse(sliderRoot.getAttribute("class").contains("rf-insl-bar"));
assertTrue(style.contains("display: block"));
assertTrue(style.contains("padding-left: 60%"));// initial value: 2 from <-10,10>
inputNumberSliderAttributes.set(InputNumberSliderAttributes.handleType, "arrow");
style = handleContainer.getAttribute("style");
assertFalse(sliderRoot.getAttribute("class").contains("rf-insl-bar"));
assertTrue(style.contains("display: block"));
assertTrue(style.contains("padding-left: 60%"));// initial value: 2 from <-10,10>
inputNumberSliderAttributes.set(InputNumberSliderAttributes.handleType, "bar");
style = handleContainer.getAttribute("style");
assertTrue(sliderRoot.getAttribute("class").contains("rf-insl-bar"));
assertTrue(style.contains("display: block"));
assertTrue(style.contains("width: 60%"));// initial value: 2 from <-10,10>
}
@Test
@CoversAttributes("immediate")
public void testImmediate() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.immediate, Boolean.TRUE);
slider.advanced().getInput().advanced().clear(ClearType.JS).sendKeys("-10");
guardAjax(slider.advanced().getInput().advanced()).trigger("blur");
getMetamerPage().assertPhases(PhaseId.ANY_PHASE);
getMetamerPage().assertListener(PhaseId.APPLY_REQUEST_VALUES, "value changed: 2 -> -10");
assertEquals(output.getText(), "-10", "Output was not updated.");
}
@Test
@CoversAttributes("increaseClass")
@Templates(value = "plain")
public void testIncreaseClass() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.showArrows, Boolean.TRUE);
testStyleClass(slider.advanced().getArrowIncreaseElement(), BasicAttributes.increaseClass);
}
@Test
@CoversAttributes("increaseSelectedClass")
@Templates(value = "plain")
public void testIncreaseSelectedClass() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.delay, 4000);
inputNumberSliderAttributes.set(InputNumberSliderAttributes.showArrows, Boolean.TRUE);
String value = "metamer-ftest-class";
inputNumberSliderAttributes.set(InputNumberSliderAttributes.increaseSelectedClass, value);
fireEvent(slider.advanced().getArrowIncreaseElement(), Event.MOUSEDOWN);
Graphene.waitGui().withMessage("increaseSelectedClass does not work")
.until().element(slider.advanced().getArrowIncreaseElement()).attribute("class").contains(value);
fireEvent(slider.advanced().getArrowIncreaseElement(), Event.MOUSEUP);
}
@Test
@Templates(value = "plain")
public void testInit() {
assertVisible(slider.advanced().getInput().advanced().getInputElement(), "Slider's input is not present on the page.");
assertVisible(slider.advanced().getMinimumElement(), "Slider's min value is not present on the page.");
assertVisible(slider.advanced().getMinimumElement(), "Slider's max value is not present on the page.");
assertVisible(slider.advanced().getTrackElement(), "Slider's track is not present on the page.");
assertVisible(slider.advanced().getHandleElement(), "Slider's handle is not present on the page.");
assertNotPresent(slider.advanced().getArrowDecreaseElement(), "Slider's left arrow should not be present on the page.");
assertNotPresent(slider.advanced().getArrowIncreaseElement(), "Slider's right arrow should not be present on the page.");
assertNotPresent(slider.advanced().getTooltipElement(), "Slider's tooltip should not be present on the page.");
}
@Test
@CoversAttributes("inputClass")
@Templates(value = "plain")
public void testInputClass() {
testStyleClass(slider.advanced().getInput().advanced().getInputElement(), BasicAttributes.inputClass);
}
@Test
@CoversAttributes("inputPosition")
@UseWithField(field = "position", valuesFrom = FROM_ENUM, value = "")
@Templates(value = "plain")
public void testInputPosition() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.inputPosition, position.value);
Point inputPosition = Utils.getLocations(slider.advanced().getInput().advanced().getInputElement()).getTopLeft();
Point trackPosition = Utils.getLocations(slider.advanced().getTrackElement()).getTopLeft();
switch (position) {
case left:
assertTrue(trackPosition.x > inputPosition.x, "Track should be on the right of input on the page.");
assertNotPresent(br, "Track and input should be on the same line.");
break;
case NULL:
case right:
assertTrue(trackPosition.x < inputPosition.x, "Track should be on the left of input on the page.");
assertNotPresent(br, "Track and input should be on the same line.");
break;
case bottom:
assertTrue(trackPosition.y < inputPosition.y, "Track should be above input on the page.");
assertPresent(br, "Track and input should not be on the same line.");
break;
case top:
assertTrue(trackPosition.y > inputPosition.y, "Track should be below input on the page.");
assertPresent(br, "Track and input should not be on the same line.");
break;
}
}
@Test
@CoversAttributes("inputSize")
@Templates(value = "plain")
public void testInputSize() {
int testedSize = 2;
inputNumberSliderAttributes.set(InputNumberSliderAttributes.inputSize, testedSize);
assertEquals(slider.advanced().getInput().advanced().getInputElement().getAttribute("size"), String.valueOf(testedSize),
"Input's size attribute.");
testedSize = 40;
inputNumberSliderAttributes.set(InputNumberSliderAttributes.inputSize, testedSize);
assertEquals(slider.advanced().getInput().advanced().getInputElement().getAttribute("size"), String.valueOf(testedSize),
"Input's size attribute.");
}
@Test
@CoversAttributes("lang")
@Templates(value = "plain")
public void testLang() {
testLang(slider.advanced().getRootElement());
}
@Test
@CoversAttributes("maxValue")
public void testMaxValueByHandleMoving() {
int maxnum = 15;
inputNumberSliderAttributes.set(InputNumberSliderAttributes.maxValue, maxnum);
moveWithSliderActionWithWaitRequest(slider.advanced().getWidth()).perform();
assertEquals(output.getText(), String.valueOf(maxnum), "Output was not updated.");
assertEquals(slider.advanced().getInput().getStringValue(), String.valueOf(maxnum), "Input was not updated.");
}
@Test
@CoversAttributes("maxValue")
public void testMaxValueByTyping() {
int maxnum = 13;
inputNumberSliderAttributes.set(InputNumberSliderAttributes.maxValue, maxnum);
String num = "10";
typeToInputActionWithXHRWaitRequest(num).perform();
assertEquals(output.getText(), num, "Output was not updated.");
assertEquals(slider.advanced().getInput().getStringValue(), num, "Input was not updated.");
num = "14";
typeToInputActionWithXHRWaitRequest(num).perform();
assertEquals(output.getText(), String.valueOf(maxnum), "Output was not updated.");
assertEquals(slider.advanced().getInput().getStringValue(), String.valueOf(maxnum), "Input was not updated.");
}
@Test
@CoversAttributes("maxlength")
@IssueTracking("https://issues.jboss.org/browse/RF-9860")
@Templates(value = "plain")
public void testMaxlength() {
String testedLength = "5";
inputNumberSliderAttributes.set(InputNumberSliderAttributes.maxlength, testedLength);
assertEquals(slider.advanced().getInput().advanced().getInputElement().getAttribute("maxlength"), "5",
"Attribute maxlength of input.");
inputNumberSliderAttributes.set(InputNumberSliderAttributes.maxlength, "");
assertEquals(slider.advanced().getInput().advanced().getInputElement().getAttribute("maxlength"), null,
"Attribute maxlength should not be present.");
}
@Test
@CoversAttributes("minValue")
public void testMinValueByHandleMoving() {
int value = -15;
inputNumberSliderAttributes.set(InputNumberSliderAttributes.minValue, value);
moveWithSliderActionWithWaitRequest(0).perform();
assertEquals(output.getText(), String.valueOf(value), "Output was not updated.");
assertEquals(slider.advanced().getInput().getStringValue(), String.valueOf(value), "Input was not updated.");
}
@Test
@CoversAttributes("minValue")
public void testMinValueByTyping() {
int minValue = -13;
inputNumberSliderAttributes.set(InputNumberSliderAttributes.minValue, minValue);
String num = "-10";
typeToInputActionWithXHRWaitRequest(num).perform();
assertEquals(output.getText(), num, "Output was not updated.");
assertEquals(slider.advanced().getInput().getStringValue(), num, "Input was not updated.");
num = "-14";
typeToInputActionWithXHRWaitRequest(num).perform();
assertEquals(output.getText(), String.valueOf(minValue), "Output was not updated.");
assertEquals(slider.advanced().getInput().getStringValue(), String.valueOf(minValue), "Input was not updated.");
}
@Test
@IssueTracking("https://issues.jboss.org/browse/RF-11314")
@Override
public void testMoveWithSlider() {
super.testMoveWithSlider();
}
@Test
@Skip
@CoversAttributes("onblur")
@IssueTracking("https://issues.jboss.org/browse/RF-10829")
public void testOnblur() {
testFireEventWithJS(slider.advanced().getRootElement(), inputNumberSliderAttributes, InputNumberSliderAttributes.onblur);
}
@Test
@CoversAttributes("onchange")
public void testOnchangeByArrowsClicking() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.showArrows, Boolean.TRUE);
testFireEvent(inputNumberSliderAttributes, InputNumberSliderAttributes.onchange, new Action() {
@Override
public void perform() {
MetamerPage.waitRequest(slider, WaitRequestType.XHR).decrease();
}
});
testFireEvent(inputNumberSliderAttributes, InputNumberSliderAttributes.onchange, new Action() {
@Override
public void perform() {
MetamerPage.waitRequest(slider, WaitRequestType.XHR).increase();
}
});
}
@Test
@CoversAttributes("onchange")
public void testOnchangeByTyping() {
testFireEvent(inputNumberSliderAttributes, InputNumberSliderAttributes.onchange,
typeToInputActionWithXHRWaitRequest("5"));
}
@Test
@CoversAttributes("onclick")
@Templates(value = "plain")
public void testOnclick() {
testFireEvent(inputNumberSliderAttributes, InputNumberSliderAttributes.onclick,
new Actions(driver).click(slider.advanced().getRootElement()).build());
}
@Test
@CoversAttributes("ondblclick")
@Templates(value = "plain")
public void testOndblclick() {
testFireEvent(inputNumberSliderAttributes, InputNumberSliderAttributes.ondblclick,
new Actions(driver).doubleClick(slider.advanced().getRootElement()).build());
}
@Test
@Skip
@CoversAttributes("onfocus")
@IssueTracking("https://issues.jboss.org/browse/RF-10829")
public void testOnfocus() {
testFireEventWithJS(slider.advanced().getRootElement(), inputNumberSliderAttributes,
InputNumberSliderAttributes.onfocus);
}
@Test
@CoversAttributes("onkeydown")
@Templates(value = "plain")
public void testOnkeydown() {
testFireEventWithJS(slider.advanced().getRootElement(), inputNumberSliderAttributes,
InputNumberSliderAttributes.onkeydown);
}
@Test
@CoversAttributes("onkeypress")
@Templates(value = "plain")
public void testOnkeypress() {
testFireEventWithJS(slider.advanced().getRootElement(), inputNumberSliderAttributes,
InputNumberSliderAttributes.onkeypress);
}
@Test
@CoversAttributes("onkeyup")
@Templates(value = "plain")
public void testOnkeyup() {
testFireEventWithJS(slider.advanced().getRootElement(), inputNumberSliderAttributes,
InputNumberSliderAttributes.onkeyup);
}
@Test
@CoversAttributes("onmousedown")
@Templates(value = "plain")
public void testOnmousedown() {
testFireEventWithJS(slider.advanced().getRootElement(), inputNumberSliderAttributes,
InputNumberSliderAttributes.onmousedown);
}
@Test
@CoversAttributes("onmousemove")
@Templates(value = "plain")
public void testOnmousemove() {
testFireEventWithJS(slider.advanced().getRootElement(), inputNumberSliderAttributes,
InputNumberSliderAttributes.onmousemove);
}
@Test
@CoversAttributes("onmouseout")
@Templates(value = "plain")
public void testOnmouseout() {
testFireEventWithJS(slider.advanced().getRootElement(), inputNumberSliderAttributes,
InputNumberSliderAttributes.onmouseout);
}
@Test
@CoversAttributes("onmouseover")
@Templates(value = "plain")
public void testOnmouseover() {
testFireEventWithJS(slider.advanced().getRootElement(), inputNumberSliderAttributes,
InputNumberSliderAttributes.onmouseover);
}
@Test
@CoversAttributes("onmouseup")
@Templates(value = "plain")
public void testOnmouseup() {
testFireEventWithJS(slider.advanced().getRootElement(), inputNumberSliderAttributes,
InputNumberSliderAttributes.onmouseup);
}
@Test
@Skip
@CoversAttributes("onselect")
@IssueTracking("https://issues.jboss.org/browse/RF-10829")
public void testOnselect() {
testFireEventWithJS(slider.advanced().getRootElement(), inputNumberSliderAttributes,
InputNumberSliderAttributes.onselect);
}
@Test
@CoversAttributes("rendered")
@Templates(value = "plain")
public void testRendered() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.rendered, Boolean.FALSE);
assertNotVisible(slider.advanced().getRootElement(), "Slider should not be rendered when rendered=false.");
}
@Test
@CoversAttributes("showArrows")
public void testShowArrows() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.showArrows, Boolean.TRUE);
assertVisible(slider.advanced().getArrowDecreaseElement(), "Slider's left arrow should be on the page.");
assertVisible(slider.advanced().getArrowIncreaseElement(), "Slider's right arrow should be on the page.");
}
@Test
@CoversAttributes("showBoundaryValues")
public void testShowBoundaryValues() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.showBoundaryValues, Boolean.FALSE);
assertNotVisible(slider.advanced().getMinimumElement(), "Slider's min value should not be present on the page.");
assertNotVisible(slider.advanced().getMinimumElement(), "Slider's max value should not be present on the page.");
}
@Test
@CoversAttributes("showInput")
public void testShowInput() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.showInput, Boolean.FALSE);
assertFalse(new WebElementConditionFactory(slider.advanced().getInput().advanced().getInputElement()).isVisible()
.apply(driver), "Input should not be visible on the page.");
}
@Test
@CoversAttributes("showTooltip")
@IssueTracking("https://issues.jboss.org/browse/RF-11314")
public void testShowTooltip() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.showTooltip, Boolean.TRUE);
String startValue = slider.advanced().getInput().getStringValue();
fireEvent(slider.advanced().getHandleElement(), Event.MOUSEDOWN);
assertVisible(slider.advanced().getTooltipElement(), "Tooltip is not visible");
assertEquals(slider.advanced().getTooltipElement().getText(), startValue, "Tooltip's text.");
fireEvent(slider.advanced().getHandleElement(), Event.MOUSEUP);
assertNotVisible(slider.advanced().getTooltipElement(), "Tooltip should not be visible");
}
@Test
@CoversAttributes("step")
public void testStep() {
attsSetter()
.setAttribute(InputNumberSliderAttributes.step).toValue(7)
.setAttribute(InputNumberSliderAttributes.showArrows).toValue(true)
.asSingleAction().perform();
MetamerPage.waitRequest(slider, WaitRequestType.XHR).increase();
assertEquals(output.getText(), "9", "Wrong output");
MetamerPage.waitRequest(slider, WaitRequestType.XHR).increase();
assertEquals(output.getText(), "10", "Wrong output");
MetamerPage.waitRequest(slider, WaitRequestType.XHR).decrease();
assertEquals(output.getText(), "3", "Wrong output");
MetamerPage.waitRequest(slider, WaitRequestType.XHR).decrease();
assertEquals(output.getText(), "-4", "Wrong output");
MetamerPage.waitRequest(slider, WaitRequestType.XHR).decrease();
assertEquals(output.getText(), "-10", "Wrong output");
MetamerPage.waitRequest(slider, WaitRequestType.XHR).increase();
assertEquals(output.getText(), "-3", "Wrong output");
}
@Test
@CoversAttributes("style")
@Templates(value = "plain")
public void testStyle() {
testStyle(slider.advanced().getRootElement());
}
@Test
@CoversAttributes("styleClass")
@Templates(value = "plain")
public void testStyleClass() {
testStyleClass(slider.advanced().getRootElement());
}
@Test
@CoversAttributes("tabindex")
@IssueTracking("https://issues.jboss.org/browse/RF-10980")
@Templates(value = "plain")
public void testTabindex() {
String value = "55";
inputNumberSliderAttributes.set(InputNumberSliderAttributes.tabindex, value);
assertEquals(slider.advanced().getSliderElement().getAttribute("tabindex"), value, "Attribute tabindex of track.");
assertEquals(slider.advanced().getInput().advanced().getInputElement().getAttribute("tabindex"), value,
"Attribute tabindex of input.");
}
@Test
@CoversAttributes("title")
@Templates(value = "plain")
public void testTitle() {
testTitle(slider.advanced().getRootElement());
}
@Test
@CoversAttributes("tooltipClass")
@Templates(value = "plain")
public void testTooltipClass() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.showTooltip, Boolean.TRUE);
testStyleClass(slider.advanced().getTooltipElement(), BasicAttributes.tooltipClass);
}
@Test
@CoversAttributes("trackClass")
@Templates(value = "plain")
public void testTrackClass() {
testStyleClass(slider.advanced().getTrackElement(), BasicAttributes.trackClass);
}
@Test
@UseWithField(field = "number", valuesFrom = FROM_FIELD, value = "bigNumbers")
@Override
public void testTypeIntoInputBig() {
super.testTypeIntoInputBig();
}
@Test
@UseWithField(field = "number", valuesFrom = FROM_FIELD, value = "correctNumbers")
@Override
public void testTypeIntoInputCorrect() {
super.testTypeIntoInputCorrect();
}
@Test
@UseWithField(field = "number", valuesFrom = FROM_FIELD, value = "decimalNumbers")
@Override
public void testTypeIntoInputDecimal() {
super.testTypeIntoInputDecimal();
}
@Test
@Override
public void testTypeIntoInputNotNumber() {
super.testTypeIntoInputNotNumber();
}
@Test
@UseWithField(field = "number", valuesFrom = FROM_FIELD, value = "smallNumbers")
@Override
public void testTypeIntoInputSmall() {
super.testTypeIntoInputSmall();
}
@Test
@CoversAttributes("valueChangeListener")
public void testValueChangeListener() {
typeToInputActionWithXHRWaitRequest("5").perform();
getMetamerPage().assertListener(PhaseId.PROCESS_VALIDATIONS, "value changed: 2 -> 5");
}
@Test
@CoversAttributes("value")
@Templates("plain")
@UseWithField(field = "number", valuesFrom = FROM_FIELD, value = "bigNumbers")
public void testValueBig() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.value, number);
String max = inputNumberSliderAttributes.get(InputNumberSliderAttributes.maxValue);
assertEquals(output.getText(), number, "Output was not updated.");
assertEquals(slider.advanced().getInput().getStringValue(), max, "Input was not updated.");
}
@Test
@CoversAttributes("value")
@Templates("plain")
@UseWithField(field = "number", valuesFrom = FROM_FIELD, value = "correctNumbers")
public void testValueCorrect() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.value, number);
assertEquals(output.getText(), number, "Output was not updated.");
assertEquals(slider.advanced().getInput().getStringValue(), number, "Input was not updated.");
}
@Test
@CoversAttributes("value")
@Templates("plain")
@UseWithField(field = "number", valuesFrom = FROM_FIELD, value = "smallNumbers")
public void testValueSmall() {
inputNumberSliderAttributes.set(InputNumberSliderAttributes.value, number);
String min = inputNumberSliderAttributes.get(InputNumberSliderAttributes.minValue);
assertEquals(output.getText(), number, "Output was not updated.");
assertEquals(slider.advanced().getInput().getStringValue(), min, "Input was not updated.");
}
}