OpenVeo test API

API Docs for: 8.0.0
Show:

BackEndPage

Extends Page
Module: e2e

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');
});

Methods

clickMenu

Syntax

clickMenu

(
  • itemName
)
Promise

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 String

    The name of the menu item

Returns:

Promise:

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

clickMenuRecursive

(
  • elements
  • itemName
)
Promise private

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 ElementArrayFinder

    Menu items elements

  • itemName ItemName

    Name of the menu item to look for

Returns:

Promise:

A promise resolving when the menu item is clicked

clickProfile

Syntax

clickProfile

() Promise

Summary

Clicks on profile link.

Returns:

Promise:

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

closeAlerts

() Promise

Summary

Closes all alerts.

Returns:

Promise:

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

closeMenu

() Promise

Summary

Closes menu.

Returns:

Promise:

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

closeSubMenu

(
  • itemName
)
Promise

Summary

Closes an item sub menu by its name.

Parameters:

  • itemName String

    The name of the menu item having a sub menu

Returns:

Promise:

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

deleteCookies

() Promise

Summary

Removes all cookies on the actual page.

Returns:

Promise:
Promise resolving when all cookies are deleted

getAlertMessages

Syntax

getAlertMessages

() Promise

Summary

Gets all alert messages.

Returns:

Promise:

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
)
ElementFinder

Summary

Gets language link element.

Parameters:

  • languageCode String

    The language code to load (e.g. en)

Returns:

ElementFinder:

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

getLanguages

() Array

Summary

Gets the list of available languages.

Returns:

Array:

The list of available languages

Example:

// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
console.log(page.getLanguages());

getLevel1MenuItems

Syntax

getLevel1MenuItems

(
  • [itemName]
)
Promise

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 optional

    The translated name of the menu item to look for, leave empty to get all level 1 menu items

Returns:

Promise:

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

getLevel2MenuItems

(
  • level1ItemName
  • [level2ItemName]
)
Promise

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:

  • level1ItemName String

    The translated name of the first level menu item to look for

  • [level2ItemName] String optional

    The translated name of the second menu item to look for, leave empty to get all level 2 menu items

Returns:

Promise:

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

getPath

() Promise

Summary

Helper Url Get only current url path without host

Returns:

Promise:
Promise resolving with current path

getTitle

Syntax

getTitle

() Promise

Summary

Gets page title as described by the HTMLTitleElement.

Returns:

Promise:
Promise resolving with the title of the page

Example:

// With MyPage extending Page
var page = new MyPage();
assert.eventually.equal(page.getTitle(), 'My page title');

getUser

Syntax

getUser

() Object

Summary

Gets current logged in user.

Returns:

Object:

The current logged in user

Example:

// With MyBackEndPage extending BackEndPage
var page = new MyBackEndPage();
page.logAsAdmin().then(function() {
  console.log(page.getUser());
});

isSubMenuOpened

Syntax

isSubMenuOpened

(
  • itemName
)
Promise

Summary

Tests if a sub menu is opened.

Parameters:

  • itemName String

    The name of the menu item

Returns:

Promise:

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

Inherited from Page but overwritten in lib/e2e/pages/BackEndPage.js:222

Syntax

load

() Promise

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:

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

logAs

(
  • user
)
Promise

Summary

Authenticates to the back end using the given account.

If an account is already logged in, it will be logged out.

Parameters:

  • user Object

    Information about the user

Returns:

Promise:

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

logAsAdmin

() Promise

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:

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

logout

() Promise

Summary

Logs out current authenticated user.

This will lead to the login page.

Returns:

Promise:

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

logToCasAs

(
  • user
)
Promise

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 Object

    Information about the CAS user

Returns:

Promise:

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

logToLdapAs

(
  • user
)
Promise

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 Object

    Information about the LDAP user

Returns:

Promise:

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

onLoaded

() Promise

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:

Promise:
Promise resolving when the page is fully loaded

openMenu

Syntax

openMenu

() Promise

Summary

Opens left menu.

Returns:

Promise:

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

openSubMenu

(
  • itemName
)
Promise

Summary

Opens an item sub menu.

Parameters:

  • itemName String

    The name of the menu item

Returns:

Promise:

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

refresh

() Promise

Summary

Refreshes actual page.

Returns:

Promise:
Promise resolving when the page is fully loaded

selectLanguage

Syntax

selectLanguage

(
  • language
)
Promise

Summary

Sets page language.

It uses the top menu to change the language, a page reload will be performed.

Parameters:

  • language Object

    The language to load

Returns:

Promise:

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

Inherited from Page: lib/e2e/pages/Page.js:55

Syntax

bodyElement

ElementFinder final

Summary

Body element.

EC

Inherited from Page: lib/e2e/pages/Page.js:37

Syntax

EC

ExpectedConditions final

Summary

Protractor expected conditions.

flow

Inherited from Page: lib/e2e/pages/Page.js:46

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

Inherited from Page: lib/e2e/pages/Page.js:64

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.

translations

Syntax

translations

Object

Summary

List of back end translations.