package com.redheap.selenium.components;
import com.redheap.selenium.component.AdfSelectManyChoice;
import com.redheap.selenium.pages.SelectManyChoiceDemoPage;
import java.util.List;
import static org.junit.Assert.*;
import org.junit.Test;
public class SelectManyChoiceTest extends PageTestBase<SelectManyChoiceDemoPage> {
@Test
public void testItems() {
AdfSelectManyChoice choice = pages.goHome().findDrinksSelectManyChoice();
assertEquals("coffee", choice.getItemLabel(0));
assertEquals("0", choice.getItemValue(0));
assertEquals(0, choice.getItemIndexByLabel("coffee"));
assertEquals("tea", choice.getItemLabel(1));
assertEquals("1", choice.getItemValue(1));
assertEquals(1, choice.getItemIndexByLabel("tea"));
// milk (value "2") is rendered=false
assertEquals("fizz", choice.getItemLabel(2));
assertEquals("3", choice.getItemValue(2));
assertEquals(2, choice.getItemIndexByLabel("fizz"));
// item "4" is rendered=false
assertEquals("beer", choice.getItemLabel(3));
assertEquals("5", choice.getItemValue(3));
assertEquals(3, choice.getItemIndexByLabel("beer"));
assertEquals("lemonade", choice.getItemLabel(4));
assertEquals("6", choice.getItemValue(4));
assertEquals(4, choice.getItemIndexByLabel("lemonade"));
}
@Test
public void testSetValue() {
AdfSelectManyChoice choice = pages.goHome().findDrinksSelectManyChoice();
choice.clickItemsByIndices(1, 3, 4); // idx=3 is disabled so should not work
assertEquals("tea; lemonade", choice.getContent());
// selected values
List<Object> selectedValues = choice.getValue();
assertEquals(2, selectedValues.size());
assertEquals("1", selectedValues.get(0));
assertEquals("6", selectedValues.get(1));
// selected indices
long[] selectedIndices = choice.getValueIndices();
assertEquals(2, selectedIndices.length);
assertEquals(1, selectedIndices[0]);
assertEquals(4, selectedIndices[1]);
List<String> selectedLabels = choice.getValueLabels();
assertEquals(2, selectedLabels.size());
assertEquals("tea", selectedLabels.get(0));
assertEquals("lemonade", selectedLabels.get(1));
choice.clickItemsByLabels("fizz", "item6");
assertEquals("tea; fizz; lemonade; item6", choice.getContent());
selectedLabels = choice.getValueLabels();
assertEquals(4, selectedLabels.size());
assertEquals("tea", selectedLabels.get(0));
assertEquals("fizz", selectedLabels.get(1));
assertEquals("lemonade", selectedLabels.get(2));
assertEquals("item6", selectedLabels.get(3));
}
public static void main(String[] args) {
String[] args2 = { SelectManyChoiceTest.class.getName() };
org.junit.runner.JUnitCore.main(args2);
}
@Override
protected Class<SelectManyChoiceDemoPage> getPageClass() {
return SelectManyChoiceDemoPage.class;
}
@Override
protected String getJspxName() {
return "selectManyChoice.jspx";
}
}