diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/pom.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/pom.xml index 148ad21d..027fbdb1 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/pom.xml +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/pom.xml @@ -46,12 +46,13 @@ + The following dependencies are needed to be able to compile the + custom functional tests that are based on Page Objects (PO) + ===============================================================--> + It contains page objects such as LoginPage and it also brings + in selenium-grid and selenium. --> ${alfresco.groupId} share-po @@ -67,8 +68,7 @@ tests test - + org.seleniumhq.selenium @@ -80,13 +80,6 @@ - - - org.seleniumhq.selenium - selenium-java - 2.45.0-alfresco - test - @@ -101,7 +94,6 @@ - diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/src/test/java/demoamp/DemoPageTestIT.java b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/src/test/java/demoamp/DemoPageTestIT.java index 0b6e543c..c16f9314 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/src/test/java/demoamp/DemoPageTestIT.java +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/src/test/java/demoamp/DemoPageTestIT.java @@ -18,8 +18,8 @@ package ${package}.demoamp; import ${package}.demoamp.po.DemoPage; +import org.alfresco.po.share.LoginPage; import org.alfresco.po.AbstractTest; -//import org.alfresco.po.share.LoginPage; import org.alfresco.po.share.PeopleFinderPage; import org.testng.Assert; import org.testng.annotations.BeforeClass; @@ -41,18 +41,22 @@ public class DemoPageTestIT extends AbstractTest { @BeforeClass(groups = {"alfresco-one"}) public void prepare() throws Exception { - // Navigate to share -// drone.navigateTo(shareUrl + "/page/hdp/ws/simple-page"); - // Reuse Alfresco Share login page object from share-po lib. - // LoginPage loginPage = new LoginPage(drone); - // loginPage.loginAs(username, password); + // Navigate to share, which will redirect to Login page + driver.navigate().to(shareUrl + "/page"); + + // Resolve/Bind current page to LoginPage object + LoginPage loginPage = resolvePage(driver).render(); + loginPage.loginAs(username, password); } @BeforeMethod public void loadPage() { // Goto demo page - // drone.navigateTo(shareUrl + "/page/hdp/ws/simple-page"); - // page = new DemoPage(drone); + driver.navigate().to(shareUrl + "/page/hdp/ws/simple-page"); + + // We need to instantiate the page like this as it is not yet in + // the factory known list of pages + page = factoryPage.instantiatePage(driver, DemoPage.class); } @Test @@ -63,9 +67,9 @@ public class DemoPageTestIT extends AbstractTest { @Test public void messageIsDisplayed() { page.render(); - // String msg = page.getMessage(); - // Assert.assertNotNull(msg); - //Assert.assertEquals("Hello from i18n!", msg); + String msg = page.getMessage(); + Assert.assertNotNull(msg); + Assert.assertEquals("Hello from i18n!", msg); } /** @@ -86,7 +90,7 @@ public class DemoPageTestIT extends AbstractTest { @Test public void navigate() { Assert.assertNotNull(page.getNav()); - PeopleFinderPage peoppleFinderPage = page.getNav().selectPeople().render(); - Assert.assertNotNull(peoppleFinderPage); + PeopleFinderPage peopleFinderPage = page.getNav().selectPeople().render(); + Assert.assertNotNull(peopleFinderPage); } } \ No newline at end of file diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/src/test/java/demoamp/po/DemoPage.java b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/src/test/java/demoamp/po/DemoPage.java index 8e871bf4..217cae9f 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/src/test/java/demoamp/po/DemoPage.java +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-amp/src/test/java/demoamp/po/DemoPage.java @@ -19,9 +19,9 @@ package ${package}.demoamp.po; import org.alfresco.po.share.SharePage; import org.alfresco.po.RenderTime; -//import org.alfresco.webdrone.WebDrone; -import org.openqa.selenium.By; import org.openqa.selenium.NoSuchElementException; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; /** * Demo of simple share page object that encapsulates the demo of simple page. @@ -30,22 +30,17 @@ import org.openqa.selenium.NoSuchElementException; * @since 2.0.1 */ public class DemoPage extends SharePage { - private By SIMPLE_DEMO_LOGO = By.id("DEMO_SIMPLE_LOGO"); - private By SIMPLE_DEMO_MESSAGE = By.id("DEMO_SIMPLE_MSG"); + @FindBy(id="DEMO_SIMPLE_LOGO") + WebElement logo; - // public DemoPage(WebDrone drone) { - // super(drone); - //} - - @SuppressWarnings("unchecked") - @Override - public DemoPage render() { - return render(new RenderTime(maxPageLoadingTime)); - } + @FindBy(id="DEMO_SIMPLE_MSG") + WebElement msg; @SuppressWarnings("unchecked") @Override public DemoPage render(RenderTime timer) { + + // Wait for logo and message to display, then consider page rendered while (true) { timer.start(); try { @@ -57,32 +52,19 @@ public class DemoPage extends SharePage { timer.end(); } } + return this; } - - //@Override - //public DemoPage render(long time) { - // return render(new RenderTime(time)); - //} - public boolean isSimpleLogoDisplayed() { - try { - // return drone.find(SIMPLE_DEMO_LOGO).isDisplayed(); - } catch (NoSuchElementException se) { - } - return false; + return isDisplayed(logo); } public boolean isMessageDisplayed() { - try { - // return drone.find(SIMPLE_DEMO_MESSAGE).isDisplayed(); - } catch (NoSuchElementException se) { - } - return false; + return isDisplayed(msg); } - //public String getMessage() { - // return drone.find(SIMPLE_DEMO_MESSAGE).getText(); - // } + public String getMessage() { + return msg.getText(); + } } \ No newline at end of file diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/runner/pom.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/runner/pom.xml index f773b26a..2da8f660 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/runner/pom.xml +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/runner/pom.xml @@ -12,6 +12,11 @@ ${version} + + + 4.1.6.RELEASE + + run @@ -229,28 +234,17 @@ - + ${alfresco.groupId} share-po ${alfresco.version} test - - - - - org.seleniumhq.selenium - selenium-java - - - org.seleniumhq.selenium - selenium-server - - - + ${alfresco.groupId} share-po @@ -258,8 +252,7 @@ tests test - + org.seleniumhq.selenium @@ -271,25 +264,6 @@ - - - - org.seleniumhq.selenium - selenium-java - 2.45.0-alfresco - - - org.seleniumhq.selenium - selenium-server - 2.45.0-alfresco - - - org.mortbay.jetty - servlet-api-2.5 - - - - @@ -304,6 +278,43 @@ + + + + org.springframework + spring-core + ${spring.version} + provided + + + org.springframework + spring-beans + ${spring.version} + provided + + + org.springframework + spring-context + ${spring.version} + provided + + + org.springframework + spring-aspects + ${spring.version} + + + org.springframework + spring-test + ${spring.version} + @@ -360,30 +371,16 @@ + It contains page objects such as LoginPage and it also brings + in selenium-grid and selenium. --> ${alfresco.groupId} share-po ${alfresco.version} test - - - - - org.seleniumhq.selenium - selenium-java - - - org.seleniumhq.selenium - selenium-server - - - + the org.alfresco.po.share.AbstractTest class that our custom tests extend. --> ${alfresco.groupId} share-po @@ -391,8 +388,7 @@ tests test - + org.seleniumhq.selenium @@ -404,25 +400,6 @@ - - - - org.seleniumhq.selenium - selenium-java - 2.45.0-alfresco - - - org.seleniumhq.selenium - selenium-server - 2.45.0-alfresco - - - org.mortbay.jetty - servlet-api-2.5 - - - - @@ -437,6 +414,43 @@ + + + + org.springframework + spring-core + ${spring.version} + provided + + + org.springframework + spring-beans + ${spring.version} + provided + + + org.springframework + spring-context + ${spring.version} + provided + + + org.springframework + spring-aspects + ${spring.version} + + + org.springframework + spring-test + ${spring.version} + diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/runner/test-ng/testng-alfresco-share.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/runner/test-ng/testng-alfresco-share.xml index bf3a1b02..d70b604b 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/runner/test-ng/testng-alfresco-share.xml +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/runner/test-ng/testng-alfresco-share.xml @@ -38,13 +38,11 @@ -