Revize 1cc511d8
Přidáno uživatelem Tomáš Šimandl před více než 6 roky(ů)
sources/src/test/java/cz/zcu/kiv/imiger/tests/frontend/ArchetypeIconConfigTest.java | ||
---|---|---|
5 | 5 |
import org.junit.jupiter.api.BeforeAll; |
6 | 6 |
import org.junit.jupiter.api.Test; |
7 | 7 |
import org.openqa.selenium.By; |
8 |
import org.openqa.selenium.NoSuchElementException; |
|
9 | 8 |
import org.openqa.selenium.WebDriver; |
10 | 9 |
import org.openqa.selenium.WebElement; |
11 |
import org.opentest4j.AssertionFailedError; |
|
12 | 10 |
|
13 |
public class ArchetypeIconConfigTest {
|
|
14 |
static WebDriver browser; |
|
11 |
class ArchetypeIconConfigTest { |
|
12 |
private static WebDriver browser;
|
|
15 | 13 |
|
16 | 14 |
@BeforeAll |
17 |
public static void initTest() {
|
|
15 |
static void initTest() { |
|
18 | 16 |
SeleniumUtil.prepareConfigFile("archetypeIconConfigTest.json"); |
19 | 17 |
browser = SeleniumUtil.init(); |
20 |
SeleniumUtil.loadGraphData("archetypeIconTest.json"); |
|
18 |
SeleniumUtil.switchToRaw(); |
|
19 |
SeleniumUtil.loadGraphData("RawArchetypeIconTest.json"); |
|
21 | 20 |
} |
22 | 21 |
|
23 | 22 |
@Test |
24 |
public void SpecifiedValueDefinition(){
|
|
23 |
void SpecifiedValueDefinition(){ |
|
25 | 24 |
WebElement iconDef = browser.findElement(By.id("vertexArchetypeIcon-SpecifiedIcon")); |
26 | 25 |
|
27 | 26 |
System.out.println("Trying to locate an element with class 'testingArchetypeIcon'"); |
... | ... | |
30 | 29 |
} |
31 | 30 |
|
32 | 31 |
@Test |
33 |
public void UnspecifiedValueDefinition(){
|
|
32 |
void UnspecifiedValueDefinition(){ |
|
34 | 33 |
emptyIconDefinition("UnspecifiedIcon"); |
35 | 34 |
} |
36 | 35 |
|
37 | 36 |
@Test |
38 |
public void SmileyValueDefinition(){
|
|
37 |
void SmileyValueDefinition(){ |
|
39 | 38 |
emptyIconDefinition("☺Smiley"); |
40 | 39 |
} |
41 | 40 |
|
42 | 41 |
@Test |
43 |
public void SpecifiedIcon(){
|
|
42 |
void SpecifiedIcon(){ |
|
44 | 43 |
locateTestingArchetypeIcon("1","#vertexArchetypeIcon-SpecifiedIcon"); |
45 | 44 |
} |
46 | 45 |
|
47 | 46 |
@Test |
48 |
public void UnspecifiedIcon(){
|
|
47 |
void UnspecifiedIcon(){ |
|
49 | 48 |
locateTestingArchetypeIcon("2","#vertexArchetypeIcon-UnspecifiedIcon"); |
50 | 49 |
} |
51 | 50 |
|
52 | 51 |
@Test |
53 |
public void SmileyIcon(){
|
|
52 |
void SmileyIcon(){ |
|
54 | 53 |
locateTestingArchetypeIcon("3","#vertexArchetypeIcon-☺Smiley"); |
55 | 54 |
} |
56 | 55 |
|
... | ... | |
76 | 75 |
} |
77 | 76 |
|
78 | 77 |
@AfterAll |
79 |
public static void finishTest() {
|
|
78 |
static void finishTest() { |
|
80 | 79 |
SeleniumUtil.clear(); |
81 | 80 |
} |
82 | 81 |
} |
sources/src/test/java/cz/zcu/kiv/imiger/tests/frontend/AssociatedArchetypeTest.java | ||
---|---|---|
5 | 5 |
import org.junit.jupiter.api.BeforeAll; |
6 | 6 |
import org.junit.jupiter.api.Test; |
7 | 7 |
import org.openqa.selenium.By; |
8 |
import org.openqa.selenium.NoSuchElementException; |
|
9 | 8 |
import org.openqa.selenium.WebDriver; |
10 | 9 |
import org.openqa.selenium.WebElement; |
11 | 10 |
|
12 | 11 |
import java.util.Arrays; |
13 | 12 |
import java.util.List; |
14 | 13 |
|
15 |
/* |
|
16 |
* Tests are not working because new graph is out of actual visible view. |
|
17 |
*/ |
|
18 |
public class AssociatedArchetypeTest { |
|
19 |
static WebDriver browser; |
|
14 |
|
|
15 |
class AssociatedArchetypeTest { |
|
16 |
private static WebDriver browser; |
|
20 | 17 |
|
21 | 18 |
@BeforeAll |
22 |
public static void initTest() {
|
|
19 |
static void initTest() { |
|
23 | 20 |
SeleniumUtil.prepareConfigFile("emptyConfig.json"); |
24 | 21 |
browser = SeleniumUtil.init(); |
25 |
SeleniumUtil.loadGraphData("associatedArchetypeTest.json"); |
|
22 |
SeleniumUtil.switchToRaw(); |
|
23 |
SeleniumUtil.loadGraphData("RawAssociatedArchetypeTest.json"); |
|
26 | 24 |
} |
27 | 25 |
|
28 | 26 |
@Test |
29 |
public void visibilityOfAllIcons() {
|
|
27 |
void visibilityOfAllIcons() { |
|
30 | 28 |
checkVisibilityOfIcons("1", Arrays.asList("2", "4"), Arrays.asList("2", "4")); |
31 | 29 |
|
32 | 30 |
checkVisibilityOfIcons("2", Arrays.asList("1"), Arrays.asList("1")); |
... | ... | |
39 | 37 |
} |
40 | 38 |
|
41 | 39 |
@Test |
42 |
public void vertexHighlighting() {
|
|
40 |
void vertexHighlighting() { |
|
43 | 41 |
//associated vertices to V1 |
44 | 42 |
checkHighlightedVertices("1", "2", Arrays.asList("2", "3")); |
45 | 43 |
checkHighlightedVertices("1", "4", Arrays.asList("4")); |
... | ... | |
131 | 129 |
} |
132 | 130 |
|
133 | 131 |
@AfterAll |
134 |
public static void finishTest() {
|
|
132 |
static void finishTest() { |
|
135 | 133 |
SeleniumUtil.clear(); |
136 | 134 |
} |
137 | 135 |
} |
sources/src/test/java/cz/zcu/kiv/imiger/tests/frontend/AutomaticGroupingTest.java | ||
---|---|---|
8 | 8 |
import java.util.ArrayList; |
9 | 9 |
import java.util.List; |
10 | 10 |
|
11 |
public class AutomaticGroupingTest {
|
|
12 |
static WebDriver browser; |
|
11 |
class AutomaticGroupingTest { |
|
12 |
private static WebDriver browser;
|
|
13 | 13 |
|
14 | 14 |
@BeforeEach |
15 |
public void initTest() {
|
|
15 |
void initTest() { |
|
16 | 16 |
SeleniumUtil.prepareConfigFile("automaticGroupingConfigTest.json"); |
17 | 17 |
browser = SeleniumUtil.init(); |
18 | 18 |
SeleniumUtil.loadGraphData("automaticGroupingTest.json"); |
19 | 19 |
} |
20 | 20 |
|
21 | 21 |
@Test |
22 |
public void groupIncluded(){
|
|
22 |
void groupIncluded(){ |
|
23 | 23 |
String groupName = "FirstGroupArchetype"; |
24 | 24 |
checkGroupExist(browser, groupName); |
25 | 25 |
} |
26 | 26 |
|
27 | 27 |
@Test |
28 |
public void groupExcluded(){
|
|
28 |
void groupExcluded(){ |
|
29 | 29 |
String groupName = "FirstGroupArchetype"; |
30 | 30 |
List<String> verticesNames = new ArrayList<>(); |
31 | 31 |
verticesNames.add("First vertex from first group"); |
... | ... | |
64 | 64 |
} |
65 | 65 |
|
66 | 66 |
private void excludeFirstGroup(WebDriver browser){ |
67 |
List<WebElement> navList = browser.findElement(By.tagName("nav")).findElements(By.tagName("ul")); |
|
68 |
|
|
69 |
for( WebElement item : navList){ |
|
70 |
WebElement form = item.findElement(By.tagName("form")); |
|
71 |
if (form != null){ |
|
72 |
String formName = form.getAttribute("name"); |
|
73 |
if (formName.equals("actionForm")) { |
|
74 |
item.findElements(By.tagName("label")).get(1).click(); |
|
75 |
break; |
|
76 |
} |
|
77 |
} |
|
78 |
} |
|
67 |
SeleniumUtil.switchToExcludeMode(); |
|
79 | 68 |
|
80 | 69 |
List<WebElement> groups = browser.findElement(By.cssSelector("[data-id='groups']")) |
81 | 70 |
.findElements(By.className("node")); |
82 | 71 |
|
83 |
groups.get(0).findElement(By.tagName("rect")).click(); |
|
84 |
try { |
|
85 |
Thread.sleep(1000); |
|
86 |
} catch (InterruptedException e) { |
|
87 |
e.printStackTrace(); |
|
88 |
} |
|
72 |
SeleniumUtil.svgRectClick(groups.get(0)); |
|
89 | 73 |
} |
90 | 74 |
|
91 | 75 |
@AfterEach |
92 |
public void finishTest() {
|
|
76 |
void finishTest() { |
|
93 | 77 |
SeleniumUtil.clear(); |
94 | 78 |
} |
95 | 79 |
} |
sources/src/test/java/cz/zcu/kiv/imiger/tests/frontend/DetailsTest.java | ||
---|---|---|
8 | 8 |
import org.openqa.selenium.WebDriver; |
9 | 9 |
import org.openqa.selenium.WebElement; |
10 | 10 |
|
11 |
public class DetailsTest {
|
|
11 |
class DetailsTest { |
|
12 | 12 |
|
13 |
static WebDriver browser; |
|
13 |
private static WebDriver browser;
|
|
14 | 14 |
|
15 | 15 |
@BeforeAll |
16 |
public static void initTest() {
|
|
16 |
static void initTest() { |
|
17 | 17 |
SeleniumUtil.prepareConfigFile("emptyConfig.json"); |
18 | 18 |
browser = SeleniumUtil.init(); |
19 |
SeleniumUtil.loadGraphData("detailTest.json"); |
|
19 |
SeleniumUtil.switchToRaw(); |
|
20 |
SeleniumUtil.loadGraphData("RawDetailTest.json"); |
|
20 | 21 |
} |
21 | 22 |
|
22 | 23 |
@Test |
23 |
public void vertexDetail(){
|
|
24 |
void vertexDetail(){ |
|
24 | 25 |
checkPopover(vertexPopover("V1"),"V1 (3)\nD: E\nB: W\nA: Q"); |
25 | 26 |
|
26 | 27 |
checkPopover(vertexPopover("V2"),"V2 (2)\nD: E\nC: Q\nB: W"); |
... | ... | |
29 | 30 |
} |
30 | 31 |
|
31 | 32 |
@Test |
32 |
public void edgeDetail() {
|
|
33 |
void edgeDetail() { |
|
33 | 34 |
checkPopover(edgePopover("1"),"Edge details\nedgeArchetype1\nD: E\nC: W"); |
34 | 35 |
|
35 | 36 |
checkPopover(edgePopover("2"),"Edge details\nedgeArchetype1\nD: E\nB: W\nA: Q\nedgeArchetype2\nD: D\nB: S\nA: A"); |
... | ... | |
43 | 44 |
.findElement(By.cssSelector("[data-id='" + edgeId + "']")) |
44 | 45 |
.findElement(By.className("arrow")); |
45 | 46 |
|
46 |
SeleniumUtil.svgClick(arrow);
|
|
47 |
SeleniumUtil.svgClickWithOffset(arrow, 3, 0);
|
|
47 | 48 |
return browser.findElement(By.className("edge-popover")); |
48 | 49 |
} |
49 | 50 |
|
... | ... | |
62 | 63 |
} |
63 | 64 |
|
64 | 65 |
@AfterAll |
65 |
public static void finishTest() {
|
|
66 |
static void finishTest() { |
|
66 | 67 |
SeleniumUtil.clear(); |
67 | 68 |
} |
68 | 69 |
} |
sources/src/test/java/cz/zcu/kiv/imiger/tests/frontend/GroupStatsChangingTest.java | ||
---|---|---|
8 | 8 |
import org.openqa.selenium.WebDriver; |
9 | 9 |
import org.openqa.selenium.WebElement; |
10 | 10 |
|
11 |
import java.util.ArrayList; |
|
12 |
import java.util.Arrays; |
|
13 |
import java.util.List; |
|
11 |
import java.util.*; |
|
14 | 12 |
|
15 |
public class GroupStatsChangingTest {
|
|
16 |
static WebDriver browser; |
|
13 |
class GroupStatsChangingTest { |
|
14 |
private static WebDriver browser;
|
|
17 | 15 |
|
18 | 16 |
@BeforeAll |
19 |
public static void initTest() {
|
|
17 |
static void initTest() { |
|
20 | 18 |
SeleniumUtil.prepareConfigFile("emptyConfig.json"); |
21 | 19 |
browser = SeleniumUtil.init(); |
22 |
SeleniumUtil.loadGraphData("associatedArchetypeTest.json"); |
|
23 |
for(int i = 0; i<=5;i++) |
|
24 |
SeleniumUtil.svgClick(browser.findElement(By.id("zoomOut"))); |
|
20 |
SeleniumUtil.switchToRaw(); |
|
21 |
SeleniumUtil.loadGraphData("RawAssociatedArchetypeTest.json"); |
|
25 | 22 |
} |
26 | 23 |
|
27 | 24 |
@Test |
28 |
public void ChangingStats() { |
|
29 |
String groupId = ""; |
|
30 |
switchExludeMode(); |
|
31 |
WebElement firstEcludedVertex = browser.findElement(By.id("vertex3")); |
|
25 |
void ChangingStats() { |
|
26 |
String groupId; |
|
27 |
SeleniumUtil.switchToExcludeMode(); |
|
28 |
WebElement firstExcludedVertex = browser.findElement(By.cssSelector("[data-id='vertices']")) |
|
29 |
.findElement(By.cssSelector("[data-id='3']")); |
|
32 | 30 |
|
33 |
SeleniumUtil.svgClick(firstEcludedVertex);
|
|
31 |
SeleniumUtil.svgRectClick(firstExcludedVertex);
|
|
34 | 32 |
System.out.println("Exclude vertex3 to group as first vertex of group"); |
35 | 33 |
|
36 |
excludeToExistingGroup("vertex2");
|
|
34 |
excludeToExistingGroup("2"); |
|
37 | 35 |
System.out.println("Exclude vertex2 to group"); |
38 | 36 |
|
39 | 37 |
//get data-id of fgroup |
40 |
groupId = browser.findElement(By.className("group_vertices")).getAttribute("data-id"); |
|
41 |
|
|
42 |
compareExpectedValues(groupId, new ArrayList<String>(Arrays.asList("2","0","0","0"))); |
|
43 |
|
|
44 |
excludeToExistingGroup("vertex1"); |
|
45 |
compareExpectedValues(groupId, new ArrayList<String>(Arrays.asList("2","2","0","2"))); |
|
46 |
System.out.println("Exclude vertex1 to group"); |
|
47 |
|
|
48 |
System.out.println("Remove vertex2 to group"); |
|
49 |
removeVertexFromGroup("li2"); |
|
50 |
compareExpectedValues(groupId, new ArrayList<String>(Arrays.asList("1","2","0","2"))); |
|
51 |
|
|
52 |
System.out.println("Switch off stats for vertex1"); |
|
53 |
toogleVertexInGroup("li1"); |
|
54 |
compareExpectedValues(groupId, new ArrayList<String>(Arrays.asList("1","0","0","0"))); |
|
55 |
|
|
56 |
System.out.println("Switch off stats for vertex3"); |
|
57 |
toogleVertexInGroup("li3"); |
|
58 |
compareExpectedValues(groupId, new ArrayList<String>(Arrays.asList("0","0","0","0"))); |
|
59 |
|
|
60 |
System.out.println("Switch on stats for vertex1"); |
|
61 |
toogleVertexInGroup("li3"); |
|
62 |
excludeToExistingGroup("vertex2"); |
|
63 |
compareExpectedValues(groupId, new ArrayList<String>(Arrays.asList("2","0","0","0"))); |
|
64 |
|
|
65 |
//finaly test just one vertex in group |
|
66 |
String archetypePrefix = "v_archetype_4_"; |
|
67 |
switchExludeMode(); |
|
68 |
WebElement singleEcludedVertex = browser.findElement(By.id("vertex4")); |
|
69 |
System.out.println("Exclude vertex4 to group as first vertex of group"); |
|
70 |
SeleniumUtil.svgClick(singleEcludedVertex); |
|
71 |
|
|
72 |
System.out.println("Checking group statistics"); |
|
73 |
String actualValue1 = browser.findElement(By.id(archetypePrefix + "0")).findElement(By.tagName("text")).getText(); |
|
74 |
String actualValue2 = browser.findElement(By.id(archetypePrefix + "2")).findElement(By.tagName("text")).getText(); |
|
75 |
Assertions.assertEquals(actualValue1, "2"); |
|
76 |
Assertions.assertEquals(actualValue2, "1"); |
|
77 |
|
|
78 |
System.out.println("Expected: 2 - Real: " + actualValue1); |
|
79 |
System.out.println("Expected: 1 - Real: " + actualValue2); |
|
38 |
groupId = browser.findElement(By.id("excludedNodeListComponent")) |
|
39 |
.findElement(By.className("node")).getAttribute("data-id"); |
|
40 |
|
|
41 |
Map<String, String> map = new HashMap<>(); |
|
42 |
map.put("1", "2"); |
|
43 |
map.put("3", "1"); |
|
44 |
compareExpectedValues(groupId, map); |
|
45 |
|
|
46 |
// EXCLUDING VERTICES FROM GROUPS IS NOT SUPPORTED YET |
|
47 |
// excludeToExistingGroup("1"); |
|
48 |
// compareExpectedValues(groupId, new ArrayList<String>(Arrays.asList("2","2","0","2"))); |
|
49 |
// System.out.println("Exclude vertex1 to group"); |
|
50 |
// |
|
51 |
// System.out.println("Remove vertex2 to group"); |
|
52 |
// removeVertexFromGroup("li2"); |
|
53 |
// compareExpectedValues(groupId, new ArrayList<String>(Arrays.asList("1","2","0","2"))); |
|
54 |
// |
|
55 |
// System.out.println("Switch off stats for vertex1"); |
|
56 |
// toogleVertexInGroup("li1"); |
|
57 |
// compareExpectedValues(groupId, new ArrayList<String>(Arrays.asList("1","0","0","0"))); |
|
58 |
// |
|
59 |
// System.out.println("Switch off stats for vertex3"); |
|
60 |
// toogleVertexInGroup("li3"); |
|
61 |
// compareExpectedValues(groupId, new ArrayList<String>(Arrays.asList("0","0","0","0"))); |
|
62 |
// |
|
63 |
// System.out.println("Switch on stats for vertex1"); |
|
64 |
// toogleVertexInGroup("li3"); |
|
65 |
// excludeToExistingGroup("vertex2"); |
|
66 |
// compareExpectedValues(groupId, new ArrayList<String>(Arrays.asList("2","0","0","0"))); |
|
67 |
// |
|
68 |
// //finaly test just one vertex in group |
|
69 |
// String archetypePrefix = "v_archetype_4_"; |
|
70 |
// SeleniumUtil.switchToExcludeMode(); |
|
71 |
// WebElement singleEcludedVertex = browser.findElement(By.id("vertex4")); |
|
72 |
// System.out.println("Exclude vertex4 to group as first vertex of group"); |
|
73 |
// SeleniumUtil.svgClick(singleEcludedVertex); |
|
74 |
// |
|
75 |
// System.out.println("Checking group statistics"); |
|
76 |
// String actualValue1 = browser.findElement(By.id(archetypePrefix + "0")).findElement(By.tagName("text")).getText(); |
|
77 |
// String actualValue2 = browser.findElement(By.id(archetypePrefix + "2")).findElement(By.tagName("text")).getText(); |
|
78 |
// Assertions.assertEquals(actualValue1, "2"); |
|
79 |
// Assertions.assertEquals(actualValue2, "1"); |
|
80 |
// |
|
81 |
// System.out.println("Expected: 2 - Real: " + actualValue1); |
|
82 |
// System.out.println("Expected: 1 - Real: " + actualValue2); |
|
80 | 83 |
|
81 | 84 |
} |
82 | 85 |
|
83 |
/** |
|
84 |
* Turn on exclude mode for vertex exclude |
|
85 |
*/ |
|
86 |
private void switchExludeMode(){ |
|
87 |
browser.findElement(By.id("remove")).click(); |
|
88 |
try { |
|
89 |
Thread.sleep(1000); |
|
90 |
} catch (InterruptedException e) { |
|
91 |
e.printStackTrace(); |
|
92 |
} |
|
93 |
} |
|
94 |
|
|
95 | 86 |
/** |
96 | 87 |
* Exclude vertex from graph to group |
97 | 88 |
* @param vertexId id of vertex to exclude |
98 | 89 |
*/ |
99 | 90 |
private void excludeToExistingGroup(String vertexId){ |
100 |
WebElement secondExcludedVertex = browser.findElement(By.id(vertexId)); |
|
101 |
SeleniumUtil.svgContexClick(secondExcludedVertex); |
|
102 |
WebElement selectedGroup = browser.findElement(By.className("component_color")); |
|
103 |
SeleniumUtil.svgClick(selectedGroup); |
|
91 |
WebElement secondExcludedVertex = browser.findElement(By.cssSelector("[data-id='vertices']")) |
|
92 |
.findElement(By.cssSelector("[data-id='" + vertexId + "']")); |
|
93 |
|
|
94 |
SeleniumUtil.svgContextClick(secondExcludedVertex.findElement(By.tagName("rect"))); |
|
95 |
WebElement selectedGroup = browser.findElement(By.className("context-menu")).findElements(By.tagName("li")).get(0); |
|
96 |
selectedGroup.click(); |
|
104 | 97 |
} |
105 | 98 |
|
106 | 99 |
/** |
... | ... | |
126 | 119 |
* @param groupId id of group |
127 | 120 |
* @param expectedValues list of expected values |
128 | 121 |
*/ |
129 |
private void compareExpectedValues(String groupId, ArrayList<String> expectedValues){
|
|
122 |
private void compareExpectedValues(String groupId, Map<String, String> expectedValues){
|
|
130 | 123 |
System.out.println("Checking group statistics"); |
131 |
String archetypePrefix = "g_archetype_" + groupId + "_";
|
|
124 |
String archetypePrefix = "#vertexArchetypeIcon-";
|
|
132 | 125 |
|
133 |
List<String> actualValues = new ArrayList<String>(); |
|
126 |
WebElement nodeList = browser.findElement(By.id("excludedNodeListComponent")) |
|
127 |
.findElement(By.className("node-list")); |
|
134 | 128 |
|
135 |
for(int i = 0; i< expectedValues.size(); i++) { |
|
136 |
String archetypePos = i+""; |
|
137 |
String actualValue = browser.findElement(By.id(archetypePrefix + archetypePos)).findElement(By.tagName("text")).getText(); |
|
138 |
actualValues.add(actualValue); |
|
139 |
} |
|
129 |
for (String key : expectedValues.keySet()) { |
|
130 |
|
|
131 |
List<WebElement> gList = nodeList.findElement(By.cssSelector("[href='" + archetypePrefix + key + "']")) |
|
132 |
.findElements(By.xpath("//parent::*[name()='g']")); |
|
133 |
|
|
134 |
|
|
135 |
String actualValue = gList.get(gList.size() - 1) |
|
136 |
.findElement(By.tagName("text")).getText(); |
|
140 | 137 |
|
141 |
for(int i = 0; i< expectedValues.size(); i++) { |
|
142 |
Assertions.assertEquals(actualValues.get(i), expectedValues.get(i)); |
|
143 |
System.out.println("Expected: " + expectedValues.get(i) + " - Real: " + actualValues.get(i)); |
|
138 |
Assertions.assertEquals(actualValue, expectedValues.get(key)); |
|
144 | 139 |
} |
145 | 140 |
} |
146 | 141 |
|
147 | 142 |
@AfterAll |
148 |
public static void finishTest() {
|
|
143 |
static void finishTest() { |
|
149 | 144 |
SeleniumUtil.clear(); |
150 | 145 |
} |
151 | 146 |
} |
sources/src/test/java/cz/zcu/kiv/imiger/tests/frontend/SeleniumUtil.java | ||
---|---|---|
12 | 12 |
import java.nio.file.Files; |
13 | 13 |
import java.nio.file.Paths; |
14 | 14 |
|
15 |
public class SeleniumUtil {
|
|
15 |
class SeleniumUtil { |
|
16 | 16 |
|
17 | 17 |
private static final String TEST_DIRECTORY = System.getProperty("user.dir") + "\\..\\test"; |
18 | 18 |
|
... | ... | |
31 | 31 |
|
32 | 32 |
private static WebDriver browser; |
33 | 33 |
|
34 |
public static WebDriver init() {
|
|
34 |
static WebDriver init() { |
|
35 | 35 |
System.setProperty("webdriver.gecko.driver", GECKO_PATH); |
36 | 36 |
browser = new FirefoxDriver(); |
37 | 37 |
browser.get(URL); |
38 | 38 |
return browser; |
39 | 39 |
} |
40 | 40 |
|
41 |
public static void loadGraphData(String filename) {
|
|
41 |
static void loadGraphData(String filename) { |
|
42 | 42 |
WebElement fileInput = browser.findElement(By.id("file")); |
43 | 43 |
fileInput.sendKeys(TEST_DIRECTORY + "\\data\\" + filename ); |
44 | 44 |
browser.findElement(By.id("btnLoad")).click(); |
... | ... | |
53 | 53 |
} |
54 | 54 |
} |
55 | 55 |
|
56 |
public static void prepareConfigFile(String configFile) {
|
|
56 |
static void prepareConfigFile(String configFile) { |
|
57 | 57 |
try { |
58 | 58 |
Files.deleteIfExists(Paths.get(APP_CONFIG_LOCATION + "\\config.json")); |
59 | 59 |
Files.createLink(Paths.get(APP_CONFIG_LOCATION + "\\config.json"), |
... | ... | |
63 | 63 |
} |
64 | 64 |
} |
65 | 65 |
|
66 |
public static void svgClick(WebElement toClick) { |
|
66 |
static void switchToRaw(){ |
|
67 |
browser.findElement(By.id("raw")).click(); |
|
68 |
} |
|
69 |
|
|
70 |
/** |
|
71 |
* Turn on exclude mode for vertex exclude |
|
72 |
*/ |
|
73 |
static void switchToExcludeMode(){ |
|
74 |
browser.findElement(By.id("remove")).click(); |
|
75 |
|
|
76 |
try { |
|
77 |
Thread.sleep(1000); |
|
78 |
} catch (InterruptedException e) { |
|
79 |
e.printStackTrace(); |
|
80 |
} |
|
81 |
} |
|
82 |
|
|
83 |
static void svgRectClick(WebElement toClick){ |
|
84 |
toClick.findElement(By.tagName("rect")).click(); |
|
85 |
|
|
86 |
try { |
|
87 |
Thread.sleep(1000); |
|
88 |
} catch (InterruptedException e) { |
|
89 |
e.printStackTrace(); |
|
90 |
} |
|
91 |
} |
|
92 |
|
|
93 |
static void svgRectContextClick(WebElement toClick){ |
|
94 |
Actions builder = new Actions(browser); |
|
95 |
builder.contextClick(toClick.findElement(By.tagName("rect"))).build().perform(); |
|
96 |
|
|
97 |
try { |
|
98 |
Thread.sleep(1000); |
|
99 |
} catch (InterruptedException e) { |
|
100 |
e.printStackTrace(); |
|
101 |
} |
|
102 |
} |
|
103 |
|
|
104 |
static void svgClick(WebElement toClick) { |
|
105 |
svgClickWithOffset(toClick, 0, 0); |
|
106 |
} |
|
107 |
|
|
108 |
static void svgClickWithOffset(WebElement toClick, int xOffset, int yOffset) { |
|
67 | 109 |
Actions builder = new Actions(browser); |
68 |
builder.click(toClick).build().perform();
|
|
110 |
builder.moveToElement(toClick).moveByOffset(xOffset,yOffset).click().build().perform();
|
|
69 | 111 |
|
70 | 112 |
try { |
71 | 113 |
Thread.sleep(1000); |
... | ... | |
78 | 120 |
* Right mouse click |
79 | 121 |
* @param toClick element for click |
80 | 122 |
*/ |
81 |
public static void svgContexClick(WebElement toClick) {
|
|
123 |
static void svgContextClick(WebElement toClick) {
|
|
82 | 124 |
Actions builder = new Actions(browser); |
83 |
builder.contextClick(toClick).build().perform();
|
|
125 |
builder.moveToElement(toClick).contextClick().build().perform();
|
|
84 | 126 |
|
85 | 127 |
try { |
86 | 128 |
Thread.sleep(1000); |
... | ... | |
89 | 131 |
} |
90 | 132 |
} |
91 | 133 |
|
92 |
public static void clear() {
|
|
134 |
static void clear() { |
|
93 | 135 |
browser.close(); |
94 | 136 |
} |
95 | 137 |
} |
test/data/RawArchetypeIconTest.json | ||
---|---|---|
1 |
{"attributeTypes":[],"edgeArchetypes":[{"name":"edge","text":""}],"vertexArchetypes":[{"icon":"<rect class=\"testingArchetypeIcon\" width=\"12\" height=\"15\" x=\"0\" y =\"0\" stroke=\"none\" fill=\"green\"/>","name":"SpecifiedIcon","text":""},{"icon":"","name":"UnspecifiedIcon","text":""},{"icon":"","name":"☺Smiley","text":""}],"vertices":[{"archetype":0,"attributes":[],"id":1,"text":"","name":"Vertex with specified icon","position":{"x":640.5,"y":408.25}},{"archetype":1,"attributes":[],"id":2,"text":"","name":"Vertex with unspecified icon","position":{"x":826.25,"y":536.75}},{"archetype":2,"attributes":[],"id":3,"text":"","name":"Vertex with smiley as archetype icon","position":{"x":438,"y":537.75}}],"edges":[{"subedgeInfo":[{"archetype":0,"attributes":[],"id":1}],"from":1,"to":3,"text":"","id":1},{"subedgeInfo":[{"archetype":0,"attributes":[],"id":0}],"from":1,"to":2,"text":"","id":2}],"possibleEnumValues":{},"groups":[],"sideBar":[],"highlightedVertex":"","highlightedEdge":""} |
test/data/RawAssociatedArchetypeTest.json | ||
---|---|---|
1 |
{"attributeTypes":[],"edgeArchetypes":[{"name":"edge","text":""}],"vertexArchetypes":[{"icon":"","name":"1","text":""},{"icon":"","name":"2","text":""},{"icon":"","name":"3","text":""},{"icon":"","name":"4","text":""}],"vertices":[{"archetype":0,"attributes":[],"id":1,"text":"","name":"V1","position":{"x":989.5,"y":684}},{"archetype":1,"attributes":[],"id":2,"text":"","name":"V2","position":{"x":985.75,"y":871.5}},{"archetype":1,"attributes":[],"id":3,"text":"","name":"V3","position":{"x":988,"y":540}},{"archetype":3,"attributes":[],"id":4,"text":"","name":"V4","position":{"x":694,"y":678.25}},{"archetype":2,"attributes":[],"id":5,"text":"","name":"V5","position":{"x":702.75,"y":755}}],"edges":[{"subedgeInfo":[{"archetype":0,"attributes":[],"id":0}],"from":1,"to":2,"text":"","id":1},{"subedgeInfo":[{"archetype":0,"attributes":[],"id":4}],"from":4,"to":5,"text":"","id":2},{"subedgeInfo":[{"archetype":0,"attributes":[],"id":2}],"from":1,"to":4,"text":"","id":3},{"subedgeInfo":[{"archetype":0,"attributes":[],"id":1}],"from":3,"to":1,"text":"","id":4},{"subedgeInfo":[{"archetype":0,"attributes":[],"id":3}],"from":4,"to":1,"text":"","id":5}],"possibleEnumValues":{},"groups":[],"sideBar":[],"highlightedVertex":"","highlightedEdge":""} |
test/data/RawDetailTest.json | ||
---|---|---|
1 |
{"attributeTypes":[{"dataType":"STRING","name":"D","text":"0"},{"dataType":"STRING","name":"C","text":"1"},{"dataType":"STRING","name":"B","text":"2"},{"dataType":"STRING","name":"A","text":"3"}],"edgeArchetypes":[{"name":"edgeArchetype1","text":""},{"name":"edgeArchetype2","text":""}],"vertexArchetypes":[{"icon":"","name":"1","text":""},{"icon":"","name":"2","text":""},{"icon":"","name":"3","text":""}],"vertices":[{"archetype":2,"attributes":[["D","E"],["B","W"],["A","Q"]],"id":1,"text":"","name":"V1","position":{"x":753.25,"y":693.75}},{"archetype":1,"attributes":[["D","E"],["C","Q"],["B","W"]],"id":2,"text":"","name":"V2","position":{"x":534.25,"y":897.5}},{"archetype":0,"attributes":[["D","Q"],["C","W"],["A","E"]],"id":3,"text":"","name":"V3","position":{"x":961.25,"y":899.75}}],"edges":[{"subedgeInfo":[{"archetype":0,"attributes":[["D","E"],["C","W"]],"id":3}],"from":1,"to":3,"text":"","id":1},{"subedgeInfo":[{"archetype":0,"attributes":[["D","E"],["B","W"],["A","Q"]],"id":1},{"archetype":1,"attributes":[["D","D"],["B","S"],["A","A"]],"id":2}],"from":1,"to":2,"text":"","id":2},{"subedgeInfo":[{"archetype":1,"attributes":[["C","T"],["B","R"]],"id":4}],"from":3,"to":1,"text":"","id":3}],"possibleEnumValues":{},"groups":[],"sideBar":[],"highlightedVertex":"","highlightedEdge":""} |
test/data/archetypeIconTest.json | ||
---|---|---|
1 |
{ |
|
2 |
"attributeTypes": [ |
|
3 |
|
|
4 |
], |
|
5 |
"vertexArchetypes": [ |
|
6 |
{ |
|
7 |
"name": "SpecifiedIcon", |
|
8 |
"text": "" |
|
9 |
}, |
|
10 |
{ |
|
11 |
"name": "UnspecifiedIcon", |
|
12 |
"text": "" |
|
13 |
}, |
|
14 |
{ |
|
15 |
"name": "☺Smiley", |
|
16 |
"text": "" |
|
17 |
} |
|
18 |
], |
|
19 |
"edgeArchetypes": [ |
|
20 |
{ |
|
21 |
"name": "edge", |
|
22 |
"text": "" |
|
23 |
} |
|
24 |
], |
|
25 |
"vertices": [ |
|
26 |
{ |
|
27 |
"archetype": 0, |
|
28 |
"attributes": {}, |
|
29 |
"id": 1, |
|
30 |
"text": "", |
|
31 |
"title": "Vertex with specified icon" |
|
32 |
}, |
|
33 |
{ |
|
34 |
"archetype": 1, |
|
35 |
"attributes": {}, |
|
36 |
"id": 2, |
|
37 |
"text": "", |
|
38 |
"title": "Vertex with unspecified icon" |
|
39 |
}, |
|
40 |
{ |
|
41 |
"archetype": 2, |
|
42 |
"attributes": {}, |
|
43 |
"id": 3, |
|
44 |
"text": "", |
|
45 |
"title": "Vertex with smiley as archetype icon" |
|
46 |
} |
|
47 |
], |
|
48 |
"edges": [ |
|
49 |
{ |
|
50 |
"archetype": 0, |
|
51 |
"from": 1, |
|
52 |
"attributes": {}, |
|
53 |
"id": 0, |
|
54 |
"to": 2, |
|
55 |
"text": "" |
|
56 |
}, |
|
57 |
{ |
|
58 |
"archetype": 0, |
|
59 |
"from": 1, |
|
60 |
"attributes": {}, |
|
61 |
"id": 1, |
|
62 |
"to": 3, |
|
63 |
"text": "" |
|
64 |
} |
|
65 |
] |
|
66 |
} |
test/data/associatedArchetypeTest.json | ||
---|---|---|
1 |
{ |
|
2 |
"attributeTypes": [ |
|
3 |
|
|
4 |
], |
|
5 |
"vertexArchetypes": [ |
|
6 |
{ |
|
7 |
"name": "1", |
|
8 |
"text": "" |
|
9 |
}, |
|
10 |
{ |
|
11 |
"name": "2", |
|
12 |
"text": "" |
|
13 |
}, |
|
14 |
{ |
|
15 |
"name": "3", |
|
16 |
"text": "" |
|
17 |
}, |
|
18 |
{ |
|
19 |
"name": "4", |
|
20 |
"text": "" |
|
21 |
} |
|
22 |
], |
|
23 |
"edgeArchetypes": [ |
|
24 |
{ |
|
25 |
"name": "edge", |
|
26 |
"text": "" |
|
27 |
} |
|
28 |
], |
|
29 |
"vertices": [ |
|
30 |
{ |
|
31 |
"archetype": 0, |
|
32 |
"attributes": {}, |
|
33 |
"id": 1, |
|
34 |
"text": "", |
|
35 |
"title": "V1" |
|
36 |
}, |
|
37 |
{ |
|
38 |
"archetype": 1, |
|
39 |
"attributes": {}, |
|
40 |
"id": 2, |
|
41 |
"text": "", |
|
42 |
"title": "V2" |
|
43 |
}, |
|
44 |
{ |
|
45 |
"archetype": 1, |
|
46 |
"attributes": {}, |
|
47 |
"id": 3, |
|
48 |
"text": "", |
|
49 |
"title": "V3" |
|
50 |
}, |
|
51 |
{ |
|
52 |
"archetype": 3, |
|
53 |
"attributes": {}, |
|
54 |
"id": 4, |
|
55 |
"text": "", |
|
56 |
"title": "V4" |
|
57 |
}, |
|
58 |
{ |
|
59 |
"archetype": 2, |
|
60 |
"attributes": {}, |
|
61 |
"id": 5, |
|
62 |
"text": "", |
|
63 |
"title": "V5" |
|
64 |
} |
|
65 |
], |
|
66 |
"edges": [ |
|
67 |
{ |
|
68 |
"archetype": 0, |
|
69 |
"from": 1, |
|
70 |
"attributes": {}, |
|
71 |
"id": 0, |
|
72 |
"to": 2, |
|
73 |
"text": "" |
|
74 |
}, |
|
75 |
{ |
|
76 |
"archetype": 0, |
|
77 |
"from": 3, |
|
78 |
"attributes": {}, |
|
79 |
"id": 1, |
|
80 |
"to": 1, |
|
81 |
"text": "" |
|
82 |
}, |
|
83 |
{ |
|
84 |
"archetype": 0, |
|
85 |
"from": 1, |
|
86 |
"attributes": {}, |
|
87 |
"id": 2, |
|
88 |
"to": 4, |
|
89 |
"text": "" |
|
90 |
}, |
|
91 |
{ |
|
92 |
"archetype": 0, |
|
93 |
"from": 4, |
|
94 |
"attributes": {}, |
|
95 |
"id": 3, |
|
96 |
"to": 1, |
|
97 |
"text": "" |
|
98 |
}, |
|
99 |
{ |
|
100 |
"archetype": 0, |
|
101 |
"from": 4, |
|
102 |
"attributes": {}, |
|
103 |
"id": 4, |
|
104 |
"to": 5, |
|
105 |
"text": "" |
|
106 |
} |
|
107 |
] |
|
108 |
} |
test/data/aswi2017falsum.json | ||
---|---|---|
1 |
{ |
|
2 |
"attributeTypes": [ |
|
3 |
{ |
|
4 |
"dataType": "string", |
|
5 |
"name": "EID", |
|
6 |
"text": "External ID" |
|
7 |
}, |
|
8 |
{ |
|
9 |
"dataType": "string", |
|
10 |
"name": "Name", |
|
11 |
"text": "" |
|
12 |
}, |
|
13 |
{ |
|
14 |
"dataType": "string", |
|
15 |
"name": "Description", |
|
16 |
"text": "" |
|
17 |
}, |
|
18 |
{ |
|
19 |
"dataType": "string", |
|
20 |
"name": "Comment", |
|
21 |
"text": "" |
|
22 |
}, |
|
23 |
{ |
|
24 |
"dataType": "string", |
|
25 |
"name": "Message", |
|
26 |
"text": "Commit message" |
|
27 |
}, |
|
28 |
{ |
|
29 |
"dataType": "string", |
|
30 |
"name": "Identities", |
|
31 |
"text": "Logins, aliases, other names" |
|
32 |
}, |
|
33 |
{ |
|
34 |
"dataType": "string", |
|
35 |
"name": "Emails", |
|
36 |
"text": "" |
|
37 |
}, |
|
38 |
{ |
|
39 |
"dataType": "enum", |
|
40 |
"name": "Roles", |
|
41 |
"text": "" |
|
42 |
}, |
|
43 |
{ |
|
44 |
"dataType": "enum", |
|
45 |
"name": "Author", |
|
46 |
"text": "Author's name" |
|
47 |
}, |
|
48 |
{ |
|
49 |
"dataType": "date", |
|
50 |
"name": "Created", |
|
51 |
"text": "Creation date" |
|
52 |
}, |
|
53 |
{ |
|
54 |
"dataType": "string", |
|
55 |
"name": "URL", |
|
56 |
"text": "" |
|
57 |
}, |
|
58 |
{ |
|
59 |
"dataType": "number", |
|
60 |
"name": "Number", |
|
61 |
"text": "Ticket number in issue tracker" |
|
62 |
}, |
|
63 |
{ |
|
64 |
"dataType": "enum", |
|
65 |
"name": "Assignee", |
|
66 |
"text": "Assignee's name" |
|
67 |
}, |
|
68 |
{ |
|
69 |
"dataType": "enum", |
|
70 |
"name": "Type", |
|
71 |
"text": "" |
|
72 |
}, |
|
73 |
{ |
|
74 |
"dataType": "enum", |
|
75 |
"name": "Priority", |
|
76 |
"text": "" |
|
77 |
}, |
|
78 |
{ |
|
79 |
"dataType": "enum", |
|
80 |
"name": "Severity", |
|
81 |
"text": "" |
|
82 |
}, |
|
83 |
{ |
|
84 |
"dataType": "date", |
|
85 |
"name": "Start", |
|
86 |
"text": "Start date" |
|
87 |
}, |
|
88 |
{ |
|
89 |
"dataType": "date", |
|
90 |
"name": "Due", |
|
91 |
"text": "Due date" |
|
92 |
}, |
|
93 |
{ |
|
94 |
"dataType": "enum", |
|
95 |
"name": "Iteration", |
|
96 |
"text": "" |
|
97 |
}, |
|
98 |
{ |
|
99 |
"dataType": "enum", |
|
100 |
"name": "Status", |
|
101 |
"text": "" |
|
102 |
}, |
|
103 |
{ |
|
104 |
"dataType": "enum", |
|
105 |
"name": "Resolution", |
|
106 |
"text": "" |
|
107 |
}, |
|
108 |
{ |
|
109 |
"dataType": "number", |
|
110 |
"name": "Estimate", |
|
111 |
"text": "Estimated time" |
|
112 |
}, |
|
113 |
{ |
|
114 |
"dataType": "number", |
|
115 |
"name": "Spent", |
|
116 |
"text": "Spent time" |
|
117 |
}, |
|
118 |
{ |
|
119 |
"dataType": "number", |
|
120 |
"name": "Progress", |
|
121 |
"text": "% done" |
|
122 |
}, |
|
123 |
{ |
|
124 |
"dataType": "enum", |
|
125 |
"name": "Categories", |
|
126 |
"text": "" |
|
127 |
}, |
|
128 |
{ |
|
129 |
"dataType": "string", |
|
130 |
"name": "Identifier", |
|
131 |
"text": "" |
|
132 |
}, |
|
133 |
{ |
|
134 |
"dataType": "date", |
|
135 |
"name": "Committed", |
|
136 |
"text": "Committed on date" |
|
137 |
}, |
|
138 |
{ |
|
139 |
"dataType": "string", |
|
140 |
"name": "Changes", |
|
141 |
"text": "" |
|
142 |
}, |
|
143 |
{ |
|
144 |
"dataType": "enum", |
|
145 |
"name": "Branches", |
|
146 |
"text": "" |
|
147 |
}, |
|
148 |
{ |
|
149 |
"dataType": "enum", |
|
150 |
"name": "Tags", |
|
151 |
"text": "VCS tags" |
|
152 |
}, |
|
153 |
{ |
|
154 |
"dataType": "enum", |
|
155 |
"name": "MIME", |
|
156 |
"text": "MIME type" |
|
157 |
}, |
|
158 |
{ |
|
159 |
"dataType": "number", |
|
160 |
"name": "Size", |
|
161 |
"text": "in bytes" |
|
162 |
}, |
|
163 |
{ |
|
164 |
"dataType": "enum", |
|
165 |
"name": "Relation", |
|
166 |
"text": "Relation type" |
|
167 |
}, |
|
168 |
{ |
|
169 |
"dataType": "enum", |
|
170 |
"name": "Role classes", |
|
171 |
"text": "" |
|
172 |
}, |
|
173 |
{ |
|
174 |
"dataType": "enum", |
|
175 |
"name": "Role super classes", |
|
176 |
"text": "" |
|
177 |
}, |
|
178 |
{ |
|
179 |
"dataType": "enum", |
|
180 |
"name": "Type class", |
|
181 |
"text": "" |
|
182 |
}, |
|
183 |
{ |
|
184 |
"dataType": "enum", |
|
185 |
"name": "Priority class", |
|
186 |
"text": "" |
|
187 |
}, |
|
188 |
{ |
|
189 |
"dataType": "enum", |
|
190 |
"name": "Priority super class", |
|
191 |
"text": "" |
|
192 |
}, |
|
193 |
{ |
|
194 |
"dataType": "enum", |
|
195 |
"name": "Severity class", |
|
196 |
"text": "" |
|
197 |
}, |
|
198 |
{ |
|
199 |
"dataType": "enum", |
|
200 |
"name": "Severity super class", |
|
201 |
"text": "" |
|
202 |
}, |
|
203 |
{ |
|
204 |
"dataType": "enum", |
|
205 |
"name": "Status class", |
|
206 |
"text": "" |
|
207 |
}, |
|
208 |
{ |
|
209 |
"dataType": "enum", |
|
210 |
"name": "Status super class", |
|
211 |
"text": "" |
|
212 |
}, |
|
213 |
{ |
|
214 |
"dataType": "enum", |
|
215 |
"name": "Resolution class", |
|
216 |
"text": "" |
|
217 |
}, |
|
218 |
{ |
|
219 |
"dataType": "enum", |
|
220 |
"name": "Resolution super class", |
|
221 |
"text": "" |
|
222 |
} |
|
223 |
], |
|
224 |
"vertexArchetypes": [ |
|
225 |
{ |
|
226 |
"name": "Person", |
|
227 |
"text": "" |
|
228 |
}, |
|
229 |
{ |
|
230 |
"name": "Ticket", |
|
231 |
"text": "" |
|
232 |
}, |
|
233 |
{ |
|
234 |
"name": "File", |
|
235 |
"text": "" |
|
236 |
}, |
|
237 |
{ |
|
238 |
"name": "Wiki", |
|
239 |
"text": "" |
|
240 |
}, |
|
241 |
{ |
|
242 |
"name": "Change", |
|
243 |
"text": "" |
|
244 |
}, |
|
245 |
{ |
|
246 |
"name": "Commit", |
|
247 |
"text": "" |
|
248 |
}, |
|
249 |
{ |
|
250 |
"name": "RepoFile", |
|
251 |
"text": "" |
|
252 |
} |
|
253 |
], |
|
254 |
"edgeArchetypes": [ |
|
255 |
{ |
|
256 |
"name": "Authorship", |
|
257 |
"text": "" |
|
258 |
}, |
|
259 |
{ |
|
260 |
"name": "Assignment", |
|
261 |
"text": "" |
|
262 |
}, |
|
263 |
{ |
|
264 |
"name": "CommitParticipation", |
|
265 |
"text": "" |
|
266 |
}, |
|
267 |
{ |
|
268 |
"name": "ItemRelation", |
|
269 |
"text": "" |
|
270 |
}, |
|
271 |
{ |
|
272 |
"name": "Affection", |
|
273 |
"text": "" |
|
274 |
}, |
|
275 |
{ |
|
276 |
"name": "Commit", |
|
277 |
"text": "" |
|
278 |
}, |
|
279 |
{ |
|
280 |
"name": "Modification", |
|
281 |
"text": "" |
|
282 |
} |
|
283 |
], |
|
284 |
"vertices": [ |
|
285 |
{ |
|
286 |
"archetype": 0, |
|
287 |
"attributes": { |
|
288 |
"33": [ |
|
289 |
"DEVELOPER", |
|
290 |
"STAKEHOLDER" |
|
291 |
], |
|
292 |
"1": "JL", |
|
293 |
"34": [ |
|
294 |
"TEAMMEMBER", |
|
295 |
"STAKEHOLDER" |
|
296 |
], |
|
297 |
"5": [ |
|
298 |
"", |
|
299 |
"Goheeca", |
|
300 |
"JL", |
|
301 |
"goheeca" |
|
302 |
], |
|
303 |
"6": [ |
|
304 |
"JL" |
|
305 |
], |
|
306 |
"7": [ |
|
307 |
"Developer", |
|
308 |
"Project admin" |
|
309 |
] |
|
310 |
}, |
|
311 |
"id": 0, |
|
312 |
"text": "", |
|
313 |
"title": "JL" |
|
314 |
}, |
|
315 |
{ |
|
316 |
"archetype": 0, |
|
317 |
"attributes": { |
|
318 |
"33": ["TEAMMEMBER"], |
|
319 |
"1": "TC", |
|
320 |
"34": ["TEAMMEMBER"], |
|
321 |
"5": [ |
|
322 |
"", |
|
323 |
"TC" |
|
324 |
], |
|
325 |
"7": ["member"] |
|
326 |
}, |
|
327 |
"id": 1, |
|
328 |
"text": "", |
|
329 |
"title": "TC" |
|
330 |
}, |
|
331 |
{ |
|
332 |
"archetype": 0, |
|
333 |
"attributes": { |
|
334 |
"33": [ |
|
335 |
"DEVELOPER", |
|
336 |
"STAKEHOLDER" |
|
337 |
], |
|
338 |
"1": "VL", |
|
339 |
"34": [ |
|
340 |
"TEAMMEMBER", |
|
341 |
"STAKEHOLDER" |
|
342 |
], |
|
343 |
"5": [ |
|
344 |
"", |
|
345 |
"VL", |
|
346 |
], |
|
347 |
"6": [ |
|
348 |
"VL", |
|
349 |
], |
|
350 |
"7": [ |
|
351 |
"Developer", |
|
352 |
"Project admin" |
|
353 |
] |
|
354 |
}, |
|
355 |
"id": 2, |
|
356 |
"text": "", |
|
357 |
"title": "VL" |
|
358 |
}, |
|
359 |
{ |
|
360 |
"archetype": 0, |
|
361 |
"attributes": { |
|
362 |
"33": [ |
|
363 |
"DEVELOPER", |
|
364 |
"PROJECTMANAGER", |
|
365 |
"STAKEHOLDER" |
|
366 |
], |
|
367 |
"1": "laptop", |
|
368 |
"34": [ |
|
369 |
"TEAMMEMBER", |
|
370 |
"MANAGEMENT", |
|
371 |
"STAKEHOLDER" |
|
372 |
], |
|
373 |
"5": [ |
|
374 |
"", |
|
375 |
"LO", |
|
376 |
"laptop", |
|
377 |
], |
|
378 |
"6": [ |
|
379 |
"LO", |
|
380 |
], |
|
381 |
"7": [ |
|
382 |
"Developer", |
|
383 |
"Team leader", |
|
384 |
"Project admin" |
|
385 |
] |
|
386 |
}, |
|
387 |
"id": 3, |
|
388 |
"text": "", |
|
389 |
"title": "laptop" |
|
390 |
}, |
|
391 |
{ |
|
392 |
"archetype": 0, |
|
393 |
"attributes": { |
|
394 |
"33": [ |
|
395 |
"DEVELOPER", |
|
396 |
"STAKEHOLDER" |
|
397 |
], |
|
398 |
"1": "KB", |
|
399 |
"34": [ |
|
400 |
"TEAMMEMBER", |
|
401 |
"STAKEHOLDER" |
|
402 |
], |
|
403 |
"5": [ |
|
404 |
"", |
|
405 |
"KB", |
|
406 |
], |
|
407 |
"6": [ |
|
408 |
"KB", |
|
409 |
], |
|
410 |
"7": [ |
|
411 |
"Developer", |
|
412 |
"Project admin" |
|
413 |
] |
|
414 |
}, |
|
415 |
"id": 4, |
|
416 |
"text": "", |
|
417 |
"title": "KB" |
|
418 |
}, |
|
419 |
{ |
|
420 |
"archetype": 0, |
|
421 |
"attributes": { |
|
422 |
"33": ["TEAMMEMBER"], |
|
423 |
"1": "GitHub", |
|
424 |
"34": ["TEAMMEMBER"], |
|
425 |
"5": [ |
|
426 |
"", |
|
427 |
"GitHub", |
|
428 |
"noreply" |
|
429 |
], |
|
430 |
"6": ["noreply@github.com"], |
|
431 |
"7": ["member"] |
|
432 |
}, |
|
433 |
"id": 5, |
|
434 |
"text": "", |
|
435 |
"title": "GitHub" |
|
436 |
}, |
|
437 |
{ |
|
438 |
"archetype": 0, |
|
439 |
"attributes": { |
|
440 |
"33": ["MENTOR"], |
|
441 |
"1": "PB", |
|
442 |
"34": ["STAKEHOLDER"], |
|
443 |
"5": [ |
|
444 |
"PB", |
|
445 |
], |
|
446 |
"7": ["Mentor"] |
|
447 |
}, |
|
448 |
"id": 6, |
|
449 |
"text": "", |
|
450 |
"title": "PB" |
|
451 |
}, |
|
452 |
{ |
|
453 |
"archetype": 0, |
|
454 |
"attributes": { |
|
455 |
"33": [ |
|
456 |
"MENTOR", |
|
457 |
"DEVELOPER", |
|
458 |
"PROJECTMANAGER", |
|
459 |
"STAKEHOLDER", |
|
460 |
"STAKEHOLDER" |
|
461 |
], |
|
462 |
"1": "PP", |
|
463 |
"34": [ |
|
464 |
"STAKEHOLDER", |
|
465 |
"TEAMMEMBER", |
|
466 |
"MANAGEMENT", |
|
467 |
"STAKEHOLDER", |
|
468 |
"STAKEHOLDER" |
|
469 |
], |
|
470 |
"5": [ |
|
471 |
"PP", |
|
472 |
], |
|
473 |
"7": [ |
|
474 |
"Mentor", |
|
475 |
"Developer", |
|
476 |
"Team leader", |
|
477 |
"Customer", |
|
478 |
"Project admin" |
|
479 |
] |
|
480 |
}, |
|
481 |
"id": 7, |
|
482 |
"text": "", |
|
483 |
"title": "PP" |
|
484 |
}, |
|
485 |
{ |
|
486 |
"archetype": 0, |
|
487 |
"attributes": { |
|
488 |
"33": [ |
|
489 |
"STAKEHOLDER", |
|
490 |
"STAKEHOLDER" |
|
491 |
], |
|
492 |
"1": "JL", |
|
493 |
"34": [ |
|
494 |
"STAKEHOLDER", |
|
495 |
"STAKEHOLDER" |
|
496 |
], |
|
497 |
"5": [ |
|
498 |
"JL", |
|
499 |
], |
|
500 |
"6": [ |
|
501 |
"JL", |
|
502 |
], |
|
503 |
"7": [ |
|
504 |
"Customer", |
|
505 |
"Project admin" |
|
506 |
] |
|
507 |
}, |
|
508 |
"id": 8, |
|
509 |
"text": "", |
|
510 |
"title": "JL" |
|
511 |
}, |
|
512 |
{ |
|
513 |
"archetype": 0, |
|
514 |
"attributes": { |
|
515 |
"33": ["TEAMMEMBER"], |
|
516 |
"1": "unknown", |
|
517 |
"34": ["TEAMMEMBER"], |
|
518 |
"5": [ |
|
519 |
"", |
|
520 |
"unknown" |
|
521 |
], |
|
522 |
"6": [], |
|
523 |
"7": ["member"] |
|
524 |
}, |
|
525 |
"id": 9, |
|
526 |
"text": "", |
|
527 |
"title": "unknown" |
|
528 |
}, |
|
529 |
{ |
|
530 |
"archetype": 1, |
|
531 |
"attributes": { |
|
532 |
"22": "4.0", |
|
533 |
"23": "0", |
|
534 |
"24": [], |
|
535 |
"10": "https://students.kiv.zcu.cz:3443/issues/5893", |
|
536 |
"11": "5893", |
|
537 |
"12": ["VL"], |
|
538 |
"13": ["Enhancement"], |
|
539 |
"35": ["ENHANCEMENT"], |
|
540 |
"14": ["Normal"], |
|
541 |
"36": ["NORMAL"], |
|
542 |
"37": ["NORMAL"], |
|
543 |
"15": ["unassigned"], |
|
544 |
"38": ["NORMAL"], |
|
545 |
"16": "2017-05-05 00:00:00", |
|
546 |
"39": ["UNASSIGNED"], |
|
547 |
"17": "2017-05-11 00:00:00", |
|
548 |
"18": ["4. iterace"], |
|
549 |
"19": ["Closed"], |
|
550 |
"0": "5893", |
|
551 |
"1": "backend: flow registrace uzivatele s emailem", |
|
552 |
"2": "email viz: https://console.ng.bluemix.net/catalog/services/sendgrid", |
|
553 |
"8": ["VL"], |
|
554 |
"9": "2017-05-05 14:47:12", |
|
555 |
"40": ["DONE"], |
|
556 |
"41": ["CLOSED"], |
|
557 |
"20": ["unassigned"], |
|
558 |
"42": ["UNASSIGNED"], |
|
559 |
"43": ["UNASSIGNED"], |
|
560 |
"21": "4.0" |
|
561 |
}, |
|
562 |
"id": 10, |
|
563 |
"text": "", |
|
564 |
"title": "5893" |
|
565 |
}, |
|
566 |
{ |
|
567 |
"archetype": 1, |
|
568 |
"attributes": { |
|
569 |
"22": "4.0", |
|
570 |
"23": "100", |
|
571 |
"24": [], |
|
572 |
"10": "https://students.kiv.zcu.cz:3443/issues/5894", |
|
573 |
"11": "5894", |
|
574 |
"12": ["unknown"], |
|
575 |
"13": ["Enhancement"], |
|
576 |
"35": ["ENHANCEMENT"], |
|
577 |
"14": ["Normal"], |
|
578 |
"36": ["NORMAL"], |
|
579 |
"37": ["NORMAL"], |
|
580 |
"15": ["unassigned"], |
|
581 |
"38": ["NORMAL"], |
|
582 |
"16": "2017-05-05 00:00:00", |
|
583 |
"39": ["UNASSIGNED"], |
|
584 |
"17": "2017-05-11 00:00:00", |
|
585 |
"18": ["4. iterace"], |
|
586 |
"19": ["Closed"], |
|
587 |
"0": "5894", |
|
588 |
"1": "frontend: pridani neregistrovaneho uzivatele k projektu", |
|
589 |
"2": "", |
|
590 |
"8": ["VL"], |
|
591 |
"9": "2017-05-05 14:47:55", |
|
592 |
"40": ["DONE"], |
|
593 |
"41": ["CLOSED"], |
|
594 |
"20": ["unassigned"], |
|
595 |
"42": ["UNASSIGNED"], |
|
596 |
"43": ["UNASSIGNED"], |
|
597 |
"21": "4.0" |
|
598 |
}, |
|
599 |
"id": 11, |
|
600 |
"text": "", |
|
601 |
"title": "5894" |
|
602 |
}, |
|
603 |
{ |
|
604 |
"archetype": 1, |
|
605 |
"attributes": { |
|
606 |
"22": "4.0", |
|
607 |
"23": "100", |
|
608 |
"24": [], |
|
609 |
"10": "https://students.kiv.zcu.cz:3443/issues/5895", |
|
610 |
"11": "5895", |
|
611 |
"12": ["VL"], |
|
612 |
"13": ["Enhancement"], |
|
613 |
"35": ["ENHANCEMENT"], |
|
614 |
"14": ["Normal"], |
|
615 |
"36": ["NORMAL"], |
|
616 |
"37": ["NORMAL"], |
|
617 |
"15": ["unassigned"], |
|
618 |
"38": ["NORMAL"], |
|
619 |
"16": "2017-05-05 00:00:00", |
|
620 |
"39": ["UNASSIGNED"], |
|
621 |
"17": "2017-05-11 00:00:00", |
|
622 |
"18": ["4. iterace"], |
|
623 |
"19": ["Closed"], |
|
624 |
"0": "5895", |
|
625 |
"1": "bluemix email service: sendgrid", |
|
626 |
"2": "", |
|
627 |
"8": ["VL"], |
|
628 |
"9": "2017-05-05 15:10:43", |
|
629 |
"40": ["DONE"], |
|
630 |
"41": ["CLOSED"], |
|
631 |
"20": ["unassigned"], |
|
632 |
"42": ["UNASSIGNED"], |
|
633 |
"43": ["UNASSIGNED"], |
|
634 |
"21": "4.0" |
|
635 |
}, |
|
636 |
"id": 12, |
|
637 |
"text": "", |
|
638 |
"title": "5895" |
|
639 |
}, |
|
640 |
{ |
|
641 |
"archetype": 1, |
|
642 |
"attributes": { |
|
643 |
"22": "6.0", |
|
644 |
"23": "100", |
|
645 |
"24": [], |
|
646 |
"10": "https://students.kiv.zcu.cz:3443/issues/5896", |
|
647 |
"11": "5896", |
|
648 |
"12": ["unknown"], |
|
649 |
"13": ["Enhancement"], |
|
650 |
"35": ["ENHANCEMENT"], |
|
651 |
"14": ["Normal"], |
|
652 |
"36": ["NORMAL"], |
|
653 |
"37": ["NORMAL"], |
|
654 |
"15": ["unassigned"], |
|
655 |
"38": ["NORMAL"], |
|
656 |
"16": "2017-05-05 00:00:00", |
|
657 |
"39": ["UNASSIGNED"], |
|
658 |
"17": "2017-05-11 00:00:00", |
|
659 |
"18": ["4. iterace"], |
|
660 |
"19": ["Closed"], |
|
661 |
"0": "5896", |
|
662 |
"1": "frontend: registracni formulař s predvyplnenymi daty z url (z emailu)", |
|
663 |
"2": "", |
|
664 |
"8": ["VL"], |
|
665 |
"9": "2017-05-05 15:26:55", |
|
666 |
"40": ["DONE"], |
|
667 |
"41": ["CLOSED"], |
|
668 |
"20": ["unassigned"], |
|
669 |
"42": ["UNASSIGNED"], |
|
670 |
"43": ["UNASSIGNED"], |
|
671 |
"21": "6.0" |
|
672 |
}, |
|
673 |
"id": 13, |
|
674 |
"text": "", |
|
675 |
"title": "5896" |
|
676 |
}, |
|
677 |
{ |
|
678 |
"archetype": 1, |
|
679 |
"attributes": { |
|
680 |
"22": "2.0", |
|
681 |
"23": "100", |
|
682 |
"24": [], |
|
683 |
"10": "https://students.kiv.zcu.cz:3443/issues/5145", |
|
684 |
"11": "5145", |
|
685 |
"12": ["KB"], |
|
686 |
"13": ["Task"], |
|
687 |
"35": ["TASK"], |
|
688 |
"14": ["Normal"], |
|
689 |
"36": ["NORMAL"], |
|
690 |
"37": ["NORMAL"], |
|
691 |
"15": ["unassigned"], |
|
692 |
"38": ["NORMAL"], |
|
693 |
"16": "2017-03-20 00:00:00", |
|
694 |
"39": ["UNASSIGNED"], |
Také k dispozici: Unified diff
Repaired Selenium tests