Project

General

Profile

« Previous | Next » 

Revision 2b85bf78

Added by Andreas Kohlbecker about 3 years ago

ref #7599 derivate tree with collapsible items - adapting tests

View differences:

src/main/java/eu/etaxonomy/dataportal/elements/DerivedUnitTree.java
8 8
*/
9 9
package eu.etaxonomy.dataportal.elements;
10 10

  
11
import java.util.List;
12
import java.util.stream.Collectors;
13

  
11 14
import org.openqa.selenium.By;
12 15
import org.openqa.selenium.WebElement;
13 16

  
17
import eu.etaxonomy.dataportal.selenium.XPathTools;
18

  
14 19
/**
15 20
 * @author a.kohlbecker
16 21
 * @since Mar 18, 2021
......
18 23
public class DerivedUnitTree extends BaseElement {
19 24

  
20 25

  
21
    private DerivedUnitTreeNode rootNode = null;
26
    private List<DerivedUnitTreeNode> rootNodes = null;
22 27

  
23 28

  
24 29
    public DerivedUnitTree(WebElement element) {
25 30
        super(element);
26
        rootNode = new DerivedUnitTreeNode(element.findElement(By.cssSelector(".derived-unit-tree-root")));
31
        rootNodes = element.findElements(By.xpath("./div" + XPathTools.classAttrContains("item-list") +"/ul/li")).stream()
32
        .map(el -> new DerivedUnitTreeNode(el))
33
        .collect(Collectors.toList());
27 34
    }
28 35

  
29 36
    public static DerivedUnitTree from(WebElement element) {
30 37
        return new DerivedUnitTree(element);
31 38
    }
32 39

  
33

  
34

  
35
    public DerivedUnitTreeNode getRootNode() {
36
        return rootNode;
40
    public List<DerivedUnitTreeNode> getRootNodes() {
41
        return rootNodes;
37 42
    }
38 43

  
39 44
}
src/main/java/eu/etaxonomy/dataportal/elements/DerivedUnitTreeNode.java
24 24
public class DerivedUnitTreeNode extends BaseElement {
25 25

  
26 26
    private List<DerivedUnitTreeNode> subNodes = new ArrayList<>();
27
    private WebElement itemWrapper;
27 28

  
28 29
    public DerivedUnitTreeNode(WebElement element) {
29 30
        super(element);
......
37 38
       // .peek(el -> System.out.println("#####> " + element.getText() + " >>> " + el.getText()))
38 39
        .map(el -> new DerivedUnitTreeNode(el))
39 40
        .collect(Collectors.toList());
41
        itemWrapper = element.findElement(By.xpath("./div" + XPathTools.classAttrContains("item-wrapper")));
40 42
    }
41 43

  
42 44
    public BaseElement getHeader() {
43
        return BaseElement.from(getElement().findElement(By.cssSelector(".unit-header")));
45
        return BaseElement.from(itemWrapper.findElement(By.cssSelector(".unit-header")));
46
    }
47

  
48
    public WebElement getTreeNodeSymbol() {
49
        return itemWrapper.findElement(By.cssSelector(".unit-header .tree-node-symbol"));
44 50
    }
45 51

  
46 52
    public BaseElement getContent() {
47
        return BaseElement.from(getElement().findElement(By.cssSelector(".unit-content")));
53
        return BaseElement.from(itemWrapper.findElement(By.cssSelector(".unit-content")));
48 54
    }
49 55

  
50 56
    public DetailsTable getDetailsTable(String tableClassAttribute) {
src/test/java/eu/etaxonomy/dataportal/selenium/tests/reference/SpecimensTreeViewTest.java
10 10

  
11 11
import java.io.IOException;
12 12
import java.net.MalformedURLException;
13
import java.util.List;
14 13
import java.util.UUID;
15
import java.util.stream.Collectors;
16 14

  
17 15
import org.apache.log4j.Level;
18 16
import org.apache.log4j.Logger;
19 17
import org.junit.Before;
20 18
import org.junit.Test;
21 19
import org.openqa.selenium.By;
20
import org.openqa.selenium.WebElement;
22 21

  
23 22
import eu.etaxonomy.dataportal.DataPortalSite;
24 23
import eu.etaxonomy.dataportal.DrupalVars;
......
46 45

  
47 46
    private TaxonPage p;
48 47

  
49
    List<DerivedUnitTree> duTrees;
48
    DerivedUnitTree duTree;
50 49

  
51 50
    @Before
52 51
    public void switchToView() throws IOException, InterruptedException, DrushExecutionFailure {
......
59 58
    // must be called after setting the drupal vars
60 59
    public void loadPage() throws MalformedURLException {
61 60
        p = new TaxonPage(driver, getContext(), glenodinium_apiculatum_t, "specimens");
62
        duTrees = p.getDataPortalContent().getElement().findElements(By.cssSelector(".derived-unit-tree")).stream()
63
                .map(el -> DerivedUnitTree.from(el))
64
                .collect(Collectors.toList());
61
        WebElement treeElement = p.getDataPortalContent().getElement().findElement(By.cssSelector(".item-tree"));
62
        duTree = DerivedUnitTree.from(treeElement);
65 63
    }
66 64

  
67 65
    @Test
68 66
    public void testPage() {
69 67

  
70
        assertEquals(3, duTrees.size());
71
        BaseElement rootNodeHeader1 = duTrees.get(0).getRootNode().getHeader();
68
        assertEquals(3, duTree.getRootNodes().size());
69
        BaseElement rootNodeHeader1 = duTree.getRootNodes().get(0).getHeader();
72 70
        assertEquals("(B SP-99999).", rootNodeHeader1.getText());
73
        BaseElement rootNodeHeader2 = duTrees.get(1).getRootNode().getHeader();
71
        BaseElement rootNodeHeader2 = duTree.getRootNodes().get(1).getHeader();
74 72
        assertEquals("Germany, Berlin, 2 Apr 1835.", rootNodeHeader2.getText());
75
        BaseElement rootNodeHeader3 = duTrees.get(2).getRootNode().getHeader();
73
        BaseElement rootNodeHeader3 = duTree.getRootNodes().get(2).getHeader();
76 74
        assertEquals("Germany, Berlin, alt. 165 m, 52°31'1.2\"N, 13°21'E (WGS84), 28 Mar 2016, Ehrenberg D047.", rootNodeHeader3.getText());
77 75
    }
78 76

  
......
80 78
    @Test
81 79
    public void testDerivationTree1() {
82 80

  
83
        DerivedUnitTree tree1 = duTrees.get(0);
84
        DerivedUnitTreeNode rootNode = tree1.getRootNode();
81

  
82
        DerivedUnitTreeNode rootNode = duTree.getRootNodes().get(0);
85 83
        DerivedUnitTreeNode subNode1 = rootNode.getSubNodes().get(0);
86 84
        DerivedUnitTreeNode subNode2 = rootNode.getSubNodes().get(1);
87 85
        DerivedUnitTreeNode subNode3 = rootNode.getSubNodes().get(2);
88 86

  
89 87
        assertEquals("(B SP-99999).", rootNode.getHeader().getText());
88
        assertFalse("sub node 1 initially invisible", subNode1.getElement().isDisplayed());
89
        rootNode.getTreeNodeSymbol().click();
90
        assertTrue("sub node 1 visible after click", subNode1.getElement().isDisplayed());
90 91
        assertEquals("(B B-923845).", subNode1.getHeader().getText());
91 92
        assertEquals("(B DNA-9098080).", subNode2.getHeader().getText());
92 93
        assertEquals("B_SP-99999.png", subNode3.getHeader().getText());
......
113 114
    @Test
114 115
    public void testDerivationTree2() {
115 116

  
116
        DerivedUnitTree tree2 = duTrees.get(1);
117
        DerivedUnitTreeNode rootNode = tree2.getRootNode();
117
        DerivedUnitTreeNode rootNode = duTree.getRootNodes().get(1);
118 118
        DerivedUnitTreeNode subNode1 = rootNode.getSubNodes().get(0);
119 119

  
120 120
        assertEquals("Germany, Berlin, 2 Apr 1835.", rootNode.getHeader().getText());
121
        assertFalse("sub node 1 initially invisible", subNode1.getElement().isDisplayed());
122
        rootNode.getTreeNodeSymbol().click();
123
        assertTrue("sub node 1 visible after click", subNode1.getElement().isDisplayed());
121 124
        assertEquals("BHUPM 671 (ECdraw671.jpg)", subNode1.getHeader().getText());
122 125

  
123 126
        // ---- root node
......
158 161
    @Test
159 162
    public void testDerivationTree3() {
160 163

  
161
        DerivedUnitTree tree3 = duTrees.get(2);
162
        DerivedUnitTreeNode rootNode = tree3.getRootNode();
164
        DerivedUnitTreeNode rootNode = duTree.getRootNodes().get(2);
163 165
        DerivedUnitTreeNode subNode1 = rootNode.getSubNodes().get(0);
164 166
        DerivedUnitTreeNode subNode1_1 = subNode1.getSubNodes().get(0);
165 167
        DerivedUnitTreeNode subNode1_2 = subNode1.getSubNodes().get(1);
166 168
        DerivedUnitTreeNode subNode2 = rootNode.getSubNodes().get(1);
167 169

  
168 170
        assertEquals("Germany, Berlin, alt. 165 m, 52°31'1.2\"N, 13°21'E (WGS84), 28 Mar 2016, Ehrenberg D047.", rootNode.getHeader().getText());
171

  
172
        assertFalse("sub node 1 initially invisible", subNode1.getElement().isDisplayed());
173
        rootNode.getTreeNodeSymbol().click();
174
        assertTrue("sub node 1 visible after click", subNode1.getElement().isDisplayed());
169 175
        assertEquals("Germany, Berlin, alt. 165 m, 52°31'1.2\"N, 13°21'E (WGS84), 28 Mar 2016, Ehrenberg D047; D. Veloper (CEDiT 2017E68).", subNode1.getHeader().getText());
176

  
177
        assertFalse("sub node 1 initially invisible", subNode1_1.getElement().isDisplayed());
178
        subNode1.getTreeNodeSymbol().click();
179
        assertTrue("sub node 1 visible after click", subNode1_1.getElement().isDisplayed());
170 180
        assertEquals("B IMG 99999 (?fn%3dIMG%2099999.jpg%26mo%3dfile)", subNode1_1.getHeader().getText());
171 181
        assertEquals("XKCD MASKS 2X (Masks)", subNode1_2.getHeader().getText());
172 182
        assertEquals("Germany, Berlin, alt. 165 m, 52°31'1.2\"N, 13°21'E (WGS84), 28 Mar 2016, Ehrenberg D047 (M M-0289351).", subNode2.getHeader().getText());

Also available in: Unified diff