diff options
Diffstat (limited to 'integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/pages/component/workspace/CompositionCanvasComponent.java')
-rw-r--r-- | integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/pages/component/workspace/CompositionCanvasComponent.java | 50 |
1 files changed, 44 insertions, 6 deletions
diff --git a/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/pages/component/workspace/CompositionCanvasComponent.java b/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/pages/component/workspace/CompositionCanvasComponent.java index f339412c14..7b8ebf5ed2 100644 --- a/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/pages/component/workspace/CompositionCanvasComponent.java +++ b/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/pages/component/workspace/CompositionCanvasComponent.java @@ -37,6 +37,7 @@ import org.onap.sdc.backend.ci.tests.utils.general.AtomicOperationUtils; import org.onap.sdc.frontend.ci.tests.datatypes.CanvasNodeElement; import org.onap.sdc.frontend.ci.tests.exception.CompositionCanvasRuntimeException; import org.onap.sdc.frontend.ci.tests.execute.setup.ExtentTestActions; +import org.onap.sdc.frontend.ci.tests.flow.exception.UiTestFlowRuntimeException; import org.onap.sdc.frontend.ci.tests.pages.AbstractPageObject; import org.openecomp.sdc.be.model.ComponentInstance; import org.openecomp.sdc.be.model.Resource; @@ -99,12 +100,6 @@ public class CompositionCanvasComponent extends AbstractPageObject { canvasCenterX = canvasWidth / 2; canvasCenterY = canvasHeight / 2; LOGGER.debug("Canvas with size [{}, {}] and center [{}, {}]", canvasWidth, canvasHeight, canvasCenterX, canvasCenterY); - final String scriptJS = "var cy = window.jQuery('.sdc-composition-graph-wrapper').cytoscape('get');\n" - + "return JSON.stringify({width: cy.width(), height: cy.height()});"; - final Object sizeObj = ((JavascriptExecutor) webDriver).executeScript(scriptJS); - final JsonObject size = new JsonParser().parse(sizeObj.toString()).getAsJsonObject(); - - LOGGER.debug("Canvas with size [{}, {}]", size.get("width"), size.get("height")); } private void loadElements() { @@ -250,6 +245,49 @@ public class CompositionCanvasComponent extends AbstractPageObject { return new ImmutablePair<>(xElement, yElement); } + public RelationshipWizardComponent createLink(final String fromNodeName, final String toNodeName) { + final CanvasNodeElement fromCanvasElement = canvasElementList.stream() + .filter(canvasNodeElement -> canvasNodeElement.getName().equals(fromNodeName)).findFirst() + .orElseThrow(() -> new UiTestFlowRuntimeException(String.format("Could not find node '%s'", fromNodeName))); + final CanvasNodeElement toCanvasElement = canvasElementList.stream() + .filter(canvasNodeElement -> canvasNodeElement.getName().equals(toNodeName)).findFirst() + .orElseThrow(() -> new UiTestFlowRuntimeException(String.format("Could not find node '%s'", toNodeName))); + + final Point greenPlusPosition = getElementGreenPlusPosition(fromCanvasElement.getName()); + final Point greenPlusPositionFromCenter = calculateOffsetFromCenter(greenPlusPosition); + final Point toElementPositionFromCenter = calculateOffsetFromCenter(toCanvasElement.getPositionX(), toCanvasElement.getPositionY()); + new Actions(webDriver) + .moveToElement(canvasWebElement, greenPlusPositionFromCenter.getX(), greenPlusPositionFromCenter.getY()) + .moveByOffset(3, 3).moveByOffset(-3, -3) + .pause(Duration.ofSeconds(2)) + .clickAndHold() + .pause(Duration.ofSeconds(1)) + .moveToElement(canvasWebElement, toElementPositionFromCenter.getX(), toElementPositionFromCenter.getY()) + .pause(Duration.ofSeconds(1)) + .release() + .perform(); + return new RelationshipWizardComponent(webDriver); + } + + public Point getElementGreenPlusPosition(final String elementName) { + String scriptJS = "var cy = window.jQuery('.sdc-composition-graph-wrapper').cytoscape('get');\n" + + "var cyZoom = cy.zoom();\n" + + "var n = cy.nodes('[name=\"" + elementName + "\"]');\n" + + "var nPos = n.renderedPosition();\n" + + "var nData = n.data();\n" + + "var nImgSize = nData.imgWidth;\n" + + "var shiftSize = (nImgSize-18)*cyZoom/2;\n" + + "return JSON.stringify({\n" + + "\tx: nPos.x + shiftSize,\n" + + "\ty: nPos.y - shiftSize\n" + + "});"; + final String o = (String) ((JavascriptExecutor) webDriver).executeScript(scriptJS); + final JsonObject node = new JsonParser().parse(o).getAsJsonObject(); + final int x = node.get("x").getAsInt(); + final int y = node.get("y").getAsInt(); + return new Point(x, y); + } + /** * Enum that contains identifiers and xpath expressions to elements related to the enclosing page object. */ |