diff --git a/.travis.yml b/.travis.yml index 3692d2bd..3b1de05c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -69,7 +69,7 @@ script: - cd ../ui-testing - mvn test -P travis & - - sleep 1200 + - sleep 1500 notifications: slack: qreal-web:sT5qgA4qZZ9eyLI0yy2Mp81E diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/PageFactory.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/PageFactory.java index 5dda1a6b..d668d58f 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/PageFactory.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/PageFactory.java @@ -5,17 +5,22 @@ import com.qreal.wmp.uitesting.dia.scene.SceneProxy; import com.qreal.wmp.uitesting.headerpanel.EditorHeaderPanelImpl; import com.qreal.wmp.uitesting.mousegestures.GestureManipulatorImpl; +import com.qreal.wmp.uitesting.mousegestures.RobotCalibration; import com.qreal.wmp.uitesting.pages.AuthPage; import com.qreal.wmp.uitesting.pages.DashboardPage; -import com.qreal.wmp.uitesting.pages.EditorPage; -import com.qreal.wmp.uitesting.pages.EditorPageFacade; +import com.qreal.wmp.uitesting.pages.editor.DefaultEditorPage; +import com.qreal.wmp.uitesting.pages.editor.EditorPage; +import com.qreal.wmp.uitesting.pages.editor.EditorPageFacade; +import com.qreal.wmp.uitesting.pages.editor.EditorPageWithGestures; +import org.jetbrains.annotations.Contract; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static com.codeborne.selenide.Selenide.title; +import static com.codeborne.selenide.WebDriverRunner.url; -/** Returns page instance for requested uri. */ +/** Returns page instance for requested uri. + * Important: Factory must be used only if url of wanted page is opened in browser. */ public class PageFactory { private static final Logger logger = LoggerFactory.getLogger(PageFactory.class); @@ -29,14 +34,20 @@ public PageFactory(WebDriver webDriver) { /** Returns Editor Page instance. */ public EditorPage getEditorPage() { logger.info("Editor page was created"); - EditorPageFacade editorPageFacade = new EditorPageFacade(); - EditorPage page = new EditorPage( - title(), - SceneProxy.getSceneProxy(webDriver, editorPageFacade), - PalleteImpl.getPallete(), - PropertyEditorImpl.getPropertyEditor(), - EditorHeaderPanelImpl.getEditorHeaderPanel(this, webDriver, editorPageFacade), - GestureManipulatorImpl.getGestureManipulator(webDriver, editorPageFacade) + EditorPageFacade editorPageFacade = new EditorPageFacade(url()); + EditorPage page = getDefaultEditorPage(editorPageFacade); + editorPageFacade.setScene((SceneProxy) page.getScene()); + return page; + } + + /** Returns Editor page with gesture decorator. */ + public EditorPage getEditorPageWithGestures() { + EditorPageFacade editorPageFacade = new EditorPageFacade(url()); + RobotCalibration.calibrate(webDriver); + editorPageFacade.reload(); + EditorPage page = new EditorPageWithGestures( + getDefaultEditorPage(editorPageFacade), + GestureManipulatorImpl.getGestureManipulator(editorPageFacade) ); editorPageFacade.setScene((SceneProxy) page.getScene()); return page; @@ -45,12 +56,22 @@ public EditorPage getEditorPage() { /** Returns Dashboard Page instance. */ public DashboardPage getDashboardPage() { logger.info("Dashboard page was created"); - return new DashboardPage(title()); + return new DashboardPage(); } /** Returns Auth Page instance. */ public AuthPage getAuthPage() { logger.info("Auth page was created"); - return new AuthPage(title()); + return new AuthPage(); + } + + @Contract("_ -> !null") + private EditorPage getDefaultEditorPage(EditorPageFacade editorPageFacade) { + return new DefaultEditorPage( + SceneProxy.getSceneProxy(webDriver, editorPageFacade), + PalleteImpl.getPallete(), + PropertyEditorImpl.getPropertyEditor(), + EditorHeaderPanelImpl.getEditorHeaderPanel(this, webDriver, editorPageFacade) + ); } } diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/PageLoader.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/PageLoader.java index cfdb53e7..627c0a08 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/PageLoader.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/PageLoader.java @@ -41,7 +41,7 @@ private T getPage(Page page) { case Auth: return (T) pageFactory.getAuthPage(); case Dashboard: return (T) pageFactory.getDashboardPage(); case EditorBPMN: return (T) pageFactory.getEditorPage(); - case EditorRobots: return (T) pageFactory.getEditorPage(); + case EditorRobots: return (T) pageFactory.getEditorPageWithGestures(); default: return null; } } diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/config/DevConfig.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/config/DevConfig.java index 1f623210..5632aa9a 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/config/DevConfig.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/config/DevConfig.java @@ -3,7 +3,6 @@ import com.codeborne.selenide.WebDriverRunner; import com.qreal.wmp.uitesting.PageFactory; import com.qreal.wmp.uitesting.PageLoader; -import com.qreal.wmp.uitesting.mousegestures.RobotCalibration; import com.qreal.wmp.uitesting.services.Auther; import com.qreal.wmp.uitesting.services.Opener; import com.qreal.wmp.uitesting.services.impl.AutherImpl; @@ -43,7 +42,6 @@ public WebDriver webDriver() { driver.manage().timeouts().setScriptTimeout(3, TimeUnit.SECONDS); driver.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS); WebDriverRunner.setWebDriver(driver); - RobotCalibration.calibrate(driver); return driver; } diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/DefaultScene.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/DefaultScene.java index 7ce6b5d3..9cb87097 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/DefaultScene.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/DefaultScene.java @@ -25,10 +25,7 @@ import static com.codeborne.selenide.Selenide.$; -/** - * Describes Scene of Editor. - * Can add rm and manipulate with objects on that area. - */ +/** {@inheritDoc} */ public class DefaultScene implements Scene { private static final Logger logger = LoggerFactory.getLogger(PalleteImpl.class); @@ -148,11 +145,6 @@ public LinkProvider getLinkProvider() { return linkProvider; } - /* @Contract("_ -> !null") - public static Scene getScene(WebDriver webDriver) { - return new DefaultScene(webDriver); - } - */ @Contract(pure = true) private static String createDiv(String divName) { return "$('body').append('');"; diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/SceneProxy.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/SceneProxy.java index 4a22e116..384c5928 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/SceneProxy.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/SceneProxy.java @@ -9,12 +9,13 @@ import com.qreal.wmp.uitesting.dia.scene.window.SceneWindow; import com.qreal.wmp.uitesting.dia.scene.window.SceneWindowImpl; import com.qreal.wmp.uitesting.exceptions.ElementNotOnTheSceneException; -import com.qreal.wmp.uitesting.pages.EditorPageFacade; +import com.qreal.wmp.uitesting.pages.editor.EditorPageFacade; import org.jetbrains.annotations.Contract; import org.openqa.selenium.WebDriver; import java.util.List; +/** Provides Scene interface and getters to its components. */ public class SceneProxy implements Scene { public static final String SELECTOR = ".scene-wrapper"; @@ -23,10 +24,12 @@ public class SceneProxy implements Scene { private final LinkProvider linkProvider; + private final SceneWindow sceneWindow; + private final Scene scene; private SceneProxy(WebDriver driver, EditorPageFacade editorPageFacade) { - SceneWindow sceneWindow = SceneWindowImpl.getSceneWindow(driver); + sceneWindow = SceneWindowImpl.getSceneWindow(driver); blockProvider = BlockProvider.getBlockProvider(sceneWindow, SELECTOR, editorPageFacade); linkProvider = LinkProvider.getLinkProvider(SELECTOR, driver, editorPageFacade); scene = new DefaultScene(driver, SELECTOR, sceneWindow, blockProvider, linkProvider); @@ -40,41 +43,53 @@ public LinkProvider getLinkProvider() { return linkProvider; } + public SceneWindow getSceneWindow() { + return sceneWindow; + } + + /** {@inheritDoc} */ @Override public Block dragAndDrop(PalleteElement palleteElement) { return scene.dragAndDrop(palleteElement); } + /** {@inheritDoc} */ @Override public Block dragAndDrop(PalleteElement element, int cellX, int cellY) { return scene.dragAndDrop(element, cellX, cellY); } + /** {@inheritDoc} */ @Override public void moveToCell(Block block, int cellX, int cellY) { scene.moveToCell(block, cellX, cellY); } + /** {@inheritDoc} */ @Override public boolean exist(SceneElement element) { return scene.exist(element); } + /** {@inheritDoc} */ @Override public void remove(SceneElement element) throws ElementNotOnTheSceneException { scene.remove(element); } + /** {@inheritDoc} */ @Override public Link addLink(Block source, Block target) { return scene.addLink(source, target); } + /** {@inheritDoc} */ @Override public List getBlocks() { return scene.getBlocks(); } + /** {@inheritDoc} */ @Override public void clean() { scene.clean(); diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/elements/Block.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/elements/Block.java index 50329390..a0986cc7 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/elements/Block.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/elements/Block.java @@ -1,6 +1,6 @@ package com.qreal.wmp.uitesting.dia.scene.elements; -import com.qreal.wmp.uitesting.pages.EditorPageFacade; +import com.qreal.wmp.uitesting.pages.editor.EditorPageFacade; import org.openqa.selenium.By; import static com.codeborne.selenide.Selenide.$; diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/elements/Link.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/elements/Link.java index 5c8e0914..6a95a999 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/elements/Link.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/elements/Link.java @@ -3,7 +3,7 @@ import com.codeborne.selenide.SelenideElement; import com.qreal.wmp.uitesting.dia.scene.Coordinate; import com.qreal.wmp.uitesting.exceptions.ElementNotOnTheSceneException; -import com.qreal.wmp.uitesting.pages.EditorPageFacade; +import com.qreal.wmp.uitesting.pages.editor.EditorPageFacade; import org.openqa.selenium.By; import static com.codeborne.selenide.Selenide.$; @@ -21,6 +21,7 @@ public class Link extends SceneElementImpl { private final SceneElement target; + @SuppressWarnings({"all"}) private final EditorPageFacade editorPageFacade; /** Describes link between two blocks. */ diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/providers/BlockProvider.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/providers/BlockProvider.java index 898f0e0a..5807e7c1 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/providers/BlockProvider.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/providers/BlockProvider.java @@ -5,7 +5,7 @@ import com.qreal.wmp.uitesting.dia.scene.elements.Block; import com.qreal.wmp.uitesting.dia.scene.window.SceneWindow; import com.qreal.wmp.uitesting.exceptions.ElementNotOnTheSceneException; -import com.qreal.wmp.uitesting.pages.EditorPageFacade; +import com.qreal.wmp.uitesting.pages.editor.EditorPageFacade; import org.jetbrains.annotations.Contract; import org.openqa.selenium.By; import org.openqa.selenium.NotFoundException; diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/providers/LinkProvider.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/providers/LinkProvider.java index 0f73ee0e..c6facd67 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/providers/LinkProvider.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/providers/LinkProvider.java @@ -3,7 +3,7 @@ import com.codeborne.selenide.SelenideElement; import com.qreal.wmp.uitesting.dia.scene.elements.Block; import com.qreal.wmp.uitesting.dia.scene.elements.Link; -import com.qreal.wmp.uitesting.pages.EditorPageFacade; +import com.qreal.wmp.uitesting.pages.editor.EditorPageFacade; import org.jetbrains.annotations.Contract; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; @@ -71,11 +71,12 @@ public void recalculateLinks() { .collect(Collectors.toSet()); } - @Contract("_, _ -> !null") + @Contract("_, _, _ -> !null") public static LinkProvider getLinkProvider(String selector, WebDriver webDriver, EditorPageFacade facade) { return new LinkProvider(selector, webDriver, facade); } + /** Returns new link if it was created. */ public Optional updateLinks() { final List allElements = $$(By.cssSelector(selector + " #v_7 > *")); return allElements.stream() diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/window/SceneWindow.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/window/SceneWindow.java index ebe5d8e9..78bc2e23 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/window/SceneWindow.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/window/SceneWindow.java @@ -20,4 +20,6 @@ public interface SceneWindow { * @param coordinate coordinate to move */ void focus(final Coordinate coordinate); + + void update(); } diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/window/SceneWindowImpl.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/window/SceneWindowImpl.java index b9152101..ee7ae685 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/window/SceneWindowImpl.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/dia/scene/window/SceneWindowImpl.java @@ -91,7 +91,7 @@ public void move(final Block element, final Coordinate dist) throws ElementNotOn @Override public void focus(final Coordinate coordinate) { - updateCanvasInfo(driver); + update(); int sizeHor = Double.valueOf($(By.id("SceneWindowHorSize")).innerHtml()).intValue(); int sizeVer = Double.valueOf($(By.id("SceneWindowVerSize")).innerHtml()).intValue(); @@ -104,7 +104,7 @@ public void focus(final Coordinate coordinate) { "canvas.scrollTop = " + Math.max(0, (coordinate.getYAbsolute() - sizeVer / 2)) + ";" ); } - updateCanvasInfo(driver); + update(); } @Contract("_ -> !null") @@ -112,7 +112,8 @@ public static SceneWindow getSceneWindow(WebDriver webDriver) { return new SceneWindowImpl(webDriver); } - public static void updateCanvasInfo(WebDriver driver) { + @Override + public void update() { if (driver instanceof JavascriptExecutor) { ((JavascriptExecutor) driver).executeScript("var canvas = " + "document.getElementsByClassName(\"scene-wrapper\")[0]; " + diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/headerpanel/EditorHeaderPanelImpl.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/headerpanel/EditorHeaderPanelImpl.java index b9f3fe71..28a94924 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/headerpanel/EditorHeaderPanelImpl.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/headerpanel/EditorHeaderPanelImpl.java @@ -4,7 +4,7 @@ import com.qreal.wmp.uitesting.headerpanel.folderwindow.FileItem; import com.qreal.wmp.uitesting.headerpanel.folderwindow.FolderArea; import com.qreal.wmp.uitesting.pages.DashboardPage; -import com.qreal.wmp.uitesting.pages.EditorPageFacade; +import com.qreal.wmp.uitesting.pages.editor.EditorPageFacade; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/headerpanel/folderwindow/FolderAreaImpl.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/headerpanel/folderwindow/FolderAreaImpl.java index e9951e41..55ea029f 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/headerpanel/folderwindow/FolderAreaImpl.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/headerpanel/folderwindow/FolderAreaImpl.java @@ -87,7 +87,7 @@ public FolderArea move(String path) { @Override public FolderArea deleteFolder(String name) { if (!isFolderExist(name)) { - throw new NullPointerException("Folder is not exist"); + throw new IllegalArgumentException("Folder is not exist"); } $(selector).find(By.className("folders")).find(byText(name)).contextClick(); $(By.id("open-diagram-context-menu")).should(Condition.visible); diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/DrawingTable.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/DrawingTable.java deleted file mode 100644 index e7101e12..00000000 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/DrawingTable.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.qreal.wmp.uitesting.mousegestures; - -import java.awt.*; - -public class DrawingTable { - - private static final int STEP_LENGTH = 20; - - private final Point leftUpCorner; - - public DrawingTable(Point leftUpCorner) { - this.leftUpCorner = leftUpCorner; - } - - public Point getPoint(String cell) { - System.out.println("Point " + leftUpCorner.x + "," + leftUpCorner.y); - int cellOffsetX = (cell.charAt(0) - 'A') * STEP_LENGTH; - int cellOffsetY = (cell.charAt(1) - '0') * STEP_LENGTH; - Point result = new Point(leftUpCorner.x + cellOffsetX, leftUpCorner.y + cellOffsetY); - System.out.println(cell + ": " + result.x + "," + result.y); - return result; - } -} diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/Gesture.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/Gesture.java index e7408514..132cc7b6 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/Gesture.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/Gesture.java @@ -2,6 +2,7 @@ import java.util.List; +/** Describes gestures for JSON parsing. */ public class Gesture { private String name; diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/GestureManipulator.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/GestureManipulator.java index 1a91b350..22df81f8 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/GestureManipulator.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/GestureManipulator.java @@ -1,12 +1,14 @@ package com.qreal.wmp.uitesting.mousegestures; -import com.qreal.wmp.uitesting.dia.scene.Coordinate; import com.qreal.wmp.uitesting.dia.scene.elements.Block; import com.qreal.wmp.uitesting.dia.scene.elements.Link; +/** Provides interface for working with gestures. */ public interface GestureManipulator { + /** Draw figure which name is in the parameter. */ Block draw(String name); + /** Draw line between two blocks. */ Link drawLine(Block source, Block target); } diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/GestureManipulatorImpl.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/GestureManipulatorImpl.java index c7844eb6..ad1881ba 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/GestureManipulatorImpl.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/GestureManipulatorImpl.java @@ -6,12 +6,11 @@ import com.qreal.wmp.uitesting.dia.scene.SceneProxy; import com.qreal.wmp.uitesting.dia.scene.elements.Block; import com.qreal.wmp.uitesting.dia.scene.elements.Link; -import com.qreal.wmp.uitesting.dia.scene.window.SceneWindowImpl; -import com.qreal.wmp.uitesting.pages.EditorPageFacade; +import com.qreal.wmp.uitesting.pages.editor.EditorPageFacade; import org.jetbrains.annotations.Contract; import org.openqa.selenium.By; -import org.openqa.selenium.Point; -import org.openqa.selenium.WebDriver; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.awt.*; import java.awt.event.InputEvent; @@ -24,18 +23,18 @@ import static com.codeborne.selenide.Selenide.$; +/** {@inheritDoc} */ public class GestureManipulatorImpl implements GestureManipulator { + private static final Logger logger = LoggerFactory.getLogger(GestureManipulator.class); + private final EditorPageFacade pageFacade; private final Painter painter; private final Map gestureMap = new HashMap<>(); - private final WebDriver driver; - - private GestureManipulatorImpl(WebDriver driver, EditorPageFacade pageFacade) { - this.driver = driver; + private GestureManipulatorImpl(EditorPageFacade pageFacade) { this.pageFacade = pageFacade; painter = new Painter(); try (InputStream is = this.getClass().getClassLoader().getResourceAsStream("gestures.json")) { @@ -45,14 +44,14 @@ private GestureManipulatorImpl(WebDriver driver, EditorPageFacade pageFacade) { gestureMap.putAll(Arrays.stream(gestures).collect( Collectors.toMap(Gesture::getName, gesture -> gesture))); } catch (IOException e) { - e.printStackTrace(); + logger.error(e.getMessage()); } } @Override public Block draw(String name) { + pageFacade.update(); SelenideElement element = $(By.cssSelector(SceneProxy.SELECTOR)); - SceneWindowImpl.updateCanvasInfo(driver); int sizeHor = Double.valueOf($(By.id("SceneWindowHorSize")).innerHtml()).intValue(); int sizeVer = Double.valueOf($(By.id("SceneWindowVerSize")).innerHtml()).intValue(); Point screenCoordinate = new Point( @@ -60,15 +59,15 @@ public Block draw(String name) { element.getLocation().y + RobotCalibration.getLastKnownPointY()); painter.paint( gestureMap.get(name).getKey(), - new java.awt.Point(screenCoordinate.x + sizeVer / 2, screenCoordinate.y + sizeHor / 2) + new Point(screenCoordinate.x + sizeVer / 3, screenCoordinate.y + sizeHor / 3) ); return pageFacade.addDrawnBlock(name); } @Override public Link drawLine(Block source, Block target) { - Point coordinate = source.getInnerSeleniumElement().getLocation(); - Point coordinate2 = target.getInnerSeleniumElement().getLocation(); + org.openqa.selenium.Point coordinate = source.getInnerSeleniumElement().getLocation(); + org.openqa.selenium.Point coordinate2 = target.getInnerSeleniumElement().getLocation(); Robot robot; try { robot = new Robot(); @@ -79,13 +78,13 @@ public Link drawLine(Block source, Block target) { coordinate2.getY() + RobotCalibration.getLastKnownPointY()); robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK); } catch (Exception e) { - e.printStackTrace(); + logger.error("Robot error:" + e.getMessage()); } return pageFacade.addDrawnLink(); } - @Contract("_, _ -> !null") - public static GestureManipulator getGestureManipulator(WebDriver driver, EditorPageFacade pageFacade) { - return new GestureManipulatorImpl(driver, pageFacade); + @Contract("_ -> !null") + public static GestureManipulator getGestureManipulator(EditorPageFacade pageFacade) { + return new GestureManipulatorImpl(pageFacade); } } diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/Painter.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/Painter.java index fa163494..631f3d0a 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/Painter.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/Painter.java @@ -1,16 +1,20 @@ package com.qreal.wmp.uitesting.mousegestures; import org.jetbrains.annotations.Contract; +import org.openqa.selenium.By; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.awt.*; import java.awt.event.InputEvent; import java.util.List; +import static com.codeborne.selenide.Selenide.$; + +/** Class for simulate painting. */ public class Painter { - private static final int STEP_LENGTH = 20; - - private String currentCell; + private static final Logger logger = LoggerFactory.getLogger(Painter.class); private Point currentPoint; @@ -18,6 +22,7 @@ public class Painter { private DrawingTable drawingTable; + /** Right mouse button down and draw gesture (by items from gestures parameter) at the point point. */ public void paint(List gestures, Point point) { try { robot = new Robot(); @@ -27,27 +32,23 @@ public void paint(List gestures, Point point) { if (gestures.isEmpty()) { return; } - currentCell = gestures.get(0); + String currentCell = gestures.get(0); currentPoint = drawingTable.getPoint(currentCell); robot.mouseMove(currentPoint.x, currentPoint.y); - System.out.println("CurrentPoint " + currentPoint.x + "," + currentPoint.y); robot.mousePress(InputEvent.BUTTON3_DOWN_MASK); robot.mouseMove(currentPoint.x - 1, currentPoint.y - 1); for (int i = 1; i < gestures.size(); ++ i) { String next = gestures.get(i); if (areNeigbors(currentCell, next)) { - System.out.println("Draw to " + next); drawToCell(next); } else { - System.out.println("Jump to " + next); jumpToCell(next); } currentCell = next; - System.out.println("CurrentPoint " + currentPoint.x + "," + currentPoint.y); } robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK); } catch (AWTException e) { - e.printStackTrace(); + logger.error("Robot error: " + e.getMessage()); } } @@ -74,12 +75,25 @@ private Point diffBetweenCells(String firstCell, String secondCell) { return new Point(secondCell.charAt(0) - firstCell.charAt(0), secondCell.charAt(1) - firstCell.charAt(1)); } - @SuppressWarnings("SameParameterValue") - private void sleep(long time) { - try { - Thread.sleep(time); - } catch (InterruptedException e) { - e.printStackTrace(); + private class DrawingTable { + + private final int stepLength; + + private final Point leftUpCorner; + + public DrawingTable(Point leftUpCorner) { + this.leftUpCorner = leftUpCorner; + int sizeHor = Double.valueOf($(By.id("SceneWindowHorSize")).innerHtml()).intValue(); + int sizeVer = Double.valueOf($(By.id("SceneWindowVerSize")).innerHtml()).intValue(); + int minSize = Math.min(sizeHor, sizeVer); + stepLength = Math.max(20, minSize / 4 / 6); + } + + public Point getPoint(String cell) { + int cellOffsetX = (cell.charAt(0) - 'A') * stepLength; + int cellOffsetY = (cell.charAt(1) - '0') * stepLength; + return new Point(leftUpCorner.x + cellOffsetX, leftUpCorner.y + cellOffsetY); } } + } diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/RobotCalibration.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/RobotCalibration.java index 5dd35104..397f8553 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/RobotCalibration.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/mousegestures/RobotCalibration.java @@ -1,17 +1,26 @@ package com.qreal.wmp.uitesting.mousegestures; +import com.codeborne.selenide.Selenide; +import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; -import org.openqa.selenium.ie.InternetExplorerDriver; +import org.openqa.selenium.NoAlertPresentException; +import org.openqa.selenium.UnhandledAlertException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.awt.*; import java.awt.event.InputEvent; import java.net.URISyntaxException; -import java.util.Set; +import static com.codeborne.selenide.Selenide.open; + +/** For finding top left corner of the body in the any opened html file. */ public class RobotCalibration { + private static final Logger logger = LoggerFactory.getLogger(RobotCalibration.class); + private static int lastKnownPointX; private static int lastKnownPointY; @@ -49,14 +58,23 @@ public static int getLastKnownPointY() { @SuppressWarnings("ConstantConditions") private RobotCalibration(WebDriver driver) { try { - com.codeborne.selenide.Selenide.open( - this.getClass().getClassLoader().getResource("RobotCalibration.html").toURI().toString()); + open(this.getClass().getClassLoader().getResource("RobotCalibration.html").toURI().toString()); } catch (URISyntaxException e) { - e.printStackTrace(); + logger.error(e.getMessage()); + } + try { + ((JavascriptExecutor) driver).executeScript("alert(\"Focus window\")"); + Thread.sleep(5000); + Alert alert = driver.switchTo().alert(); + alert.accept(); + } catch (NoAlertPresentException | UnhandledAlertException | InterruptedException e) { + logger.info(e.getMessage()); } + this.driver = driver; ((JavascriptExecutor) driver).executeScript("alert(\"Focus window\")"); + Selenide.sleep(500); driver.switchTo().alert().accept(); try { @@ -111,28 +129,14 @@ private Point calibrate() { return new Point(xPoint.mid + 5, yPoint.mid + 5); } - /** Clicks on the specified location */ - private void click(int x, int y) { - robot.mouseMove(x, y); + /** Clicks on the specified location. */ + private void click(int xPosition, int yPosition) { + robot.mouseMove(xPosition, yPosition); robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); - - // for some reason, my IE8 can't properly register clicks that are close - // to each other faster than click every half a second - if (driver instanceof InternetExplorerDriver) { - sleep(500); - } - } - - private static void sleep(int millis) { - try { - Thread.sleep(millis); - } catch (InterruptedException ignored) { - // nothing to do - } } - /** @return whether the click on a page was successful */ + /** @return whether the click on a page was successful. */ private boolean clickWasSuccessful() { counter++; @@ -146,7 +150,7 @@ private boolean clickWasSuccessful() { return false; } - /** @return whether the top left corner has already been clicked at */ + /** Returns whether the top left corner has already been clicked at. */ private boolean isCalibrated() { long targetTime = System.currentTimeMillis() + TIMEOUT; while (System.currentTimeMillis() < targetTime) { diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/AbstractPage.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/AbstractPage.java new file mode 100644 index 00000000..7ec908fd --- /dev/null +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/AbstractPage.java @@ -0,0 +1,18 @@ +package com.qreal.wmp.uitesting.pages; + +import static com.codeborne.selenide.WebDriverRunner.url; + +/** Any page must by identified by its url. */ +public abstract class AbstractPage { + + private final String url; + + protected AbstractPage() { + this.url = url(); + } + + public boolean onPage() { + String currentUrl = url(); + return url.equals(currentUrl.contains("?") ? currentUrl.substring(0, currentUrl.indexOf("?")) : currentUrl); + } +} diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/AuthPage.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/AuthPage.java index 8159d642..9423b06b 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/AuthPage.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/AuthPage.java @@ -1,17 +1,5 @@ package com.qreal.wmp.uitesting.pages; /** Describes Authorization page of the WMP project. */ -import static com.codeborne.selenide.Selenide.title; - -public class AuthPage { - - private final String title; - - public AuthPage(String title) { - this.title = title; - } - - public boolean onPage() { - return title.equals(title()); - } +public class AuthPage extends AbstractPage { } diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/DashboardPage.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/DashboardPage.java index 6159c203..2b48804c 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/DashboardPage.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/DashboardPage.java @@ -1,17 +1,5 @@ package com.qreal.wmp.uitesting.pages; -import static com.codeborne.selenide.Selenide.title; - /** Describes Dashboard page of the WMP project. */ -public class DashboardPage { - - private final String title; - - public DashboardPage(String title) { - this.title = title; - } - - public boolean onPage() { - return title().equals(title); - } +public class DashboardPage extends AbstractPage { } diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/EditorPage.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/DefaultEditorPage.java similarity index 52% rename from ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/EditorPage.java rename to ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/DefaultEditorPage.java index a6002625..4fa3c294 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/EditorPage.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/DefaultEditorPage.java @@ -1,19 +1,13 @@ -package com.qreal.wmp.uitesting.pages; +package com.qreal.wmp.uitesting.pages.editor; import com.qreal.wmp.uitesting.dia.pallete.Pallete; import com.qreal.wmp.uitesting.dia.property.PropertyEditor; import com.qreal.wmp.uitesting.dia.scene.Scene; import com.qreal.wmp.uitesting.headerpanel.EditorHeaderPanel; -import com.qreal.wmp.uitesting.mousegestures.GestureManipulator; +import com.qreal.wmp.uitesting.pages.AbstractPage; -import static com.codeborne.selenide.Selenide.title; - -/** Describes Editor page of the WMP project. - * Includes such components as Scene, Pallete and PropertyEditor. - */ -public class EditorPage { - - private final String title; +/** {@inheritDoc} */ +public class DefaultEditorPage extends AbstractPage implements EditorPage { private final Scene scene; @@ -23,42 +17,35 @@ public class EditorPage { private final EditorHeaderPanel headerPanel; - private final GestureManipulator gestureManipulator; - /** * Describes page of the Editor and provides components. */ - public EditorPage(String title, Scene scene, Pallete pallete, PropertyEditor propertyEditor, - EditorHeaderPanel headerPanel, GestureManipulator gestureManipulator) { - this.title = title; + public DefaultEditorPage(Scene scene, Pallete pallete, PropertyEditor propertyEditor, + EditorHeaderPanel headerPanel) { + super(); this.scene = scene; this.pallete = pallete; this.propertyEditor = propertyEditor; this.headerPanel = headerPanel; - this.gestureManipulator = gestureManipulator; } + @Override public Scene getScene() { return scene; } + @Override public Pallete getPallete() { return pallete; } + @Override public PropertyEditor getPropertyEditor() { return propertyEditor; } + @Override public EditorHeaderPanel getHeaderPanel() { return headerPanel; } - - public boolean onPage() { - return title.equals(title()); - } - - public GestureManipulator getGestureManipulator() { - return gestureManipulator; - } } diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/EditorPage.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/EditorPage.java new file mode 100644 index 00000000..4c1effee --- /dev/null +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/EditorPage.java @@ -0,0 +1,21 @@ +package com.qreal.wmp.uitesting.pages.editor; + +import com.qreal.wmp.uitesting.dia.pallete.Pallete; +import com.qreal.wmp.uitesting.dia.property.PropertyEditor; +import com.qreal.wmp.uitesting.dia.scene.Scene; +import com.qreal.wmp.uitesting.headerpanel.EditorHeaderPanel; + +/** Describes Editor page of the WMP project. + * Includes such components as Scene, Pallete and PropertyEditor. + */ +public interface EditorPage { + + Scene getScene(); + + Pallete getPallete(); + + PropertyEditor getPropertyEditor(); + + EditorHeaderPanel getHeaderPanel(); + +} diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/EditorPageFacade.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/EditorPageFacade.java similarity index 71% rename from ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/EditorPageFacade.java rename to ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/EditorPageFacade.java index 6bcd9976..d87e266b 100644 --- a/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/EditorPageFacade.java +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/EditorPageFacade.java @@ -1,6 +1,7 @@ -package com.qreal.wmp.uitesting.pages; +package com.qreal.wmp.uitesting.pages.editor; import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; import com.qreal.wmp.uitesting.dia.pallete.Pallete; import com.qreal.wmp.uitesting.dia.property.PropertyEditor; @@ -15,7 +16,12 @@ import static com.codeborne.selenide.Selectors.byText; import static com.codeborne.selenide.Selenide.$; + +/** Facade for components of EditorPage. */ +@SuppressWarnings("unused") public class EditorPageFacade { + + private final String url; private SceneProxy scene; @@ -23,13 +29,16 @@ public class EditorPageFacade { private PropertyEditor propertyEditor; - public EditorPageFacade(SceneProxy scene, Pallete pallete, PropertyEditor propertyEditor) { + public EditorPageFacade(String url, SceneProxy scene, Pallete pallete, PropertyEditor propertyEditor) { + this.url = url; this.scene = scene; this.pallete = pallete; this.propertyEditor = propertyEditor; } - public EditorPageFacade() {} + public EditorPageFacade(String url) { + this.url = url; + } public void setScene(SceneProxy scene) { this.scene = scene; @@ -43,15 +52,19 @@ public void setPropertyEditor(PropertyEditor propertyEditor) { this.propertyEditor = propertyEditor; } + /** Updates all components. */ public void update() { + scene.getSceneWindow().update(); scene.getBlockProvider().recalculateBlocks(); scene.getLinkProvider().recalculateLinks(); } + /** Move block source to position (cellX, cellY).*/ public void move(Block source, int cellX, int cellY) { scene.moveToCell(source, cellX, cellY); } + /** Called when new link created by any event in order to let scene known about it. */ public Link addDrawnLink() { Optional newLink = scene.getLinkProvider().updateLinks(); if (!newLink.isPresent()) { @@ -61,10 +74,16 @@ public Link addDrawnLink() { return new Link(newLink.get().attr("id"), By.id(newLink.get().attr("id")), this); } + /** Called when new block created by any event in order to let scene known about it. */ public Block addDrawnBlock(String name) { if ($(By.className("gestures-menu")).is(Condition.visible)) { $(By.className("gestures-menu")).find(byText(name.toLowerCase())).click(); } return scene.getBlockProvider().getNewBlock(); } + + /** Reload Editor page. */ + public void reload() { + Selenide.open(url); + } } diff --git a/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/EditorPageWithGestures.java b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/EditorPageWithGestures.java new file mode 100644 index 00000000..8cb700fd --- /dev/null +++ b/ui-testing/src/main/java/com/qreal/wmp/uitesting/pages/editor/EditorPageWithGestures.java @@ -0,0 +1,46 @@ +package com.qreal.wmp.uitesting.pages.editor; + +import com.qreal.wmp.uitesting.dia.pallete.Pallete; +import com.qreal.wmp.uitesting.dia.property.PropertyEditor; +import com.qreal.wmp.uitesting.dia.scene.Scene; +import com.qreal.wmp.uitesting.headerpanel.EditorHeaderPanel; +import com.qreal.wmp.uitesting.mousegestures.GestureManipulator; +import com.qreal.wmp.uitesting.pages.AbstractPage; + +/** {@inheritDoc} */ +public class EditorPageWithGestures extends AbstractPage implements EditorPage { + + private final EditorPage editorPage; + + private final GestureManipulator gestureManipulator; + + public EditorPageWithGestures(EditorPage editorPage, GestureManipulator gestureManipulator) { + super(); + this.editorPage = editorPage; + this.gestureManipulator = gestureManipulator; + } + + @Override + public Scene getScene() { + return editorPage.getScene(); + } + + @Override + public Pallete getPallete() { + return editorPage.getPallete(); + } + + @Override + public PropertyEditor getPropertyEditor() { + return editorPage.getPropertyEditor(); + } + + @Override + public EditorHeaderPanel getHeaderPanel() { + return editorPage.getHeaderPanel(); + } + + public GestureManipulator getGestureManipulator() { + return gestureManipulator; + } +} diff --git a/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/FolderAreaTest.java b/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/FolderAreaTest.java index ac68cd0f..a86f8942 100644 --- a/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/FolderAreaTest.java +++ b/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/FolderAreaTest.java @@ -10,7 +10,7 @@ import com.qreal.wmp.uitesting.headerpanel.EditorHeaderPanel; import com.qreal.wmp.uitesting.headerpanel.folderwindow.FolderArea; import com.qreal.wmp.uitesting.pages.DashboardPage; -import com.qreal.wmp.uitesting.pages.EditorPage; +import com.qreal.wmp.uitesting.pages.editor.EditorPage; import org.apache.commons.lang3.RandomStringUtils; import org.junit.Before; import org.junit.Test; @@ -28,7 +28,6 @@ import java.util.ArrayList; import java.util.List; - @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = AppInit.class, loader = AnnotationConfigContextLoader.class) @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) diff --git a/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/GestureTest.java b/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/GestureTest.java index f430a43f..2d7fa22b 100644 --- a/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/GestureTest.java +++ b/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/GestureTest.java @@ -1,6 +1,5 @@ package com.qreal.wmp.uitesting.innertests; - import com.qreal.wmp.uitesting.Page; import com.qreal.wmp.uitesting.PageLoader; import com.qreal.wmp.uitesting.config.AppInit; @@ -8,7 +7,7 @@ import com.qreal.wmp.uitesting.dia.scene.Scene; import com.qreal.wmp.uitesting.dia.scene.elements.Block; import com.qreal.wmp.uitesting.mousegestures.GestureManipulator; -import com.qreal.wmp.uitesting.pages.EditorPage; +import com.qreal.wmp.uitesting.pages.editor.EditorPageWithGestures; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -34,7 +33,7 @@ public class GestureTest { @Before public void openEditor() { - EditorPage editorPage = pageLoader.load(Page.EditorRobots); + EditorPageWithGestures editorPage = pageLoader.load(Page.EditorRobots); scene = editorPage.getScene(); pallete = editorPage.getPallete(); gestureManipulator = editorPage.getGestureManipulator(); diff --git a/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/ManipulatingDiagramTest.java b/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/ManipulatingDiagramTest.java index bc651933..c88e2352 100644 --- a/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/ManipulatingDiagramTest.java +++ b/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/ManipulatingDiagramTest.java @@ -9,7 +9,7 @@ import com.qreal.wmp.uitesting.dia.scene.elements.Block; import com.qreal.wmp.uitesting.dia.scene.elements.Link; import com.qreal.wmp.uitesting.exceptions.ElementNotOnTheSceneException; -import com.qreal.wmp.uitesting.pages.EditorPage; +import com.qreal.wmp.uitesting.pages.editor.EditorPage; import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/SaveOpenDiaTest.java b/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/SaveOpenDiaTest.java index 3b13ca17..67af73ea 100644 --- a/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/SaveOpenDiaTest.java +++ b/ui-testing/src/test/java/com/qreal/wmp/uitesting/innertests/SaveOpenDiaTest.java @@ -8,13 +8,11 @@ import com.qreal.wmp.uitesting.dia.scene.elements.Block; import com.qreal.wmp.uitesting.dia.scene.elements.Link; import com.qreal.wmp.uitesting.headerpanel.EditorHeaderPanel; -import com.qreal.wmp.uitesting.pages.EditorPage; +import com.qreal.wmp.uitesting.pages.editor.EditorPage; import org.apache.commons.lang3.RandomStringUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; @@ -29,8 +27,6 @@ @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) public class SaveOpenDiaTest { - private static final Logger logger = LoggerFactory.getLogger(SaveOpenDiaTest.class); - @Autowired private PageLoader pageLoader; @@ -48,6 +44,7 @@ public class SaveOpenDiaTest { private String diagram; + /** Open editor page and actions before each test. */ @Before public void openEditor() { EditorPage editorPage = pageLoader.load(Page.EditorRobots); diff --git a/ui-testing/src/test/java/com/qreal/wmp/uitesting/testspace/DiagramConstructingTest.java b/ui-testing/src/test/java/com/qreal/wmp/uitesting/testspace/DiagramConstructingTest.java index 2729a36e..d0616451 100644 --- a/ui-testing/src/test/java/com/qreal/wmp/uitesting/testspace/DiagramConstructingTest.java +++ b/ui-testing/src/test/java/com/qreal/wmp/uitesting/testspace/DiagramConstructingTest.java @@ -8,7 +8,7 @@ import com.qreal.wmp.uitesting.dia.scene.Scene; import com.qreal.wmp.uitesting.dia.scene.elements.Block; import com.qreal.wmp.uitesting.dia.scene.elements.Link; -import com.qreal.wmp.uitesting.pages.EditorPage; +import com.qreal.wmp.uitesting.pages.editor.EditorPage; import org.junit.After; import org.junit.Before; import org.junit.Test;