BackEndPage
Summary
Defines a back end page to help writing end to end tests on OpenVeo back end pages.
Do not use this directly but extend it.
Constructor
BackEndPage
Syntax
BackEndPage
()
Summary
Example:
var BackEndPage = require('@openveo/test').e2e.pages.BackEndPage;
function MyBackEndPage() {
MyBackEndPage.super_.call(this);
this.path = 'be/myBackEndPage';
}
module.exports = MyBackEndPage;
util.inherits(MyBackEndPage, BackEndPage);
var page = new MyBackEndPage();
page.logAsAdmin();
page.load().then(function() {
console.log('Page fully loaded in the first language of the list of languages');
});
Item Index
Methods
- clickMenu
- clickMenuRecursive
- clickProfile
- closeAlerts
- closeMenu
- closeSubMenu
- deleteCookies
- getAlertMessages
- getLanguageOption
- getLanguages
- getLevel1MenuItems
- getLevel2MenuItems
- getPath
- getTitle
- getUser
- isSubMenuOpened
- load
- logAs
- logAsAdmin
- logout
- logToCasAs
- logToLdapAs
- onLoaded
- openMenu
- openSubMenu
- refresh
- selectLanguage
Methods
clickMenu
Syntax
Summary
Clicks on a menu item.
This will look for the item in menu and sub menus to find the item by its name.
Parameters:
-
itemName
StringThe name of the menu item
Returns:
Promise resolving when menu is clicked
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.clickMenu('Roles').then(function() {
console.log('Roles menu item clicked');
});
clickMenuRecursive
Syntax
Summary
Looks for a menu item and click on it.
This will look for the item in menu and sub menus to find the item by its name.
Parameters:
-
elements
ElementArrayFinderMenu items elements
-
itemName
ItemNameName of the menu item to look for
Returns:
A promise resolving when the menu item is clicked
clickProfile
Syntax
Summary
Clicks on profile link.
Returns:
Promise resolving when profile link is clicked
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.clickProfile().then(function() {
console.log('Profile link clicked');
});
closeAlerts
Syntax
Summary
Closes all alerts.
Returns:
Promise resolving when all alerts are closed
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.closeAlerts().then(function() {
console.log('All alerts closed');
});
closeMenu
Syntax
Summary
Closes menu.
Returns:
Promise resolving when menu is closed
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.closeMenu().then(function() {
console.log('Left menu closed');
});
closeSubMenu
Syntax
Summary
Closes an item sub menu by its name.
Parameters:
-
itemName
StringThe name of the menu item having a sub menu
Returns:
Promise resolving when sub menu is closed
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.closeSubMenu('Rights').then(function() {
console.log('Rights sub menu closed');
});
deleteCookies
Syntax
Summary
Removes all cookies on the actual page.Returns:
getAlertMessages
Syntax
Summary
Gets all alert messages.
Returns:
Promise resolving with all alert messages
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.getAlertMessages().then(function(messages) {
console.log(messages);
});
getLanguageOption
Syntax
getLanguageOption
-
languageCode
Summary
Gets language link element.
Parameters:
-
languageCode
StringThe language code to load (e.g. en)
Returns:
The language option element
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.click(page.getLanguageOption('fr')).then(function() {
console.log('Page is now in french');
});
getLanguages
Syntax
Summary
Gets the list of available languages.
Returns:
The list of available languages
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
console.log(page.getLanguages());
getLevel1MenuItems
Syntax
Summary
Gets level 1 menu items.
All level 1 menu items will be returned with the promise unless itemName is specified then all elements corresponding to the item name will be returned.
Parameters:
-
[itemName]
String optionalThe translated name of the menu item to look for, leave empty to get all level 1 menu items
Returns:
Promise resolving with the list of elements
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.getLevel1MenuItems('Rights').then(function(elements) {
console.log(elements);
});
getLevel2MenuItems
Syntax
Summary
Gets level 2 menu items.
All level 2 menu items will be returned with the promise unless itemName is specified then all elements corresponding to the item name will be returned.
Parameters:
Returns:
Promise resolving with the list of elements
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.getLevel2MenuItems('Rights', 'Users').then(function(elements) {
console.log(elements);
});
getPath
Syntax
Summary
Helper Url Get only current url path without hostReturns:
getTitle
Syntax
Summary
Gets page title as described by the HTMLTitleElement.Returns:
Example:
// With MyPage extending Page
var page = new MyPage();
assert.eventually.equal(page.getTitle(), 'My page title');
getUser
Syntax
Summary
Gets current logged in user.
Returns:
The current logged in user
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin().then(function() {
console.log(page.getUser());
});
isSubMenuOpened
Syntax
Summary
Tests if a sub menu is opened.
Parameters:
-
itemName
StringThe name of the menu item
Returns:
Promise resolving with true if the sub menu is opened, false if it's closed
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.isSubMenuOpened('Rights').then(function(isOpened) {
console.log('Is sub menu opened ?' + isOpened);
});
load
Syntax
Summary
Loads the page and select the first available language.
This will automatically select the first language in the list of available languages.
Returns:
Promise resolving when the page is loaded and language changed
Example:
var BackEndPage = require('@openveo/test').e2e.pages.BackEndPage;
function MyBackEndPage() {
MyBackEndPage.super_.call(this);
this.path = 'be/myBackEndPage';
}
module.exports = MyBackEndPage;
util.inherits(MyBackEndPage, BackEndPage);
var page = new MyBackEndPage();
page.logAsAdmin();
page.load().then(function() {
console.log('Page fully loaded in the first language');
});
logAs
Syntax
Summary
Authenticates to the back end using the given account.
If an account is already logged in, it will be logged out.
Parameters:
-
user
ObjectInformation about the user
Returns:
Promise resolving when authenticated to the back end
Example:
var user = {
"email": "some-user@veo-labs.com",
"password": "some-user"
}
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAs(user).then(function() {
console.log('Logged as some-user');
});
logAsAdmin
Syntax
Summary
Logs to the back end using the super administrator account.
The super administrator can perform any actions. If an account is already logged in, it will be logged out.
Returns:
Promise resolving when authenticated as the super administrator
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin().then(function() {
console.log('Logged as super admin');
});
logout
Syntax
Summary
Logs out current authenticated user.
This will lead to the login page.
Returns:
Promise resolving when user is logged out and login page is displayed
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.logout().then(function() {
console.log('Logged out');
});
logToCasAs
Syntax
Summary
Authenticates to the back end using the given CAS account.
cas-server-mock module must be used for this to work. Also process.protractorConf.casConf.userIdAttribute should be set to the name of the CAS user attribute which must be used as user's login. If an account is already logged in, it will be logged out.
Parameters:
-
user
ObjectInformation about the CAS user
Returns:
Promise resolving when authenticated to the back end
Example:
var user = {
name: 'test',
attributes: {
name: 'test',
mail: 'test@openveo.com',
groups: ['test-group1', 'test-group2']
}
};
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logToCasAs(user).then(function() {
console.log('Logged as test');
});
logToLdapAs
Syntax
Summary
Authenticates to the back end using the given LDAP account.
process.protractorConf.ldapConf.userIdAttribute should be set to the name of the LDAP user attribute which must be used as user's login. If an account is already logged in, it will be logged out.
Parameters:
-
user
ObjectInformation about the LDAP user
Returns:
Promise resolving when authenticated to the back end
Example:
var user = {
dn: 'cn=test,dc=test',
cn: 'test',
groups: 'test-group1,test-group2',
mail: 'test@openveo.com'
};
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logToLdapAs(user).then(function() {
console.log('Logged as test');
});
onLoaded
Syntax
Summary
Handles page loaded. Use this method to perform actions after the page is loaded. Typically, verify that the page is loaded by waiting for elements to be present on the page. By default it does nothing, override it to define your own behaviour.Returns:
openMenu
Syntax
Summary
Opens left menu.
Returns:
Promise resolving when left menu is opened
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.openMenu().then(function() {
console.log('Left menu opened');
});
openSubMenu
Syntax
Summary
Opens an item sub menu.
Parameters:
-
itemName
StringThe name of the menu item
Returns:
Promise resolving when sub menu is opened
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin();
page.openSubMenu('Rights').then(function() {
console.log('Rights sub menu opened');
});
refresh
Syntax
Summary
Refreshes actual page.Returns:
selectLanguage
Syntax
Summary
Sets page language.
It uses the top menu to change the language, a page reload will be performed.
Parameters:
-
language
ObjectThe language to load
Returns:
Promise resolving when the page is reloaded with the expected language
Example:
// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
var languages = page.getLanguages();
page.logAsAdmin();
page.selectLanguage(languages[1]).then(function() {
console.log('Page reloaded in french');
});
Properties
alertElements
Syntax
alertElements
ElementArrayFinder
final
Summary
List of alert elements.
bodyElement
Syntax
bodyElement
ElementFinder
final
Summary
Body element.EC
Syntax
EC
ExpectedConditions
final
Summary
Protractor expected conditions.flow
Syntax
flow
ControlFlow
final
Summary
Protractor control flow.languageLinkElement
Syntax
languageLinkElement
ElementFinder
final
Summary
Language link element to open the list of languages.
leftMenuElement
Syntax
leftMenuElement
ElementFinder
final
Summary
Left menu wrapper element.
Displayed or not as the left menu is opened or not.
level1MenuLinkElements
Syntax
level1MenuLinkElements
ElementArrayFinder
final
Summary
List of first level link elements in left menu.
logoutLinkElement
Syntax
logoutLinkElement
ElementFinder
final
Summary
Logout link element.
pageElement
Syntax
pageElement
ElementFinder
final
Summary
Page element. Page wrapper holding the content scrollbar.popoverElement
Syntax
popoverElement
ElementFinder
final
Summary
Popover element.
profileLinkElement
Syntax
profileLinkElement
ElementFinder
final
Summary
Profile link element.
toggleLeftMenuLinkElement
Syntax
toggleLeftMenuLinkElement
ElementFinder
final
Summary
Button to toggle left menu.