Skip to content
Snippets Groups Projects
Commit 5b0b71db authored by hg's avatar hg
Browse files

OO-1068: preliminary work to use the selenium tests against small browser windows

parent 32c3639c
No related branches found
No related tags found
No related merge requests found
...@@ -103,7 +103,6 @@ public class UserSettingsTest { ...@@ -103,7 +103,6 @@ public class UserSettingsTest {
//set the preferences to resume automatically //set the preferences to resume automatically
userTools userTools
.assertOnUserTools()
.openUserToolsMenu() .openUserToolsMenu()
.openMySettings() .openMySettings()
.assertOnUserSettings() .assertOnUserSettings()
...@@ -237,7 +236,6 @@ public class UserSettingsTest { ...@@ -237,7 +236,6 @@ public class UserSettingsTest {
//set the languages preferences to german //set the languages preferences to german
userTools userTools
.assertOnUserTools()
.openUserToolsMenu() .openUserToolsMenu()
.openMySettings() .openMySettings()
.assertOnUserSettings() .assertOnUserSettings()
...@@ -295,7 +293,6 @@ public class UserSettingsTest { ...@@ -295,7 +293,6 @@ public class UserSettingsTest {
.resume(); .resume();
userTools userTools
.assertOnUserTools()
.openUserToolsMenu() .openUserToolsMenu()
.openPassword(); .openPassword();
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
*/ */
package org.olat.selenium.page.user; package org.olat.selenium.page.user;
import java.util.List;
import org.jboss.arquillian.drone.api.annotation.Drone; import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.graphene.Graphene; import org.jboss.arquillian.graphene.Graphene;
import org.jboss.arquillian.graphene.page.Page; import org.jboss.arquillian.graphene.page.Page;
...@@ -29,7 +31,6 @@ import org.olat.selenium.page.portfolio.PortfolioPage; ...@@ -29,7 +31,6 @@ import org.olat.selenium.page.portfolio.PortfolioPage;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
/** /**
* *
...@@ -40,21 +41,10 @@ import org.openqa.selenium.support.FindBy; ...@@ -40,21 +41,10 @@ import org.openqa.selenium.support.FindBy;
public class UserToolsPage { public class UserToolsPage {
public static final By mySettingsClassName = By.className("o_sel_user_tools-mysettings"); public static final By mySettingsClassName = By.className("o_sel_user_tools-mysettings");
@Drone @Drone
private WebDriver browser; private WebDriver browser;
@FindBy(id = "o_navbar_tools_personal")
private WebElement toolbarMenu;
@FindBy(id = "o_sel_navbar_my_menu_caret")
private WebElement toolbarCaretLink;
@FindBy(className = "o_sel_user_tools-mysettings")
private WebElement mySettingsLink;
@FindBy(className = "o_logout")
private WebElement logoutLink;
@Page @Page
private UserSettingsPage userSettings; private UserSettingsPage userSettings;
...@@ -64,7 +54,10 @@ public class UserToolsPage { ...@@ -64,7 +54,10 @@ public class UserToolsPage {
* @return * @return
*/ */
public UserToolsPage assertOnUserTools() { public UserToolsPage assertOnUserTools() {
Assert.assertTrue(toolbarMenu.isDisplayed()); By personnalToolsBy = By.id("o_navbar_tools_personal");
List<WebElement> personnalTools = browser.findElements(personnalToolsBy);
Assert.assertEquals(1, personnalTools.size());
Assert.assertTrue(personnalTools.get(0).isDisplayed());
return this; return this;
} }
...@@ -74,10 +67,25 @@ public class UserToolsPage { ...@@ -74,10 +67,25 @@ public class UserToolsPage {
* @return The user menu page * @return The user menu page
*/ */
public UserToolsPage openUserToolsMenu() { public UserToolsPage openUserToolsMenu() {
if(!mySettingsLink.isDisplayed()) { List<WebElement> mySettingsLinks = browser.findElements(mySettingsClassName);
if(mySettingsLinks.isEmpty() || !mySettingsLinks.get(0).isDisplayed()) {
By toolbarCaretBy = By.id("o_sel_navbar_my_menu_caret");
List<WebElement> toolbarCaretLinks = browser.findElements(toolbarCaretBy);
WebElement toolbarCaretLink = null;
//if window is too small > toggle the right navigation
if(toolbarCaretLinks.isEmpty() || !toolbarCaretLinks.get(0).isDisplayed()) {
By navbarToogleBy = By.id("o_navbar_right-toggle");
List<WebElement> navbarToogleButtons = browser.findElements(navbarToogleBy);
Assert.assertEquals(1, navbarToogleButtons.size());
toolbarCaretLink = navbarToogleButtons.get(0);
} else {
toolbarCaretLink = toolbarCaretLinks.get(0);
}
Assert.assertNotNull(toolbarCaretLink);
toolbarCaretLink.click(); toolbarCaretLink.click();
OOGraphene.waitElement(mySettingsClassName); OOGraphene.waitElement(mySettingsClassName);
} }
assertOnUserTools();
return this; return this;
} }
...@@ -87,6 +95,7 @@ public class UserToolsPage { ...@@ -87,6 +95,7 @@ public class UserToolsPage {
* @return The user sesstings page fragment * @return The user sesstings page fragment
*/ */
public UserSettingsPage openMySettings() { public UserSettingsPage openMySettings() {
WebElement mySettingsLink = browser.findElement(mySettingsClassName);
Assert.assertTrue(mySettingsLink.isDisplayed()); Assert.assertTrue(mySettingsLink.isDisplayed());
mySettingsLink.click(); mySettingsLink.click();
OOGraphene.waitBusy(); OOGraphene.waitBusy();
...@@ -116,9 +125,12 @@ public class UserToolsPage { ...@@ -116,9 +125,12 @@ public class UserToolsPage {
* Log out and wait until the login form appears * Log out and wait until the login form appears
*/ */
public void logout() { public void logout() {
OOGraphene.closeBlueMessageWindow(browser);
openUserToolsMenu(); openUserToolsMenu();
By logoutBy = By.className("o_logout");
WebElement logoutLink = browser.findElement(logoutBy);
Graphene.guardHttp(logoutLink).click(); Graphene.guardHttp(logoutLink).click();
OOGraphene.waitElement(LoginPage.loginFormBy); OOGraphene.waitElement(LoginPage.loginFormBy);
} }
}
} \ No newline at end of file
...@@ -19,6 +19,9 @@ ...@@ -19,6 +19,9 @@
<extension qualifier="webdriver"> <extension qualifier="webdriver">
<property name="browser">firefox</property> <property name="browser">firefox</property>
<!--
<property name="dimensions">800x600</property>
-->
</extension> </extension>
</arquillian> </arquillian>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment