LocalFile.ObjectPortlet#set-up
  • Running IsTestName with locator1 with value1
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
    • Running isTestName with parameters
  • Running WaitForSPARefresh
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
  • Running Open with locator1http://localhost:8080/web/guest/home
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest/home
    • Running assertLiferayErrors
    • Running selectWindow with parameters
    • Running selectFrame with parametersrelative=top
    • Running open with parametershttp://localhost:8080/web/guest/home
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest/home
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest/home
    • Running assertLiferayErrors
  • Running IsElementNotPresent with locator1//span[contains(@class,'sign-in')]/a/span
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//span[contains(@class,'sign-in')]/a/span
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//span[contains(@class,'sign-in')]/a/span
    • Running isNotVisible with parameters//span[contains(@class,'sign-in')]/a/span
  • Running post with parametersArg: ${curl}Return: {"agreedToTermsOfUse":true,"comments":"","companyId":"20099","contactId":"20129","createDate":1644268791420,"ctCollectionId":"0","defaultUser":false,"emailAddress":"test@liferay.com","emailAddressVerified":true,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"Test","googleUserId":"","graceLoginCount":0,"greeting":"Welcome Test Test!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":1644268791477,"lastLoginIP":"","lastName":"Test","ldapServerId":"-1","lockout":false,"lockoutDate":null,"loginDate":1644268875295,"loginIP":"127.0.0.1","middleName":"","modifiedDate":1644268924154,"mvccVersion":"5","openId":"","portraitId":"0","reminderQueryAnswer":"test","reminderQueryQuestion":"what-is-your-father's-middle-name","screenName":"test","status":0,"timeZoneId":"UTC","userId":"20127","uuid":"018c466c-7f37-7ac8-a5f0-b7d953ec8bcb"}Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {"agreedToTermsOfUse":true,"comments":"","companyId":"20099","contactId":"20129","createDate":1644268791420,"ctCollectionId":"0","defaultUser":false,"emailAddress":"test@liferay.com","emailAddressVerified":true,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"Test","googleUserId":"","graceLoginCount":0,"greeting":"Welcome Test Test!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":1644268791477,"lastLoginIP":"","lastName":"Test","ldapServerId":"-1","lockout":false,"lockoutDate":null,"loginDate":1644268875295,"loginIP":"127.0.0.1","middleName":"","modifiedDate":1644268924425,"mvccVersion":"6","openId":"","portraitId":"0","reminderQueryAnswer":"test","reminderQueryQuestion":"what-is-your-father's-middle-name","screenName":"test","status":0,"timeZoneId":"UTC","userId":"20127","uuid":"018c466c-7f37-7ac8-a5f0-b7d953ec8bcb"}Finished executing commands.
  • Running Open with locator1http://localhost:8080/web/guest?SM_USER=test@liferay.com
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest?SM_USER=test@liferay.com
    • Running assertLiferayErrors
    • Running selectWindow with parameters
    • Running selectFrame with parametersrelative=top
    • Running open with parametershttp://localhost:8080/web/guest?SM_USER=test@liferay.com
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest?SM_USER=test@liferay.com
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest?SM_USER=test@liferay.com
    • Running assertLiferayErrors
  • Running IsElementPresent with locator1//h1[contains(.,'Your connection is not private')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//h1[contains(.,'Your connection is not private')]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//h1[contains(.,'Your connection is not private')]
  • Running IsElementPresent#pauseIsElementPresent with locator1//div[label[contains(.,'Password')]]/input | //div[label[contains(.,"parola d'ordine")]]/input | //div[label[contains(.,'Contraseña')]]/input | //div[label[contains(.,'パスワード')]]/input | //div[label[contains(.,'密码')]]/input | //div[contains(.,'Kennwort')]//input[@type='password']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[label[contains(.,'Password')]]/input | //div[label[contains(.,"parola d'ordine")]]/input | //div[label[contains(.,'Contraseña')]]/input | //div[label[contains(.,'パスワード')]]/input | //div[label[contains(.,'密码')]]/input | //div[contains(.,'Kennwort')]//input[@type='password']
    • Running assertLiferayErrors
    • Running pause with parameters1000
    • Running isElementPresent with parameters//div[label[contains(.,'Password')]]/input | //div[label[contains(.,"parola d'ordine")]]/input | //div[label[contains(.,'Contraseña')]]/input | //div[label[contains(.,'パスワード')]]/input | //div[label[contains(.,'密码')]]/input | //div[contains(.,'Kennwort')]//input[@type='password']
  • Running Pause with locator13000
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters3000
    • Running assertLiferayErrors
    • Running pause with parameters3000
  • Running IsElementPresent#pauseIsElementPresent with locator1//input[contains(@id,'reminderQueryAnswer')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'reminderQueryAnswer')]
    • Running assertLiferayErrors
    • Running pause with parameters1000
    • Running isElementPresent with parameters//input[contains(@id,'reminderQueryAnswer')]
  • Running IsElementNotPresent with locator1//span[@class='user-avatar-link']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//span[@class='user-avatar-link']
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//span[@class='user-avatar-link']
    • Running isNotVisible with parameters//span[@class='user-avatar-link']
  • Running WaitForLiferayEvent#initializeLiferayEventLog
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
  • LocalFile.ObjectPortlet#CanApplyPermissionOnlyToSpecificSiteWhenScopedBySite
  • LPS-135390 - Verify it is possible to apply a permission only to a specific site when an Object is scoped by Site
  • Running post with parametersArg: ${curl}Return: { "actions" : { "get" : { "method" : "GET", "href" : "http://localhost:8080/o/object-admin/v1.0/object-definitions/42830" }, "publish" : { "method" : "POST", "href" : "http://localhost:8080/o/object-admin/v1.0/object-definitions/42830/publish" }, "update" : { "method" : "PUT", "href" : "http://localhost:8080/o/object-admin/v1.0/object-definitions/42830" }, "delete" : { "method" : "DELETE", "href" : "http://localhost:8080/o/object-admin/v1.0/object-definitions/42830" } }, "active" : false, "dateCreated" : "2022-02-07T21:22:12Z", "dateModified" : "2022-02-07T21:22:12Z", "id" : 42830, "label" : { "en_US" : "Custom Object" }, "name" : "CustomObject", "objectActions" : [ ], "objectFields" : [ ], "objectLayouts" : [ ], "objectViews" : [ ], "panelCategoryKey" : "site_administration.content", "pluralLabel" : { "en_US" : "Custom Objects" }, "portlet" : false, "scope" : "site", "status" : { "code" : 2, "label" : "draft", "label_i18n" : "Draft" }, "system" : false, "titleObjectFieldId" : 0 }Finished executing commands.
  • Running post with parametersArg: ${curl}Return: { "DBType" : "String", "actions" : { "get" : { "method" : "GET", "href" : "http://localhost:8080/o/object-admin/v1.0/object-fields/42830" }, "update" : { "method" : "PUT", "href" : "http://localhost:8080/o/object-admin/v1.0/object-fields/42830" }, "delete" : { "method" : "DELETE", "href" : "http://localhost:8080/o/object-admin/v1.0/object-fields/42830" } }, "id" : 42831, "indexed" : true, "indexedAsKeyword" : true, "indexedLanguageId" : "", "label" : { "en_US" : "Custom Field" }, "listTypeDefinitionId" : 0, "name" : "customObjectField", "required" : false, "type" : "String" }Finished executing commands.
  • Running post with parametersArg: ${curl}Return: Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {"classNameId":"20006","classPK":"42834","companyId":"20099","createDate":1644268933922,"ctCollectionId":"0","description":"","descriptionCurrentValue":"","modifiedDate":1644268933922,"mvccVersion":"0","name":"Regular Role","roleId":"42834","subtype":"","title":"<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"en_US\" default-locale=\"en_US\"><Title language-id=\"en_US\">Regular Role<\/Title><\/root>","titleCurrentValue":"Regular Role","type":1,"userId":"20127","userName":"Test Test","uuid":"2e30130c-8a79-e309-ed17-2899fa4c3a2c"}Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {"active":true,"classNameId":"20003","classPK":"42836","companyId":"20099","creatorUserId":"20127","ctCollectionId":"0","description":"","descriptionCurrentValue":"","descriptiveName":"Site A","friendlyURL":"\/site-a","groupId":"42836","groupKey":"Site A","inheritContent":false,"liveGroupId":"0","manualMembership":true,"membershipRestriction":0,"mvccVersion":"0","name":"<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"en_US\" default-locale=\"en_US\"><Name language-id=\"en_US\">Site A<\/Name><\/root>","nameCurrentValue":"Site A","parentGroupId":"0","remoteStagingGroupCount":0,"site":true,"treePath":"\/42836\/","type":1,"uuid":"d206ea3e-31bd-4ad1-3d57-92f70f3430fe"}Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {"active":true,"classNameId":"20003","classPK":"42839","companyId":"20099","creatorUserId":"20127","ctCollectionId":"0","description":"","descriptionCurrentValue":"","descriptiveName":"Site B","friendlyURL":"\/site-b","groupId":"42839","groupKey":"Site B","inheritContent":false,"liveGroupId":"0","manualMembership":true,"membershipRestriction":0,"mvccVersion":"0","name":"<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"en_US\" default-locale=\"en_US\"><Name language-id=\"en_US\">Site B<\/Name><\/root>","nameCurrentValue":"Site B","parentGroupId":"0","remoteStagingGroupCount":0,"site":true,"treePath":"\/42839\/","type":1,"uuid":"a063127c-0c69-4e42-4696-7a9f1879848b"}Finished executing commands.
  • Running IsElementNotPresent with locator1//div[contains(@class,'applications-menu-modal')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'applications-menu-modal')]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//div[contains(@class,'applications-menu-modal')]
    • Running isElementNotPresent with parameters//div[contains(@class,'applications-menu-modal')]
  • Running Click with locator1//button[@data-qa-id='applicationsMenu']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button[@data-qa-id='applicationsMenu']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//button[@data-qa-id='applicationsMenu']
    • Running mouseOver with parameters//button[@data-qa-id='applicationsMenu']
    • Running click with parameters//button[@data-qa-id='applicationsMenu']
    • Running assertJavaScriptErrors with parameters//button[@data-qa-id='applicationsMenu']
    • Running assertLiferayErrors
  • Running WaitForElementPresent with locator1//div[contains(@class,'applications-menu-modal')]
    • Running waitForElementPresent with parameters//div[contains(@class,'applications-menu-modal')]
  • Running Click with locator1//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running mouseOver with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running click with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running assertJavaScriptErrors with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and contains(@class,'active') and normalize-space()='Control Panel']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and contains(@class,'active') and normalize-space()='Control Panel']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and contains(@class,'active') and normalize-space()='Control Panel']
    • Running assertElementPresent with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and contains(@class,'active') and normalize-space()='Control Panel']
    • Running assertJavaScriptErrors with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and contains(@class,'active') and normalize-space()='Control Panel']
    • Running assertLiferayErrors
  • Running WaitForLiferayEvent#initializeLiferayEventLog
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
  • Running Click with locator1//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running mouseOver with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running click with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running assertJavaScriptErrors with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertElementPresent with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//button[contains(@type,'submit')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button[contains(@type,'submit')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//button[contains(@type,'submit')]
    • Running assertElementPresent with parameters//button[contains(@type,'submit')]
    • Running assertJavaScriptErrors with parameters//button[contains(@type,'submit')]
    • Running assertLiferayErrors
  • Running Type with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')] with value1Regular Role
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Regular Role
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Regular Role
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]Regular Role
    • Running waitForEditable with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running mouseOver with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running clickAt with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running pause with parameters1000
    • Running type with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]Regular Role
    • Running pause with parameters1000
    • Running clickAt with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running pause with parameters1000
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running KeyPress with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')] with value1\RETURN
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]\RETURN
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]\RETURN
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running mouseOver with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running keyPress with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]\RETURN
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running WaitForLiferayEvent#initializeLiferayEventLog
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
  • Running AssertClick with locator1//*[contains(@class,'list-group')]/*[contains(@data-qa-id,'row')]//h5/a[normalize-space(text())='Regular Role'] with value1${key_itemName}
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Regular Role
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Regular Role
    • Running assertJavaScriptErrors with parameters//*[contains(@class,'list-group')]/*[contains(@data-qa-id,'row')]//h5/a[normalize-space(text())='Regular Role']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Regular Role
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Regular Role
    • Running assertJavaScriptErrors with parameters//*[contains(@class,'list-group')]/*[contains(@data-qa-id,'row')]//h5/a[normalize-space(text())='Regular Role']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Regular Role
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Regular Role
    • Running assertJavaScriptErrors with parameters//*[contains(@class,'list-group')]/*[contains(@data-qa-id,'row')]//h5/a[normalize-space(text())='Regular Role']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[contains(@class,'list-group')]/*[contains(@data-qa-id,'row')]//h5/a[normalize-space(text())='Regular Role']Regular Role
    • Running waitForTextCaseInsensitive with parameters//*[contains(@class,'list-group')]/*[contains(@data-qa-id,'row')]//h5/a[normalize-space(text())='Regular Role']Regular Role
    • Running assertTextCaseInsensitive with parameters//*[contains(@class,'list-group')]/*[contains(@data-qa-id,'row')]//h5/a[normalize-space(text())='Regular Role']Regular Role
    • Running assertJavaScriptErrors with parameters//*[contains(@class,'list-group')]/*[contains(@data-qa-id,'row')]//h5/a[normalize-space(text())='Regular Role']
    • Running assertLiferayErrors
    • Running mouseOver with parameters//*[contains(@class,'list-group')]/*[contains(@data-qa-id,'row')]//h5/a[normalize-space(text())='Regular Role']
    • Running clickAt with parameters//*[contains(@class,'list-group')]/*[contains(@data-qa-id,'row')]//h5/a[normalize-space(text())='Regular Role']
    • Running assertJavaScriptErrors with parameters//*[contains(@class,'list-group')]/*[contains(@data-qa-id,'row')]//h5/a[normalize-space(text())='Regular Role']
    • Running assertLiferayErrors
  • Running AssertClick with locator1//div[contains(@class,'navbar')]//a[normalize-space()='Define Permissions'] with value1Define Permissions
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Define Permissions
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Define Permissions
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Define Permissions']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Define Permissions
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Define Permissions
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Define Permissions']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Define Permissions
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Define Permissions
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Define Permissions']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Define Permissions']Define Permissions
    • Running waitForTextCaseInsensitive with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Define Permissions']Define Permissions
    • Running assertTextCaseInsensitive with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Define Permissions']Define Permissions
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Define Permissions']
    • Running assertLiferayErrors
    • Running mouseOver with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Define Permissions']
    • Running clickAt with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Define Permissions']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Define Permissions']
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Define Permissions']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Define Permissions']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Define Permissions']
    • Running assertElementPresent with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Define Permissions']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Define Permissions']
    • Running assertLiferayErrors
  • Running Type with locator1//input[contains(@id,'permissionNavigationSearch')] with value1Custom Objects
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//input[contains(@id,'permissionNavigationSearch')]Custom Objects
    • Running waitForEditable with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running mouseOver with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running clickAt with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running pause with parameters1000
    • Running type with parameters//input[contains(@id,'permissionNavigationSearch')]Custom Objects
    • Running pause with parameters1000
    • Running clickAt with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running pause with parameters1000
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running assertLiferayErrors
  • Running AssertClick with locator1//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')] with value1Custom Objects
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]Custom Objects
    • Running waitForTextCaseInsensitive with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]Custom Objects
    • Running assertTextCaseInsensitive with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running mouseOver with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running clickAt with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
  • Running Click with locator1//tr[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]/td[1]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//tr[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]/td[1]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//tr[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]/td[1]
    • Running mouseOver with parameters//tr[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]/td[1]
    • Running click with parameters//tr[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]/td[1]
    • Running assertJavaScriptErrors with parameters//tr[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]/td[1]
    • Running assertLiferayErrors
  • Running Click with locator1//tr[contains(@class,' ') and contains(.,'View')]/td[1]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//tr[contains(@class,' ') and contains(.,'View')]/td[1]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//tr[contains(@class,' ') and contains(.,'View')]/td[1]
    • Running mouseOver with parameters//tr[contains(@class,' ') and contains(.,'View')]/td[1]
    • Running click with parameters//tr[contains(@class,' ') and contains(.,'View')]/td[1]
    • Running assertJavaScriptErrors with parameters//tr[contains(@class,' ') and contains(.,'View')]/td[1]
    • Running assertLiferayErrors
  • Running Click with locator1//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running mouseOver with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running click with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running assertJavaScriptErrors with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running assertLiferayErrors
  • Running Type with locator1//input[contains(@id,'permissionNavigationSearch')] with value1Custom Objects
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//input[contains(@id,'permissionNavigationSearch')]Custom Objects
    • Running waitForEditable with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running mouseOver with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running clickAt with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running pause with parameters1000
    • Running type with parameters//input[contains(@id,'permissionNavigationSearch')]Custom Objects
    • Running pause with parameters1000
    • Running clickAt with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running pause with parameters1000
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running assertLiferayErrors
  • Running AssertClick with locator1//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')] with value1Custom Objects
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]Custom Objects
    • Running waitForTextCaseInsensitive with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]Custom Objects
    • Running assertTextCaseInsensitive with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running mouseOver with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running clickAt with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
  • Running Click with locator1//*[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]//*[contains(@class,'btn btn-unstyle')] with value1Access in Site and Asset Library Administration
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Access in Site and Asset Library Administration
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Access in Site and Asset Library Administration
    • Running assertJavaScriptErrors with parameters//*[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]//*[contains(@class,'btn btn-unstyle')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]//*[contains(@class,'btn btn-unstyle')]Access in Site and Asset Library Administration
    • Running mouseOver with parameters//*[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]//*[contains(@class,'btn btn-unstyle')]
    • Running click with parameters//*[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]//*[contains(@class,'btn btn-unstyle')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class,' ') and contains(.,'Access in Site and Asset Library Administration')]//*[contains(@class,'btn btn-unstyle')]
    • Running assertLiferayErrors
  • Running SelectFrame with locator1//div[contains(@class,'modal-body')]/iframe
    • Running waitForJavaScriptNoError with parameters try { var eventValue = LFR_JS_EVENTS_LOG.getLastEvent("modalIframeLoaded").src; return eventValue.includes("dialog-iframe-popup"); } catch(err) { return false; } Event "modalIframeLoaded" with attribute "src" and value "dialog-iframe-popup" not fired.
    • Running verifyJavaScript with parameters try { var eventValue = LFR_JS_EVENTS_LOG.getLastEvent("modalIframeLoaded").src; return eventValue.includes("dialog-iframe-popup"); } catch(err) { return false; } Event "modalIframeLoaded" with attribute "src" and value "dialog-iframe-popup" not fired.
    • Running waitForVisible with parameters//div[contains(@class,'modal-body')]/iframe
    • Running mouseOver with parameters//div[contains(@class,'modal-body')]/iframe
    • Running selectFrame with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertLiferayErrors
  • Running Click with locator1//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running mouseOver with parameters//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running click with parameters//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running assertLiferayErrors
  • Running Click with locator1//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running mouseOver with parameters//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running click with parameters//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running assertLiferayErrors
  • Running SelectFrame with locator1//div[(@class='sheet sheet-lg')]
    • Running selectFrame with parametersrelative=top
    • Running assertJavaScriptErrors with parameters//div[(@class='sheet sheet-lg')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[(@class='sheet sheet-lg')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[(@class='sheet sheet-lg')]
    • Running assertLiferayErrors
  • Running Click with locator1//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running mouseOver with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running click with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running assertJavaScriptErrors with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running assertLiferayErrors
  • Running Type with locator1//input[contains(@id,'permissionNavigationSearch')] with value1Custom Objects
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//input[contains(@id,'permissionNavigationSearch')]Custom Objects
    • Running waitForEditable with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running mouseOver with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running clickAt with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running pause with parameters1000
    • Running type with parameters//input[contains(@id,'permissionNavigationSearch')]Custom Objects
    • Running pause with parameters1000
    • Running clickAt with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running pause with parameters1000
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'permissionNavigationSearch')]
    • Running assertLiferayErrors
  • Running AssertClick with locator1//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')] with value1Custom Objects
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]Custom Objects
    • Running waitForTextCaseInsensitive with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]Custom Objects
    • Running assertTextCaseInsensitive with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
    • Running mouseOver with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running clickAt with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'lfr-permission-navigation')]//li[contains(@class,'permission-navigation-section')]//a[contains(.,'Custom Objects')]
    • Running assertLiferayErrors
  • Running Click with locator1//*[contains(@class,' ') and contains(.,'View')]//*[contains(@class,'btn btn-unstyle')] with value1View
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]View
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]View
    • Running assertJavaScriptErrors with parameters//*[contains(@class,' ') and contains(.,'View')]//*[contains(@class,'btn btn-unstyle')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[contains(@class,' ') and contains(.,'View')]//*[contains(@class,'btn btn-unstyle')]View
    • Running mouseOver with parameters//*[contains(@class,' ') and contains(.,'View')]//*[contains(@class,'btn btn-unstyle')]
    • Running click with parameters//*[contains(@class,' ') and contains(.,'View')]//*[contains(@class,'btn btn-unstyle')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class,' ') and contains(.,'View')]//*[contains(@class,'btn btn-unstyle')]
    • Running assertLiferayErrors
  • Running SelectFrame with locator1//div[contains(@class,'modal-body')]/iframe
    • Running waitForJavaScriptNoError with parameters try { var eventValue = LFR_JS_EVENTS_LOG.getLastEvent("modalIframeLoaded").src; return eventValue.includes("dialog-iframe-popup"); } catch(err) { return false; } Event "modalIframeLoaded" with attribute "src" and value "dialog-iframe-popup" not fired.
    • Running verifyJavaScript with parameters try { var eventValue = LFR_JS_EVENTS_LOG.getLastEvent("modalIframeLoaded").src; return eventValue.includes("dialog-iframe-popup"); } catch(err) { return false; } Event "modalIframeLoaded" with attribute "src" and value "dialog-iframe-popup" not fired.
    • Running waitForVisible with parameters//div[contains(@class,'modal-body')]/iframe
    • Running mouseOver with parameters//div[contains(@class,'modal-body')]/iframe
    • Running selectFrame with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertLiferayErrors
  • Running Click with locator1//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running mouseOver with parameters//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running click with parameters//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class, 'nav-link') and contains(text(),'My Sites')]
    • Running assertLiferayErrors
  • Running Click with locator1//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running mouseOver with parameters//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running click with parameters//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class, 'card')]//*[contains(@data-groupdescriptivename, 'Site A')]
    • Running assertLiferayErrors
  • Running SelectFrame with locator1//div[(@class='sheet sheet-lg')]
    • Running selectFrame with parametersrelative=top
    • Running assertJavaScriptErrors with parameters//div[(@class='sheet sheet-lg')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[(@class='sheet sheet-lg')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[(@class='sheet sheet-lg')]
    • Running assertLiferayErrors
  • Running Click with locator1//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running mouseOver with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running click with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running assertJavaScriptErrors with parameters//button[contains(.,'Save')] | //div[contains(@class,'button-holder ')]/button[contains(.,'Save')]
    • Running assertLiferayErrors
  • ## * GroupId: 20125
  • Running post with parametersArg: ${curl}Return: {}Finished executing commands.
  • ## * GroupId: 20125
  • Running post with parametersArg: ${curl}Return: {}Finished executing commands.
  • Running IsElementNotPresent with locator1//div[contains(@class,'applications-menu-modal')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'applications-menu-modal')]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//div[contains(@class,'applications-menu-modal')]
    • Running isElementNotPresent with parameters//div[contains(@class,'applications-menu-modal')]
  • Running Click with locator1//button[@data-qa-id='applicationsMenu']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button[@data-qa-id='applicationsMenu']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//button[@data-qa-id='applicationsMenu']
    • Running mouseOver with parameters//button[@data-qa-id='applicationsMenu']
    • Running click with parameters//button[@data-qa-id='applicationsMenu']
    • Running assertJavaScriptErrors with parameters//button[@data-qa-id='applicationsMenu']
    • Running assertLiferayErrors
  • Running WaitForElementPresent with locator1//div[contains(@class,'applications-menu-modal')]
    • Running waitForElementPresent with parameters//div[contains(@class,'applications-menu-modal')]
  • Running Click with locator1//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running mouseOver with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running click with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running assertJavaScriptErrors with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and normalize-space()='Control Panel']
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and contains(@class,'active') and normalize-space()='Control Panel']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and contains(@class,'active') and normalize-space()='Control Panel']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and contains(@class,'active') and normalize-space()='Control Panel']
    • Running assertElementPresent with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and contains(@class,'active') and normalize-space()='Control Panel']
    • Running assertJavaScriptErrors with parameters//li[contains(@id,'ApplicationsMenuPortlet')]/button[contains(@class,'nav-link') and contains(@class,'active') and normalize-space()='Control Panel']
    • Running assertLiferayErrors
  • Running WaitForLiferayEvent#initializeLiferayEventLog
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
  • Running Click with locator1//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running mouseOver with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running click with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running assertJavaScriptErrors with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'Users')]/following-sibling::li//span[normalize-space(text())='Roles']
    • Running assertLiferayErrors
  • Running IsElementPresent with locator1//*[@data-qa-id='cardsButton' and contains(@class,'active')]/span
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='cardsButton' and contains(@class,'active')]/span
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//*[@data-qa-id='cardsButton' and contains(@class,'active')]/span
  • Running AssertClick with locator1//*[@data-qa-id='row']//*[normalize-space(text())='Regular Role'] with value1Regular Role
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Regular Role
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Regular Role
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Regular Role']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Regular Role
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Regular Role
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Regular Role']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Regular Role
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Regular Role
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Regular Role']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Regular Role']Regular Role
    • Running waitForTextCaseInsensitive with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Regular Role']Regular Role
    • Running assertTextCaseInsensitive with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Regular Role']Regular Role
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Regular Role']
    • Running assertLiferayErrors
    • Running mouseOver with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Regular Role']
    • Running clickAt with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Regular Role']
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Regular Role']
    • Running assertLiferayErrors
  • Running AssertClick with locator1//div[contains(@class,'navbar')]//a[normalize-space()='Assignees'] with value1Assignees
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Assignees
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Assignees
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Assignees']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Assignees
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Assignees
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Assignees']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Assignees
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Assignees
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Assignees']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Assignees']Assignees
    • Running waitForTextCaseInsensitive with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Assignees']Assignees
    • Running assertTextCaseInsensitive with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Assignees']Assignees
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Assignees']
    • Running assertLiferayErrors
    • Running mouseOver with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Assignees']
    • Running clickAt with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Assignees']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Assignees']
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Assignees']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Assignees']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Assignees']
    • Running assertElementPresent with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Assignees']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Assignees']
    • Running assertLiferayErrors
  • Running AssertClick with locator1//div[contains(@class,'navbar')]//a[normalize-space()='Sites'] with value1Sites
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Sites
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Sites']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Sites
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Sites']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Sites
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Sites']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Sites']Sites
    • Running waitForTextCaseInsensitive with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Sites']Sites
    • Running assertTextCaseInsensitive with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Sites']Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Sites']
    • Running assertLiferayErrors
    • Running mouseOver with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Sites']
    • Running clickAt with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Sites']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='Sites']
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Sites']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Sites']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Sites']
    • Running assertElementPresent with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Sites']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='Sites']
    • Running assertLiferayErrors
  • Running WaitForPageLoad
    • Running waitForJavaScriptNoError with parameters return document.readyState === "complete"; Page is still loading.
    • Running verifyJavaScript with parameters return document.readyState === "complete"; Page is still loading.
  • Running Click with locator1//a[contains(@class,'btn')][contains(@href,'new') or contains(@href,'redirect') or contains(@href,'mvc') or contains(@href,'javascript')][.//*[name()='svg'][contains(@class,'icon-plus')]][not(contains(@class,'borderless'))] | //button[*[contains(@class,'icon-plus')]]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//a[contains(@class,'btn')][contains(@href,'new') or contains(@href,'redirect') or contains(@href,'mvc') or contains(@href,'javascript')][.//*[name()='svg'][contains(@class,'icon-plus')]][not(contains(@class,'borderless'))] | //button[*[contains(@class,'icon-plus')]]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//a[contains(@class,'btn')][contains(@href,'new') or contains(@href,'redirect') or contains(@href,'mvc') or contains(@href,'javascript')][.//*[name()='svg'][contains(@class,'icon-plus')]][not(contains(@class,'borderless'))] | //button[*[contains(@class,'icon-plus')]]
    • Running mouseOver with parameters//a[contains(@class,'btn')][contains(@href,'new') or contains(@href,'redirect') or contains(@href,'mvc') or contains(@href,'javascript')][.//*[name()='svg'][contains(@class,'icon-plus')]][not(contains(@class,'borderless'))] | //button[*[contains(@class,'icon-plus')]]
    • Running click with parameters//a[contains(@class,'btn')][contains(@href,'new') or contains(@href,'redirect') or contains(@href,'mvc') or contains(@href,'javascript')][.//*[name()='svg'][contains(@class,'icon-plus')]][not(contains(@class,'borderless'))] | //button[*[contains(@class,'icon-plus')]]
    • Running assertJavaScriptErrors with parameters//a[contains(@class,'btn')][contains(@href,'new') or contains(@href,'redirect') or contains(@href,'mvc') or contains(@href,'javascript')][.//*[name()='svg'][contains(@class,'icon-plus')]][not(contains(@class,'borderless'))] | //button[*[contains(@class,'icon-plus')]]
    • Running assertLiferayErrors
  • Running WaitForLiferayEvent#initializeLiferayEventLog
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
  • Running SelectFrame with locator1//iframe[contains(@id,'selectAssignees')]
    • Running waitForJavaScriptNoError with parameters try { var eventValue = LFR_JS_EVENTS_LOG.getLastEvent("modalIframeLoaded").src; return eventValue.includes("dialog-iframe-popup"); } catch(err) { return false; } Event "modalIframeLoaded" with attribute "src" and value "dialog-iframe-popup" not fired.
    • Running verifyJavaScript with parameters try { var eventValue = LFR_JS_EVENTS_LOG.getLastEvent("modalIframeLoaded").src; return eventValue.includes("dialog-iframe-popup"); } catch(err) { return false; } Event "modalIframeLoaded" with attribute "src" and value "dialog-iframe-popup" not fired.
    • Running waitForVisible with parameters//iframe[contains(@id,'selectAssignees')]
    • Running mouseOver with parameters//iframe[contains(@id,'selectAssignees')]
    • Running selectFrame with parameters//iframe[contains(@id,'selectAssignees')]
    • Running assertJavaScriptErrors with parameters//iframe[contains(@id,'selectAssignees')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//iframe[contains(@id,'selectAssignees')]
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertElementPresent with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//button[contains(@type,'submit')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button[contains(@type,'submit')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//button[contains(@type,'submit')]
    • Running assertElementPresent with parameters//button[contains(@type,'submit')]
    • Running assertJavaScriptErrors with parameters//button[contains(@type,'submit')]
    • Running assertLiferayErrors
  • Running Type with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')] with value1Site A
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Site A
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Site A
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]Site A
    • Running waitForEditable with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running mouseOver with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running clickAt with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running pause with parameters1000
    • Running type with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]Site A
    • Running pause with parameters1000
    • Running clickAt with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running pause with parameters1000
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running KeyPress with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')] with value1\RETURN
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]\RETURN
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]\RETURN
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running mouseOver with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running keyPress with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]\RETURN
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running WaitForLiferayEvent#initializeLiferayEventLog
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
  • Running AssertTextEquals with locator1//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[2] with value1Site A
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Site A
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Site A
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[2]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Site A
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Site A
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[2]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[2]Site A
    • Running waitForTextCaseInsensitive with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[2]Site A
    • Running assertTextCaseInsensitive with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[2]Site A
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[2]
    • Running assertLiferayErrors
  • Running Check with locator1//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[1]//input[contains(@name,'rowIds')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[1]//input[contains(@name,'rowIds')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[1]//input[contains(@name,'rowIds')]
    • Running mouseOver with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[1]//input[contains(@name,'rowIds')]
    • Running isNotChecked with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[1]//input[contains(@name,'rowIds')]
    • Running clickAt with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[1]//input[contains(@name,'rowIds')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[1]//input[contains(@name,'rowIds')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[1]//input[contains(@name,'rowIds')]
    • Running assertChecked with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[1]//input[contains(@name,'rowIds')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[1]//input[contains(@name,'rowIds')]
    • Running assertLiferayErrors
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'assigneesSearchSearchContainer')]//tr[contains(.,'Site A')]/td[1]//input[contains(@name,'rowIds')]
    • Running assertLiferayErrors
  • Running SelectFrameTop with value1relative=top
    • Running selectFrame with parametersrelative=top
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]relative=top
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]relative=top
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
  • Running Click#mouseDownMouseUp with locator1//*[not(self::div)][contains(@class,'btn')][normalize-space()='Add'][not(contains(@class,'navbar'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Add'][not(contains(@class,'navbar'))]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Add'][not(contains(@class,'navbar'))]
    • Running waitForVisible with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Add'][not(contains(@class,'navbar'))]
    • Running mouseDown with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Add'][not(contains(@class,'navbar'))]
    • Running mouseUp with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Add'][not(contains(@class,'navbar'))]
    • Running assertJavaScriptErrors with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Add'][not(contains(@class,'navbar'))]
    • Running assertLiferayErrors
  • Running VerifyElementPresent with locator1//div[contains(@class,'alert-success')][contains(@class,'alert-dismissible')] | //div[contains(@class,'alert-success')][contains(@class,'alert-dismissable')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'alert-success')][contains(@class,'alert-dismissible')] | //div[contains(@class,'alert-success')][contains(@class,'alert-dismissable')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[contains(@class,'alert-success')][contains(@class,'alert-dismissible')] | //div[contains(@class,'alert-success')][contains(@class,'alert-dismissable')]false
    • Running verifyElementPresent with parameters//div[contains(@class,'alert-success')][contains(@class,'alert-dismissible')] | //div[contains(@class,'alert-success')][contains(@class,'alert-dismissable')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'alert-success')][contains(@class,'alert-dismissible')] | //div[contains(@class,'alert-success')][contains(@class,'alert-dismissable')]
    • Running assertLiferayErrors
  • Running post with parametersArg: ${curl}Return: {"agreedToTermsOfUse":false,"comments":"","companyId":"20099","contactId":"42845","createDate":1644269004192,"ctCollectionId":"0","defaultUser":false,"emailAddress":"userea@liferay.com","emailAddressVerified":false,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"userfn","googleUserId":"","graceLoginCount":0,"greeting":"Welcome userfn userln!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":null,"lastLoginIP":"","lastName":"userln","ldapServerId":"-1","lockout":false,"lockoutDate":null,"loginDate":null,"loginIP":"","middleName":"","modifiedDate":1644269004204,"mvccVersion":"1","openId":"","portraitId":"0","reminderQueryAnswer":"","reminderQueryQuestion":"","screenName":"usersn","status":0,"timeZoneId":"UTC","userId":"42844","uuid":"6e31b97b-b8f8-15f5-6c25-674b183e57dd"}Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {"allowDictionaryWords":true,"changeRequired":false,"changeable":true,"checkSyntax":false,"companyId":"20099","createDate":1644268791260,"defaultPolicy":true,"description":"\"Default Password Policy\"","expireable":false,"graceLimit":0,"history":false,"historyCount":6,"lockout":false,"lockoutDuration":"0","maxAge":"8640000","maxFailure":3,"minAge":"0","minAlphanumeric":0,"minLength":6,"minLowerCase":0,"minNumbers":1,"minSymbols":0,"minUpperCase":1,"modifiedDate":1644269004928,"mvccVersion":"1","name":"Default Password Policy","passwordPolicyId":"20126","regex":"\"(?=.{4})(?:[a-zA-Z0-9]*)\"","requireUnlock":true,"resetFailureCount":"600","resetTicketMaxAge":"86400","userId":"20103","userName":"","uuid":"46f877bf-184c-c2a7-879b-03021fdb5523","warningTime":"86400"}Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {}Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {"allowDictionaryWords":true,"changeRequired":false,"changeable":true,"checkSyntax":false,"companyId":"20099","createDate":1644268791260,"defaultPolicy":true,"description":"\"Default Password Policy\"","expireable":false,"graceLimit":0,"history":false,"historyCount":6,"lockout":false,"lockoutDuration":"0","maxAge":"8640000","maxFailure":3,"minAge":"0","minAlphanumeric":0,"minLength":6,"minLowerCase":0,"minNumbers":1,"minSymbols":0,"minUpperCase":1,"modifiedDate":1644269006346,"mvccVersion":"2","name":"Default Password Policy","passwordPolicyId":"20126","regex":"\"(?=.{4})(?:[a-zA-Z0-9]*)\"","requireUnlock":true,"resetFailureCount":"600","resetTicketMaxAge":"86400","userId":"20103","userName":"","uuid":"46f877bf-184c-c2a7-879b-03021fdb5523","warningTime":"86400"}Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {"agreedToTermsOfUse":true,"comments":"","companyId":"20099","contactId":"42845","createDate":1644269004192,"ctCollectionId":"0","defaultUser":false,"emailAddress":"userea@liferay.com","emailAddressVerified":false,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"userfn","googleUserId":"","graceLoginCount":0,"greeting":"Welcome userfn userln!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":null,"lastLoginIP":"","lastName":"userln","ldapServerId":"-1","lockout":false,"lockoutDate":null,"loginDate":null,"loginIP":"","middleName":"","modifiedDate":1644269006629,"mvccVersion":"2","openId":"","portraitId":"0","reminderQueryAnswer":"","reminderQueryQuestion":"","screenName":"usersn","status":0,"timeZoneId":"UTC","userId":"42844","uuid":"6e31b97b-b8f8-15f5-6c25-674b183e57dd"}Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {"agreedToTermsOfUse":true,"comments":"","companyId":"20099","contactId":"42845","createDate":1644269004192,"ctCollectionId":"0","defaultUser":false,"emailAddress":"userea@liferay.com","emailAddressVerified":false,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"userfn","googleUserId":"","graceLoginCount":0,"greeting":"Welcome userfn userln!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":null,"lastLoginIP":"","lastName":"userln","ldapServerId":"-1","lockout":false,"lockoutDate":null,"loginDate":null,"loginIP":"","middleName":"","modifiedDate":1644269006811,"mvccVersion":"3","openId":"","portraitId":"0","reminderQueryAnswer":"test","reminderQueryQuestion":"what-is-your-father's-middle-name","screenName":"usersn","status":0,"timeZoneId":"UTC","userId":"42844","uuid":"6e31b97b-b8f8-15f5-6c25-674b183e57dd"}Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {}Finished executing commands.
  • Running WaitForSPARefresh
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
  • Running Open with locator1http://localhost:8080/web/guest/home
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest/home
    • Running assertLiferayErrors
    • Running selectWindow with parameters
    • Running selectFrame with parametersrelative=top
    • Running open with parametershttp://localhost:8080/web/guest/home
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest/home
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest/home
    • Running assertLiferayErrors
  • Running IsElementNotPresent with locator1//span[contains(@class,'sign-in')]/a/span
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//span[contains(@class,'sign-in')]/a/span
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//span[contains(@class,'sign-in')]/a/span
    • Running isElementNotPresent with parameters//span[contains(@class,'sign-in')]/a/span
  • Running IsElementPresent with locator1//button//img[contains(@src,'user_portrait')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button//img[contains(@src,'user_portrait')]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//button//img[contains(@src,'user_portrait')]
  • Running IsElementPresent with locator1//button[contains(@data-toggle,'dropdown')]//span[contains(@class,'user-icon')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button[contains(@data-toggle,'dropdown')]//span[contains(@class,'user-icon')]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//button[contains(@data-toggle,'dropdown')]//span[contains(@class,'user-icon')]
  • Running Click#waitForPersonalMenuJSClick with locator1//span[@class='user-avatar-link']//span[*[name()='svg'][contains(@class,'lexicon-icon-user')]]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//span[@class='user-avatar-link']//span[*[name()='svg'][contains(@class,'lexicon-icon-user')]]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//script[contains(@src,'personal_menu/js/PersonalMenu.es.js')]
    • Running pause with parameters3000
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//span[@class='user-avatar-link']//span[*[name()='svg'][contains(@class,'lexicon-icon-user')]]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//span[@class='user-avatar-link']//span[*[name()='svg'][contains(@class,'lexicon-icon-user')]]
    • Running mouseOver with parameters//span[@class='user-avatar-link']//span[*[name()='svg'][contains(@class,'lexicon-icon-user')]]
    • Running click with parameters//span[@class='user-avatar-link']//span[*[name()='svg'][contains(@class,'lexicon-icon-user')]]
    • Running assertJavaScriptErrors with parameters//span[@class='user-avatar-link']//span[*[name()='svg'][contains(@class,'lexicon-icon-user')]]
    • Running assertLiferayErrors
    • Running assertJavaScriptErrors with parameters//span[@class='user-avatar-link']//span[*[name()='svg'][contains(@class,'lexicon-icon-user')]]
    • Running assertLiferayErrors
  • Running AssertVisible with locator1//*[contains(@class,'dropdown-menu') and contains(@class,'show')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class,'dropdown-menu') and contains(@class,'show')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[contains(@class,'dropdown-menu') and contains(@class,'show')]
    • Running assertVisible with parameters//*[contains(@class,'dropdown-menu') and contains(@class,'show')]
    • Running assertJavaScriptErrors with parameters//*[contains(@class,'dropdown-menu') and contains(@class,'show')]
    • Running assertLiferayErrors
  • Running ScrollWebElementIntoView with locator1//a[contains(@class,'dropdown-item')][contains(.,'Sign Out') or contains(.,'Salir')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//a[contains(@class,'dropdown-item')][contains(.,'Sign Out') or contains(.,'Salir')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//a[contains(@class,'dropdown-item')][contains(.,'Sign Out') or contains(.,'Salir')]
    • Running scrollWebElementIntoView with parameters//a[contains(@class,'dropdown-item')][contains(.,'Sign Out') or contains(.,'Salir')]
    • Running assertJavaScriptErrors with parameters//a[contains(@class,'dropdown-item')][contains(.,'Sign Out') or contains(.,'Salir')]
    • Running assertLiferayErrors
  • Running Click with locator1//a[contains(@class,'dropdown-item')][contains(.,'Sign Out') or contains(.,'Salir')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//a[contains(@class,'dropdown-item')][contains(.,'Sign Out') or contains(.,'Salir')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//a[contains(@class,'dropdown-item')][contains(.,'Sign Out') or contains(.,'Salir')]
    • Running mouseOver with parameters//a[contains(@class,'dropdown-item')][contains(.,'Sign Out') or contains(.,'Salir')]
    • Running click with parameters//a[contains(@class,'dropdown-item')][contains(.,'Sign Out') or contains(.,'Salir')]
    • Running assertJavaScriptErrors with parameters//a[contains(@class,'dropdown-item')][contains(.,'Sign Out') or contains(.,'Salir')]
    • Running assertLiferayErrors
  • Running post with parametersArg: ${curl}Return: {"agreedToTermsOfUse":true,"comments":"","companyId":"20099","contactId":"42845","createDate":1644269004192,"ctCollectionId":"0","defaultUser":false,"emailAddress":"userea@liferay.com","emailAddressVerified":false,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"userfn","googleUserId":"","graceLoginCount":0,"greeting":"Welcome userfn userln!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":null,"lastLoginIP":"","lastName":"userln","ldapServerId":"-1","lockout":false,"lockoutDate":null,"loginDate":null,"loginIP":"","middleName":"","modifiedDate":1644269016158,"mvccVersion":"4","openId":"","portraitId":"0","reminderQueryAnswer":"test","reminderQueryQuestion":"what-is-your-father's-middle-name","screenName":"usersn","status":0,"timeZoneId":"UTC","userId":"42844","uuid":"6e31b97b-b8f8-15f5-6c25-674b183e57dd"}Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {"agreedToTermsOfUse":true,"comments":"","companyId":"20099","contactId":"42845","createDate":1644269004192,"ctCollectionId":"0","defaultUser":false,"emailAddress":"userea@liferay.com","emailAddressVerified":false,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"userfn","googleUserId":"","graceLoginCount":0,"greeting":"Welcome userfn userln!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":null,"lastLoginIP":"","lastName":"userln","ldapServerId":"-1","lockout":false,"lockoutDate":null,"loginDate":null,"loginIP":"","middleName":"","modifiedDate":1644269016393,"mvccVersion":"5","openId":"","portraitId":"0","reminderQueryAnswer":"test","reminderQueryQuestion":"what-is-your-father's-middle-name","screenName":"usersn","status":0,"timeZoneId":"UTC","userId":"42844","uuid":"6e31b97b-b8f8-15f5-6c25-674b183e57dd"}Finished executing commands.
  • Running Open with locator1http://localhost:8080/web/guest?SM_USER=userea@liferay.com
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest?SM_USER=userea@liferay.com
    • Running assertLiferayErrors
    • Running selectWindow with parameters
    • Running selectFrame with parametersrelative=top
    • Running open with parametershttp://localhost:8080/web/guest?SM_USER=userea@liferay.com
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest?SM_USER=userea@liferay.com
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parametershttp://localhost:8080/web/guest?SM_USER=userea@liferay.com
    • Running assertLiferayErrors
  • Running IsElementPresent with locator1//h1[contains(.,'Your connection is not private')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//h1[contains(.,'Your connection is not private')]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//h1[contains(.,'Your connection is not private')]
  • Running IsElementPresent#pauseIsElementPresent with locator1//div[label[contains(.,'Password')]]/input | //div[label[contains(.,"parola d'ordine")]]/input | //div[label[contains(.,'Contraseña')]]/input | //div[label[contains(.,'パスワード')]]/input | //div[label[contains(.,'密码')]]/input | //div[contains(.,'Kennwort')]//input[@type='password']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[label[contains(.,'Password')]]/input | //div[label[contains(.,"parola d'ordine")]]/input | //div[label[contains(.,'Contraseña')]]/input | //div[label[contains(.,'パスワード')]]/input | //div[label[contains(.,'密码')]]/input | //div[contains(.,'Kennwort')]//input[@type='password']
    • Running assertLiferayErrors
    • Running pause with parameters1000
    • Running isElementPresent with parameters//div[label[contains(.,'Password')]]/input | //div[label[contains(.,"parola d'ordine")]]/input | //div[label[contains(.,'Contraseña')]]/input | //div[label[contains(.,'パスワード')]]/input | //div[label[contains(.,'密码')]]/input | //div[contains(.,'Kennwort')]//input[@type='password']
  • Running Type with locator1//input[contains(@id,'password1')] with value1test
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]test
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]test
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'password1')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//input[contains(@id,'password1')]test
    • Running waitForEditable with parameters//input[contains(@id,'password1')]
    • Running mouseOver with parameters//input[contains(@id,'password1')]
    • Running clickAt with parameters//input[contains(@id,'password1')]
    • Running pause with parameters1000
    • Running type with parameters//input[contains(@id,'password1')]test
    • Running pause with parameters1000
    • Running clickAt with parameters//input[contains(@id,'password1')]
    • Running pause with parameters1000
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'password1')]
    • Running assertLiferayErrors
  • Running Type with locator1//input[contains(@id,'password2')] with value1test
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]test
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]test
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'password2')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//input[contains(@id,'password2')]test
    • Running waitForEditable with parameters//input[contains(@id,'password2')]
    • Running mouseOver with parameters//input[contains(@id,'password2')]
    • Running clickAt with parameters//input[contains(@id,'password2')]
    • Running pause with parameters1000
    • Running type with parameters//input[contains(@id,'password2')]test
    • Running pause with parameters1000
    • Running clickAt with parameters//input[contains(@id,'password2')]
    • Running pause with parameters1000
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'password2')]
    • Running assertLiferayErrors
  • Running Click with locator1//button[@type='submit']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button[@type='submit']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//button[@type='submit']
    • Running mouseOver with parameters//button[@type='submit']
    • Running click with parameters//button[@type='submit']
    • Running assertJavaScriptErrors with parameters//button[@type='submit']
    • Running assertLiferayErrors
  • Running AssertElementNotPresent with locator1//div[label[contains(.,'Enter Again')]]/input
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[label[contains(.,'Enter Again')]]/input
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//div[label[contains(.,'Enter Again')]]/input
    • Running assertElementNotPresent with parameters//div[label[contains(.,'Enter Again')]]/input
    • Running assertJavaScriptErrors with parameters//div[label[contains(.,'Enter Again')]]/input
    • Running assertLiferayErrors
  • Running Pause with locator13000
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters3000
    • Running assertLiferayErrors
    • Running pause with parameters3000
  • Running IsElementPresent#pauseIsElementPresent with locator1//input[contains(@id,'reminderQueryAnswer')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'reminderQueryAnswer')]
    • Running assertLiferayErrors
    • Running pause with parameters1000
    • Running isElementPresent with parameters//input[contains(@id,'reminderQueryAnswer')]
  • Running IsElementNotPresent with locator1//span[@class='user-avatar-link']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//span[@class='user-avatar-link']
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//span[@class='user-avatar-link']
    • Running isNotVisible with parameters//span[@class='user-avatar-link']
  • Running WaitForLiferayEvent#initializeLiferayEventLog
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
  • Running IsElementNotPresent with locator1//*[@data-qa-id='productMenu']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='productMenu']
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//*[@data-qa-id='productMenu']
    • Running isNotVisible with parameters//*[@data-qa-id='productMenu']
  • Running IsElementNotPresent with locator1//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running isElementNotPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
  • Running IsElementPresent with locator1//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
  • Running Click with locator1//*[@data-qa-id='productMenu']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='productMenu']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[@data-qa-id='productMenu']
    • Running mouseOver with parameters//*[@data-qa-id='productMenu']
    • Running click with parameters//*[@data-qa-id='productMenu']
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='productMenu']
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertElementPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertLiferayErrors
  • Running AssertElementNotPresent with locator1//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertElementNotPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertLiferayErrors
  • Running IsElementPresent with locator1//*[not(self::div)][contains(@class,'btn')][normalize-space()='Back to Menu'][not(contains(@class,'navbar'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Back to Menu'][not(contains(@class,'navbar'))]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Back to Menu'][not(contains(@class,'navbar'))]
  • Running AssertVisible with locator1//*[@data-qa-id='productMenuBody']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='productMenuBody']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[@data-qa-id='productMenuBody']
    • Running assertVisible with parameters//*[@data-qa-id='productMenuBody']
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='productMenuBody']
    • Running assertLiferayErrors
  • Running IsElementNotPresent with locator1//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running isElementNotPresent with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
  • Running Click with locator1//div[contains(@class,'icon-sites')]//a
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'icon-sites')]//a
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'icon-sites')]//a
    • Running mouseOver with parameters//div[contains(@class,'icon-sites')]//a
    • Running click with parameters//div[contains(@class,'icon-sites')]//a
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'icon-sites')]//a
    • Running assertLiferayErrors
  • Running AssertVisible with locator1//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running assertVisible with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running assertLiferayErrors
  • Running SelectFrame with locator1//div[contains(@class,'modal-body')]/iframe
    • Running waitForJavaScriptNoError with parameters try { var eventValue = LFR_JS_EVENTS_LOG.getLastEvent("modalIframeLoaded").src; return eventValue.includes("dialog-iframe-popup"); } catch(err) { return false; } Event "modalIframeLoaded" with attribute "src" and value "dialog-iframe-popup" not fired.
    • Running verifyJavaScript with parameters try { var eventValue = LFR_JS_EVENTS_LOG.getLastEvent("modalIframeLoaded").src; return eventValue.includes("dialog-iframe-popup"); } catch(err) { return false; } Event "modalIframeLoaded" with attribute "src" and value "dialog-iframe-popup" not fired.
    • Running waitForVisible with parameters//div[contains(@class,'modal-body')]/iframe
    • Running mouseOver with parameters//div[contains(@class,'modal-body')]/iframe
    • Running selectFrame with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertLiferayErrors
  • Running Pause with locator13000
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters3000
    • Running assertLiferayErrors
    • Running pause with parameters3000
  • Running AssertClick with locator1//div[contains(@class,'navbar')]//a[normalize-space()='My Sites'] with value1My Sites
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]My Sites
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]My Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]My Sites
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]My Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]My Sites
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]My Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']My Sites
    • Running waitForTextCaseInsensitive with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']My Sites
    • Running assertTextCaseInsensitive with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']My Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertLiferayErrors
    • Running mouseOver with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running clickAt with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='My Sites']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='My Sites']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='My Sites']
    • Running assertElementPresent with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='My Sites']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='My Sites']
    • Running assertLiferayErrors
  • Running WaitForPageLoad
    • Running waitForJavaScriptNoError with parameters return document.readyState === "complete"; Page is still loading.
    • Running verifyJavaScript with parameters return document.readyState === "complete"; Page is still loading.
  • Running Click#mouseOverClick with locator1//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running mouseOver with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running waitForVisible with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running click with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running assertJavaScriptErrors with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running assertLiferayErrors
  • Running Click with locator1xpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running assertLiferayErrors
    • Running waitForVisible with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running mouseOver with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running click with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running assertJavaScriptErrors with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertElementPresent with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//button[contains(@type,'submit')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button[contains(@type,'submit')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//button[contains(@type,'submit')]
    • Running assertElementPresent with parameters//button[contains(@type,'submit')]
    • Running assertJavaScriptErrors with parameters//button[contains(@type,'submit')]
    • Running assertLiferayErrors
  • Running Type with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')] with value1Site B
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Site B
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Site B
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]Site B
    • Running waitForEditable with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running mouseOver with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running clickAt with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running pause with parameters1000
    • Running type with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]Site B
    • Running pause with parameters1000
    • Running clickAt with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running pause with parameters1000
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running KeyPress with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')] with value1\RETURN
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]\RETURN
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]\RETURN
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running mouseOver with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running keyPress with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]\RETURN
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running WaitForLiferayEvent#initializeLiferayEventLog
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
  • Running Pause with locator13000
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters3000
    • Running assertLiferayErrors
    • Running pause with parameters3000
  • Running IsElementPresent with locator1//*[@data-qa-id='cardsButton' and contains(@class,'active')]/span
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='cardsButton' and contains(@class,'active')]/span
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//*[@data-qa-id='cardsButton' and contains(@class,'active')]/span
  • Running AssertClick with locator1//*[@data-qa-id='row']//*[normalize-space(text())='Site B'] with value1Site B
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Site B
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Site B
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site B']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Site B
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Site B
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site B']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Site B
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Site B
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site B']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site B']Site B
    • Running waitForTextCaseInsensitive with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site B']Site B
    • Running assertTextCaseInsensitive with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site B']Site B
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site B']
    • Running assertLiferayErrors
    • Running mouseOver with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site B']
    • Running clickAt with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site B']
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site B']
    • Running assertLiferayErrors
  • Running SelectFrameTop
    • Running selectFrame with parametersrelative=top
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
  • Running AssertElementNotPresent with locator1//div[a[@aria-expanded='true']]//a[contains(@id,'Portlet') and @data-title='Custom Objects'] with value1Custom Objects
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Custom Objects
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Custom Objects
    • Running assertJavaScriptErrors with parameters//div[a[@aria-expanded='true']]//a[contains(@id,'Portlet') and @data-title='Custom Objects']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//div[a[@aria-expanded='true']]//a[contains(@id,'Portlet') and @data-title='Custom Objects']Custom Objects
    • Running assertElementNotPresent with parameters//div[a[@aria-expanded='true']]//a[contains(@id,'Portlet') and @data-title='Custom Objects']
    • Running assertJavaScriptErrors with parameters//div[a[@aria-expanded='true']]//a[contains(@id,'Portlet') and @data-title='Custom Objects']
    • Running assertLiferayErrors
  • Running IsElementNotPresent with locator1//*[@data-qa-id='productMenu']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='productMenu']
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//*[@data-qa-id='productMenu']
    • Running isNotVisible with parameters//*[@data-qa-id='productMenu']
  • Running IsElementNotPresent with locator1//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running isNotVisible with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
  • Running AssertElementPresent with locator1//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertElementPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertLiferayErrors
  • Running AssertElementNotPresent with locator1//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertElementNotPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertLiferayErrors
  • Running IsElementPresent with locator1//*[not(self::div)][contains(@class,'btn')][normalize-space()='Back to Menu'][not(contains(@class,'navbar'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Back to Menu'][not(contains(@class,'navbar'))]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Back to Menu'][not(contains(@class,'navbar'))]
  • Running AssertVisible with locator1//*[@data-qa-id='productMenuBody']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='productMenuBody']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[@data-qa-id='productMenuBody']
    • Running assertVisible with parameters//*[@data-qa-id='productMenuBody']
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='productMenuBody']
    • Running assertLiferayErrors
  • Running IsElementNotPresent with locator1//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running isElementNotPresent with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
  • Running Click with locator1//div[contains(@class,'icon-sites')]//a
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'icon-sites')]//a
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'icon-sites')]//a
    • Running mouseOver with parameters//div[contains(@class,'icon-sites')]//a
    • Running click with parameters//div[contains(@class,'icon-sites')]//a
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'icon-sites')]//a
    • Running assertLiferayErrors
  • Running AssertVisible with locator1//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running assertVisible with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-content')]//*[@class='modal-title']
    • Running assertLiferayErrors
  • Running SelectFrame with locator1//div[contains(@class,'modal-body')]/iframe
    • Running waitForJavaScriptNoError with parameters try { var eventValue = LFR_JS_EVENTS_LOG.getLastEvent("modalIframeLoaded").src; return eventValue.includes("dialog-iframe-popup"); } catch(err) { return false; } Event "modalIframeLoaded" with attribute "src" and value "dialog-iframe-popup" not fired.
    • Running verifyJavaScript with parameters try { var eventValue = LFR_JS_EVENTS_LOG.getLastEvent("modalIframeLoaded").src; return eventValue.includes("dialog-iframe-popup"); } catch(err) { return false; } Event "modalIframeLoaded" with attribute "src" and value "dialog-iframe-popup" not fired.
    • Running waitForVisible with parameters//div[contains(@class,'modal-body')]/iframe
    • Running mouseOver with parameters//div[contains(@class,'modal-body')]/iframe
    • Running selectFrame with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'modal-body')]/iframe
    • Running assertLiferayErrors
  • Running Pause with locator13000
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters3000
    • Running assertLiferayErrors
    • Running pause with parameters3000
  • Running AssertClick with locator1//div[contains(@class,'navbar')]//a[normalize-space()='My Sites'] with value1My Sites
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]My Sites
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]My Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]My Sites
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]My Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]My Sites
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]My Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']My Sites
    • Running waitForTextCaseInsensitive with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']My Sites
    • Running assertTextCaseInsensitive with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']My Sites
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertLiferayErrors
    • Running mouseOver with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running clickAt with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[normalize-space()='My Sites']
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='My Sites']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='My Sites']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='My Sites']
    • Running assertElementPresent with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='My Sites']
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'navbar')]//a[contains(@class,'active') and normalize-space()='My Sites']
    • Running assertLiferayErrors
  • Running WaitForPageLoad
    • Running waitForJavaScriptNoError with parameters return document.readyState === "complete"; Page is still loading.
    • Running verifyJavaScript with parameters return document.readyState === "complete"; Page is still loading.
  • Running Click#mouseOverClick with locator1//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running mouseOver with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running waitForVisible with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running click with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running assertJavaScriptErrors with parameters//ul[@class='navbar-nav'][2]//li[contains(@class,'nav-item')]//button[contains(@class,'dropdown-toggle') and contains(@class,'nav-link-monospaced')]
    • Running assertLiferayErrors
  • Running Click with locator1xpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running assertLiferayErrors
    • Running waitForVisible with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running mouseOver with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running click with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running assertJavaScriptErrors with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Table"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Table"]
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertElementPresent with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//button[contains(@type,'submit')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//button[contains(@type,'submit')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//button[contains(@type,'submit')]
    • Running assertElementPresent with parameters//button[contains(@type,'submit')]
    • Running assertJavaScriptErrors with parameters//button[contains(@type,'submit')]
    • Running assertLiferayErrors
  • Running Type with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')] with value1Site A
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Site A
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Site A
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]Site A
    • Running waitForEditable with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running mouseOver with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running clickAt with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running pause with parameters1000
    • Running type with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]Site A
    • Running pause with parameters1000
    • Running clickAt with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running pause with parameters1000
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running KeyPress with locator1//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')] with value1\RETURN
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]\RETURN
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]\RETURN
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
    • Running mouseOver with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running keyPress with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]\RETURN
    • Running assertJavaScriptErrors with parameters//input[contains(@title,'S') or contains(@title,'s')][contains(@title,'earch')] | //input[contains(@aria-label,'S') or contains(@title,'s')][contains(@aria-label,'earch')] | //input[contains(@name,'keywords')] | //input[(ancestor::header[@id='banner'])][contains(@data-qa-id,'searchInput')]
    • Running assertLiferayErrors
  • Running WaitForLiferayEvent#initializeLiferayEventLog
    • Running runScript with parameters if (typeof Liferay != "undefined") { const TRACKED_EVENTS = [ 'addPortlet', 'allPortletsReady', 'allUploadsComplete', 'beforeNavigate', 'beforeScreenFlip', 'closePortlet', 'dataLayoutConfigReady', 'destroyPortlet', 'editorAPIReady', 'endNavigate', 'form:registered', 'formNavigator:reveal', 'dropdownShow', 'entitySelectionRemoved', 'exitNavigation', 'hideNavigationMenu', 'initLayout', 'inputLocalized:localeChanged', 'modalIframeLoaded', 'noticeShow', 'noticeHide', 'popupReady', 'portletDragStart', 'portletMoved', 'portletReady', 'ratings:vote', 'screenActivate', 'screenDeactivate', 'screenFlip', 'screenLoad', 'search-container:registered', 'sessionExpired', 'showNavigationMenu', 'spaRequestTimeout', 'startNavigate', 'submitForm', 'tempFileRemoved', 'toggleControls', 'updatedLayout', ]; let __LFR_TRACKED_EVENTS__ = {}; Liferay.on(TRACKED_EVENTS, function(event){ { const eventLog = __LFR_TRACKED_EVENTS__[event.type] ? __LFR_TRACKED_EVENTS__[event.type].concat(event) : [event]; __LFR_TRACKED_EVENTS__[event.type] = eventLog }; }); function getLastEvent(eventName) { return __LFR_TRACKED_EVENTS__[eventName] ? __LFR_TRACKED_EVENTS__[eventName][ __LFR_TRACKED_EVENTS__[eventName].length - 1 ] : {}; }; function getLastEventDetails(eventName){ return getLastEvent(eventName).details[0]; }; window.LFR_JS_EVENTS_LOG = { getLastEvent:getLastEvent, getLastEventDetails:getLastEventDetails, }; }
  • Running Pause with locator13000
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters3000
    • Running assertLiferayErrors
    • Running pause with parameters3000
  • Running IsElementPresent with locator1//*[@data-qa-id='cardsButton' and contains(@class,'active')]/span
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='cardsButton' and contains(@class,'active')]/span
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//*[@data-qa-id='cardsButton' and contains(@class,'active')]/span
  • Running AssertClick with locator1//*[@data-qa-id='row']//*[normalize-space(text())='Site A'] with value1Site A
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Site A
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Site A
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site A']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Site A
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Site A
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site A']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Site A
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]Site A
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site A']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site A']Site A
    • Running waitForTextCaseInsensitive with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site A']Site A
    • Running assertTextCaseInsensitive with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site A']Site A
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site A']
    • Running assertLiferayErrors
    • Running mouseOver with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site A']
    • Running clickAt with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site A']
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='row']//*[normalize-space(text())='Site A']
    • Running assertLiferayErrors
  • Running SelectFrameTop
    • Running selectFrame with parametersrelative=top
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
  • Running IsElementNotPresent with locator1//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running isNotVisible with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
  • Running AssertElementPresent with locator1//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertElementPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'open') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'closed'))]
    • Running assertLiferayErrors
  • Running AssertElementNotPresent with locator1//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertElementNotPresent with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'sidenavSliderId') and contains(@class,'closed') and not(contains(@class,'sidenav-transition')) and not(contains(@class,'open'))]
    • Running assertLiferayErrors
  • Running IsElementPresent with locator1//*[not(self::div)][contains(@class,'btn')][normalize-space()='Back to Menu'][not(contains(@class,'navbar'))]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Back to Menu'][not(contains(@class,'navbar'))]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Back to Menu'][not(contains(@class,'navbar'))]
  • Running AssertVisible with locator1//*[@data-qa-id='productMenuBody']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='productMenuBody']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//*[@data-qa-id='productMenuBody']
    • Running assertVisible with parameters//*[@data-qa-id='productMenuBody']
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='productMenuBody']
    • Running assertLiferayErrors
  • Running IsElementPresent with locator1//a[@aria-expanded='false' and @data-qa-id='appGroup'][normalize-space(text())='Content & Data']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//a[@aria-expanded='false' and @data-qa-id='appGroup'][normalize-space(text())='Content & Data']
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//a[@aria-expanded='false' and @data-qa-id='appGroup'][normalize-space(text())='Content & Data']
  • Running AssertElementPresent with locator1//a[@aria-expanded='true' and @data-qa-id='appGroup'][normalize-space(text())='Content & Data']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//a[@aria-expanded='true' and @data-qa-id='appGroup'][normalize-space(text())='Content & Data']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//a[@aria-expanded='true' and @data-qa-id='appGroup'][normalize-space(text())='Content & Data']
    • Running assertElementPresent with parameters//a[@aria-expanded='true' and @data-qa-id='appGroup'][normalize-space(text())='Content & Data']
    • Running assertJavaScriptErrors with parameters//a[@aria-expanded='true' and @data-qa-id='appGroup'][normalize-space(text())='Content & Data']
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1//div[a[@aria-expanded='true']]//a[contains(@id,'Portlet') and @data-title='Custom Objects']
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]
    • Running isElementPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running waitForElementNotPresent with parameters//div[contains(@class,'lfr-notification-wrapper') and contains(@style,'height: 82px;')]
    • Running assertJavaScriptErrors with parameters//div[a[@aria-expanded='true']]//a[contains(@id,'Portlet') and @data-title='Custom Objects']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[a[@aria-expanded='true']]//a[contains(@id,'Portlet') and @data-title='Custom Objects']
    • Running assertElementPresent with parameters//div[a[@aria-expanded='true']]//a[contains(@id,'Portlet') and @data-title='Custom Objects']
    • Running assertJavaScriptErrors with parameters//div[a[@aria-expanded='true']]//a[contains(@id,'Portlet') and @data-title='Custom Objects']
    • Running assertLiferayErrors
  • LocalFile.ObjectPortlet#tear-down
  • Running delete with parametersArg: ${curl}Return: { "status" : "INTERNAL_SERVER_ERROR" }Finished executing commands.
  • LocalFile.ObjectPortlet#CanApplyPermissionOnlyToSpecificSiteWhenScopedBySite

    • 8
      setUp {
      • 9
        TestCase.setUpPortalInstance();
        • 113
          var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
        • 114
          var testPortalInstance = PropsUtil.get("test.portal.instance");
        • 116
          if (!(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
          • 117
            HeadlessPortalInstanceAPI.cleanAllPortalInstances(authenticationMethod = "${authenticationMethod}");
            • 107
              var portalInstanceJson = HeadlessPortalInstanceAPI._getPortalInstances(authenticationMethod = "${authenticationMethod}");
              • 5
                var portalURL = JSONCompany.getDefaultPortalURL();
                • 40
                  var portalURL = PropsUtil.get("default.portal.url");
                • 42
                  if (!(contains("${portalURL}", "http"))) {
                  • 43
                    var portalURL = "http://${portalURL}";
                  }
                • 46
                  return "${portalURL}";
              • 7
                if ("${authenticationMethod}" == "By Screen Name") {
                • 8
                  var userName = "test";
                }
              • 10
                else {
                • 11
                  var userName = "test@liferay.com";
                }
              • 14
                var curl = ''' ${portalURL}/o/headless-portal-instances/v1.0/portal-instances \ -u ${userName}:test \ -H Content-Type: application/json ''';
              • 19
                var json = JSONCurlUtil.get("${curl}");
              • 21
                return "${json}";
            • 109
              var portalInstanceIds = JSONUtil.getWithJSONPath("${portalInstanceJson}", "$.items..portalInstanceId");
            • 111
              for (var portalInstanceId : list "${portalInstanceIds}") {
              • 112
                if ("${portalInstanceId}" != "liferay.com") {
                • 113
                  HeadlessPortalInstanceAPI.deletePortalInstance( authenticationMethod = "${authenticationMethod}", portalInstanceId = "${portalInstanceId}");
                  • 122
                    Variables.assertDefined(parameterList = "${portalInstanceId}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 124
                    var portalURL = JSONCompany.getDefaultPortalURL();
                    • 40
                      var portalURL = PropsUtil.get("default.portal.url");
                    • 42
                      if (!(contains("${portalURL}", "http"))) {
                      • 43
                        var portalURL = "http://${portalURL}";
                      }
                    • 46
                      return "${portalURL}";
                  • 126
                    var portalInstanceId = StringUtil.replace("${portalInstanceId}", " ", "%20");
                  • 128
                    if ("${authenticationMethod}" == "By Screen Name") {
                    • 129
                      var userName = "test";
                    }
                  • 131
                    else {
                    • 132
                      var userName = "test@liferay.com";
                    }
                  • 135
                    var curl = ''' ${portalURL}/o/headless-portal-instances/v1.0/portal-instances/${portalInstanceId} \ -u ${userName}:test \ -H Content-Type: application/json ''';
                  • 141
                    JSONCurlUtil.delete("${curl}");
                }
              }
          • 119
            if ("${testPortalInstance}" == "true") {
            • 120
              SignIn.signInPortalInstanceSetUp();
              • 3
                var userEmailAddress = "test@liferay.com";
              • 4
                var userPassword = "test";
              • 5
                var userPasswordReminderAnswer = "test";
              • 48
                var portalURL = PropsUtil.get("portal.url");
              • 49
                var portalURL = StringUtil.replace("${portalURL}", "http://", "");
              • 50
                var portalURL = StringUtil.replace("${portalURL}", ":8080", "");
              • 52
                HeadlessPortalInstanceAPI.addPortalInstance( authenticationMethod = "${authenticationMethod}", domain = "liferay.com", portalInstanceId = "${portalURL}", virtualHost = "${portalURL}");
                • 26
                  Variables.assertDefined(parameterList = "${domain},${virtualHost},${portalInstanceId}");
                  • 5
                    if (!(isSet(parameterList))) {
                    • 6
                      fail("Please define a parameter list in 'parameterList'");
                    }
                  • 9
                    for (var parameter : list "${parameterList}") {
                    • 13
                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                    • 17
                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                      • 18
                        fail("Please set '${parameter}'");
                      }
                    }
                • 28
                  var portalURL = JSONCompany.getDefaultPortalURL();
                  • 40
                    var portalURL = PropsUtil.get("default.portal.url");
                  • 42
                    if (!(contains("${portalURL}", "http"))) {
                    • 43
                      var portalURL = "http://${portalURL}";
                    }
                  • 46
                    return "${portalURL}";
                • 30
                  var parameters = JSONUtil2._addJSONObject( json = "{}", key = "domain", value = ""${domain}"");
                  • 67
                    if (!(isSet(json)) || !(isSet(key)) || !(isSet(value))) {
                    • 68
                      fail("Error, 'JSON', 'key', and 'value' must all be set");
                    }
                  • 71
                    var bool = JSONUtil2._isJSONObjectPresent( json = "${json}", key = "${key}");
                    • 132
                      var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*", "1");
                    • 134
                      if ("${temp}" == "${key}") {
                      • 135
                        return "TRUE";
                      }
                    • 137
                      else {
                      • 138
                        return "FALSE";
                      }
                  • 75
                    if ("${bool}" == "TRUE") {
                    • 76
                      fail("Error, '${key}' already exists in the JSON");
                    }
                  • 79
                    if ("${json}" == "{}") {
                    • 80
                      var json = '''{"${key}" : ${value}}''';
                    }
                  • 82
                    else {
                    • 83
                      var json = StringUtil.regexReplaceFirst("${json}", "(.*)\}", "$1, \"${key}\": ${value}}");
                    }
                  • 86
                    return "${json}";
                • 35
                  var parameters = JSONUtil2._addJSONObject( json = "${parameters}", key = "virtualHost", value = ""${virtualHost}"");
                  • 67
                    if (!(isSet(json)) || !(isSet(key)) || !(isSet(value))) {
                    • 68
                      fail("Error, 'JSON', 'key', and 'value' must all be set");
                    }
                  • 71
                    var bool = JSONUtil2._isJSONObjectPresent( json = "${json}", key = "${key}");
                    • 132
                      var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*", "1");
                    • 134
                      if ("${temp}" == "${key}") {
                      • 135
                        return "TRUE";
                      }
                    • 137
                      else {
                      • 138
                        return "FALSE";
                      }
                  • 75
                    if ("${bool}" == "TRUE") {
                    • 76
                      fail("Error, '${key}' already exists in the JSON");
                    }
                  • 79
                    if ("${json}" == "{}") {
                    • 80
                      var json = '''{"${key}" : ${value}}''';
                    }
                  • 82
                    else {
                    • 83
                      var json = StringUtil.regexReplaceFirst("${json}", "(.*)\}", "$1, \"${key}\": ${value}}");
                    }
                  • 86
                    return "${json}";
                • 40
                  var parameters = JSONUtil2._addJSONObject( json = "${parameters}", key = "portalInstanceId", value = ""${portalInstanceId}"");
                  • 67
                    if (!(isSet(json)) || !(isSet(key)) || !(isSet(value))) {
                    • 68
                      fail("Error, 'JSON', 'key', and 'value' must all be set");
                    }
                  • 71
                    var bool = JSONUtil2._isJSONObjectPresent( json = "${json}", key = "${key}");
                    • 132
                      var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*", "1");
                    • 134
                      if ("${temp}" == "${key}") {
                      • 135
                        return "TRUE";
                      }
                    • 137
                      else {
                      • 138
                        return "FALSE";
                      }
                  • 75
                    if ("${bool}" == "TRUE") {
                    • 76
                      fail("Error, '${key}' already exists in the JSON");
                    }
                  • 79
                    if ("${json}" == "{}") {
                    • 80
                      var json = '''{"${key}" : ${value}}''';
                    }
                  • 82
                    else {
                    • 83
                      var json = StringUtil.regexReplaceFirst("${json}", "(.*)\}", "$1, \"${key}\": ${value}}");
                    }
                  • 86
                    return "${json}";
                • 45
                  if ("${authenticationMethod}" == "By Screen Name") {
                  • 46
                    var userName = "test";
                  }
                • 48
                  else {
                  • 49
                    var userName = "test@liferay.com";
                  }
                • 52
                  var curl = ''' ${portalURL}/o/headless-portal-instances/v1.0/portal-instances \ -u ${userName}:test \ -d ${parameters} \ -H Content-Type: application/json ''';
                • 59
                  JSONCurlUtil.post("${curl}");
            }
          }
      • 11
        User.firstLoginPG();
        • 3
          var password = "test";
        • 4
          var userEmailAddress = "test@liferay.com";
        • 1932
          if (isSet(virtualHostsURL)) {
          • 1933
            Navigator.openSpecificURL(url = "${virtualHostsURL}");
            • 295
              Open(locator1 = "${url}");
            • 297
              Alert.confirmSecurity();
              • 16
                if (IsElementPresent(key_title = "Your connection is not private", locator1 = "Header#H1_TITLE")) {
                • 17
                  Click(locator1 = "Button#ADVANCED");
                • 19
                  AssertElementPresent( key_text = "Proceed to localhost", locator1 = "Link#ANY");
                • 23
                  Click( key_text = "Proceed to localhost (unsafe)", locator1 = "Link#ANY");
                }
          }
        • 1935
          else {
          • 1936
            Navigator.openURL();
            • 346
              WaitForSPARefresh();
            • 348
              var baseURL = "${baseURL}";
            • 350
              if (!(isSet(baseURL))) {
              • 351
                var baseURL = PropsUtil.get("portal.url");
              }
            • 354
              Open(locator1 = "${baseURL}/web/guest/home");
          }
        • 1939
          UserBar.signOut();
          • 34
            if (IsElementNotPresent(locator1 = "UserBar#USER_SIGN_IN")) {
            • 35
              UserBar.gotoDropdown();
              • 4
                if (IsElementPresent(locator1 = "UserBar#USER_AVATAR_PORTRAIT")) {
                • 5
                  Click.waitForPersonalMenuJSClick(locator1 = "UserBar#USER_AVATAR_PORTRAIT");
                }
              • 7
                else if (IsElementPresent(locator1 = "UserBar#USER_AVATAR_TOGGLE")) {
                • 8
                  Click.waitForMenuToggleJSClick(locator1 = "UserBar#USER_AVATAR_TOGGLE");
                }
              • 10
                else {
                • 11
                  Click.waitForPersonalMenuJSClick(locator1 = "UserBar#USER_AVATAR_ICON");
                }
              • 14
                AssertVisible(locator1 = "UserBar#USER_AVATAR_DROPDOWN_PORTAL_OPEN");
            • 37
              ScrollWebElementIntoView(locator1 = "UserBar#USER_AVATAR_DROPDOWN_SIGNOUT");
            • 39
              Click(locator1 = "UserBar#USER_AVATAR_DROPDOWN_SIGNOUT");
            }
        • 1941
          JSONUser.agreeToTermsAndAnswerReminderQuery( portalURL = "${virtualHostsURL}", userEmailAddress = "${userEmailAddress}");
          • 172
            Variables.assertDefined(parameterList = "${userEmailAddress}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 174
            var portalInstanceName = JSONUserSetter.setPortalInstanceName(portalURL = "${portalURL}");
            • 37
              if (isSet(portalURL)) {
              • 38
                var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                • 72
                  Variables.assertDefined(parameterList = "${portalURL}");
                  • 5
                    if (!(isSet(parameterList))) {
                    • 6
                      fail("Please define a parameter list in 'parameterList'");
                    }
                  • 9
                    for (var parameter : list "${parameterList}") {
                    • 13
                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                    • 17
                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                      • 18
                        fail("Please set '${parameter}'");
                      }
                    }
                • 74
                  var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                • 75
                  var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                • 77
                  return "${portalInstanceName}";
              }
            • 41
              return "${portalInstanceName}";
          • 176
            var userId = JSONUserSetter.setUserId( portalInstanceName = "${portalInstanceName}", userEmailAddress = "${userEmailAddress}");
            • 92
              Variables.assertDefined(parameterList = "${userEmailAddress}");
              • 5
                if (!(isSet(parameterList))) {
                • 6
                  fail("Please define a parameter list in 'parameterList'");
                }
              • 9
                for (var parameter : list "${parameterList}") {
                • 13
                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                • 17
                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                  • 18
                    fail("Please set '${parameter}'");
                  }
                }
            • 94
              var userId = JSONUserAPI._getUserIdByEmailAddress( creatorEmailAddress = "${creatorEmailAddress}", creatorPassword = "${creatorPassword}", portalInstanceName = "${portalInstanceName}", userEmailAddress = "${userEmailAddress}");
              • 209
                Variables.assertDefined(parameterList = "${userEmailAddress}");
                • 5
                  if (!(isSet(parameterList))) {
                  • 6
                    fail("Please define a parameter list in 'parameterList'");
                  }
                • 9
                  for (var parameter : list "${parameterList}") {
                  • 13
                    var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                  • 17
                    if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                    • 18
                      fail("Please set '${parameter}'");
                    }
                  }
              • 211
                var companyId = JSONCompany.getCompanyId( creatorEmailAddress = "${creatorEmailAddress}", creatorPassword = "${creatorPassword}", portalInstanceName = "${portalInstanceName}");
                • 4
                  if (!(isSet(portalInstanceName))) {
                  • 5
                    var portalInstanceName = JSONCompany.getPortalInstanceName();
                    • 50
                      var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                    • 51
                      var testPortalInstance = PropsUtil.get("test.portal.instance");
                    • 53
                      if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                      • 54
                        var portalURL = JSONCompany.getPortalURL();
                        • 66
                          var portalURL = PropsUtil.get("portal.url");
                        • 68
                          return "${portalURL}";
                      • 56
                        var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                        • 72
                          Variables.assertDefined(parameterList = "${portalURL}");
                          • 5
                            if (!(isSet(parameterList))) {
                            • 6
                              fail("Please define a parameter list in 'parameterList'");
                            }
                          • 9
                            for (var parameter : list "${parameterList}") {
                            • 13
                              var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                            • 17
                              if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                              • 18
                                fail("Please set '${parameter}'");
                              }
                            }
                        • 74
                          var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                        • 75
                          var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                        • 77
                          return "${portalInstanceName}";
                      • 58
                        return "${portalInstanceName}";
                      }
                    • 60
                      else {
                      • 61
                        return "localhost";
                      }
                  }
                • 8
                  if (!(isSet(portalURL))) {
                  • 9
                    var portalURL = JSONCompany.getPortalURL();
                    • 66
                      var portalURL = PropsUtil.get("portal.url");
                    • 68
                      return "${portalURL}";
                  }
                • 12
                  if (!(isSet(creatorEmailAddress))) {
                  • 13
                    if ("${authenticationMethod}" == "By Screen Name") {
                    • 14
                      if (!(isSet(userScreenName))) {
                      • 15
                        var creatorEmailAddress = "test";
                      }
                    • 17
                      else {
                      • 18
                        var creatorEmailAddress = "${userScreenName}";
                      }
                    }
                  • 21
                    else {
                    • 22
                      var creatorEmailAddress = "test@liferay.com";
                    }
                  }
                • 26
                  if (!(isSet(creatorPassword))) {
                  • 27
                    var creatorPassword = "test";
                  }
                • 30
                  var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                • 34
                  var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                • 36
                  return "${companyId}";
              • 216
                if (isSet(specificURL)) {
                • 217
                  var portalURL = "${specificURL}";
                }
              • 219
                else {
                • 220
                  var portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                }
              • 223
                if (!(isSet(creatorEmailAddress))) {
                • 224
                  var creatorEmailAddress = "test@liferay.com";
                }
              • 227
                if (!(isSet(creatorPassword))) {
                • 228
                  var creatorPassword = "test";
                }
              • 231
                var curl = ''' ${portalURL}/api/jsonws/user/get-user-by-email-address/company-id/${companyId}/email-address/${userEmailAddress} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
              • 235
                var userId = JSONCurlUtil.get("${curl}", "$['userId']");
              • 237
                return "${userId}";
            • 100
              return "${userId}";
          • 180
            JSONUserAPI._agreeToTermsAndAnswerReminderQuery(userId = "${userId}");
            • 89
              Variables.assertDefined(parameterList = "${userId}");
              • 5
                if (!(isSet(parameterList))) {
                • 6
                  fail("Please define a parameter list in 'parameterList'");
                }
              • 9
                for (var parameter : list "${parameterList}") {
                • 13
                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                • 17
                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                  • 18
                    fail("Please set '${parameter}'");
                  }
                }
            • 91
              if (isSet(specificURL)) {
              • 92
                var portalURL = "${specificURL}";
              }
            • 94
              else {
              • 95
                var portalURL = JSONCompany.getPortalURL();
                • 66
                  var portalURL = PropsUtil.get("portal.url");
                • 68
                  return "${portalURL}";
              }
            • 98
              var curl = ''' ${portalURL}/api/jsonws/user/update-agreed-to-terms-of-use/user-id/${userId}/agreed-to-terms-of-use/true \ -u test@liferay.com:test ''';
            • 103
              com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
            • 105
              var curl = ''' ${portalURL}/api/jsonws/user/update-reminder-query/user-id/${userId}/question/what-is-your-father%27s-middle-name/answer/test \ -u test@liferay.com:test ''';
            • 110
              com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
        • 1945
          if (isSet(virtualHostsURL)) {
          • 1946
            Navigator.openSpecificURL(url = "${virtualHostsURL}/web/guest?SM_USER=${userEmailAddress}");
            • 295
              Open(locator1 = "${url}");
            • 297
              Alert.confirmSecurity();
              • 16
                if (IsElementPresent(key_title = "Your connection is not private", locator1 = "Header#H1_TITLE")) {
                • 17
                  Click(locator1 = "Button#ADVANCED");
                • 19
                  AssertElementPresent( key_text = "Proceed to localhost", locator1 = "Link#ANY");
                • 23
                  Click( key_text = "Proceed to localhost (unsafe)", locator1 = "Link#ANY");
                }
          }
        • 1948
          else {
          • 1949
            var baseURL = PropsUtil.get("portal.url");
          • 1951
            Navigator.openSpecificURL(url = "${baseURL}/web/guest?SM_USER=${userEmailAddress}");
            • 295
              Open(locator1 = "${url}");
            • 297
              Alert.confirmSecurity();
              • 16
                if (IsElementPresent(key_title = "Your connection is not private", locator1 = "Header#H1_TITLE")) {
                • 17
                  Click(locator1 = "Button#ADVANCED");
                • 19
                  AssertElementPresent( key_text = "Proceed to localhost", locator1 = "Link#ANY");
                • 23
                  Click( key_text = "Proceed to localhost (unsafe)", locator1 = "Link#ANY");
                }
          }
        • 1956
          User.resetPassword( resetPassword = "${resetPassword}", setupWizardEnabled = "${setupWizardEnabled}", syntaxCheckingEnabled = "${syntaxCheckingEnabled}");
          • 3
            var password = "test";
          • 4
            var userEmailAddress = "test@liferay.com";
          • 2468
            if (IsElementPresent.pauseIsElementPresent(locator1 = "TextInput#PASSWORD")) {
            • 2469
              if ("${syntaxCheckingEnabled}" == "true") {
              • 2470
                Type( locator1 = "TextInput#PASSWORD_1", value1 = "${resetPassword}");
              • 2474
                Type( locator1 = "TextInput#PASSWORD_2", value1 = "${resetPassword}");
              }
            • 2478
              else {
              • 2479
                if ("${setupWizardEnabled}" == "true") {
                • 2480
                  Type( locator1 = "TextInput#PASSWORD_1", value1 = "test2");
                • 2484
                  Type( locator1 = "TextInput#PASSWORD_2", value1 = "test2");
                }
              • 2488
                else {
                • 2489
                  Type( locator1 = "TextInput#PASSWORD_1", value1 = "test");
                • 2493
                  Type( locator1 = "TextInput#PASSWORD_2", value1 = "test");
                }
              }
            • 2499
              Button.clickSubmitButton();
              • 122
                Click(locator1 = "Button#SUBMIT");
            • 2501
              AssertElementNotPresent(locator1 = "TextInput#ENTER_AGAIN");
            }
        • 1961
          User.answerPasswordReminder();
          • 3
            var password = "test";
          • 4
            var userEmailAddress = "test@liferay.com";
          • 746
            Pause(locator1 = "3000");
          • 748
            if (IsElementPresent.pauseIsElementPresent(locator1 = "TextInput#REMINDER_QUERY")) {
            • 749
              Type( locator1 = "TextInput#REMINDER_QUERY", value1 = "test");
            • 753
              Click(locator1 = "Button#SUBMIT");
            }
        • 1963
          if (IsElementNotPresent(locator1 = "UserBar#USER_AVATAR_IMAGE")) {
          • 1964
            takeScreenshot();
          • 1966
            echo("URL login failed, falling back to UI login.");
          • 1968
            User.firstLoginUI( idpName = "${idpName}", password = "${password}", rememberMeChecked = "${rememberMeChecked}", specificURL = "${virtualHostsURL}", userEmailAddress = "${userEmailAddress}", userScreenName = "${userScreenName}");
            • 3
              var password = "test";
            • 4
              var userEmailAddress = "test@liferay.com";
            • 1983
              if (isSet(specificURL)) {
              • 1984
                Navigator.openSpecificURL(url = "${specificURL}");
                • 295
                  Open(locator1 = "${url}");
                • 297
                  Alert.confirmSecurity();
                  • 16
                    if (IsElementPresent(key_title = "Your connection is not private", locator1 = "Header#H1_TITLE")) {
                    • 17
                      Click(locator1 = "Button#ADVANCED");
                    • 19
                      AssertElementPresent( key_text = "Proceed to localhost", locator1 = "Link#ANY");
                    • 23
                      Click( key_text = "Proceed to localhost (unsafe)", locator1 = "Link#ANY");
                    }
              }
            • 1986
              else {
              • 1987
                Navigator.openURL();
                • 346
                  WaitForSPARefresh();
                • 348
                  var baseURL = "${baseURL}";
                • 350
                  if (!(isSet(baseURL))) {
                  • 351
                    var baseURL = PropsUtil.get("portal.url");
                  }
                • 354
                  Open(locator1 = "${baseURL}/web/guest/home");
              }
            • 1990
              User._clickSignInLink( idpName = "${idpName}", localization = "${localization}", samlMultiIdPs = "${samlMultiIdPs}");
              • 3
                var password = "test";
              • 4
                var userEmailAddress = "test@liferay.com";
              • 13
                var localizedSignIn = User._getSignInText(localization = "${localization}");
                • 3
                  var password = "test";
                • 4
                  var userEmailAddress = "test@liferay.com";
                • 42
                  if ("${localization}" == "JA") {
                  • 43
                    var localizedSignIn = "ログイン";
                  }
                • 45
                  else if ("${localization}" == "ZH") {
                  • 46
                    var localizedSignIn = "登录";
                  }
                • 48
                  else if ("${localization}" == "IT") {
                  • 49
                    var localizedSignIn = "Accedi";
                  }
                • 51
                  else if ("${localization}" == "ES") {
                  • 52
                    var localizedSignIn = "Acceder";
                  }
                • 54
                  else {
                  • 55
                    var localizedSignIn = "Sign In";
                  }
                • 58
                  return "${localizedSignIn}";
              • 15
                if (IsElementNotPresent(locator1 = "TextInput#EMAIL_ADDRESS")) {
                • 16
                  if (isSet(localization)) {
                  • 17
                    AssertClick( locator1 = "UserBar#USER_SIGN_IN", value1 = "${localizedSignIn}");
                  }
                • 21
                  else if (IsElementPresent(locator1 = "UserBar#USER_SIGN_IN")) {
                  • 22
                    AssertClick( locator1 = "UserBar#USER_SIGN_IN", value1 = "Sign In");
                  • 26
                    if ("${samlMultiIdPs}" == "true") {
                    • 27
                      Select( key_fieldLabel = "Identity Provider", locator1 = "Select#GENERIC_SELECT_FIELD", value1 = "${idpName}");
                    • 32
                      Button.click(button = "Sign In");
                      • 4
                        Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
                    }
                  }
                • 35
                  else if (IsElementPresent(key_text = "Sign In", locator1 = "Button#ANY")) {
                  • 36
                    Button.click(button = "Sign In");
                    • 4
                      Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
                  }
                }
            • 1995
              if ("${authenticationMethod}" == "By Screen Name") {
              • 1996
                Type( locator1 = "TextInput#SCREEN_NAME", value1 = "${userScreenName}");
              }
            • 2000
              else if ("${authenticationMethod}" == "By User ID") {
              • 2001
                Type.typePause( key_text = "ID", locator1 = "TextInput#ANY", value1 = "${userId}");
              }
            • 2006
              else {
              • 2007
                Type.typePause( locator1 = "TextInput#EMAIL_ADDRESS", value1 = "${userEmailAddress}");
              }
            • 2012
              Type.typePause( locator1 = "TextInput#PASSWORD", value1 = "${password}");
            • 2016
              if (isSet(rememberMeChecked) && ("${rememberMeChecked}" == "true")) {
              • 2017
                Check(locator1 = "Checkbox#REMEMBER_ME");
              }
            • 2020
              User._clickSignInButton(localization = "${localization}");
              • 3
                var password = "test";
              • 4
                var userEmailAddress = "test@liferay.com";
              • 7
                var localizedSignIn = User._getSignInText(localization = "${localization}");
                • 3
                  var password = "test";
                • 4
                  var userEmailAddress = "test@liferay.com";
                • 42
                  if ("${localization}" == "JA") {
                  • 43
                    var localizedSignIn = "ログイン";
                  }
                • 45
                  else if ("${localization}" == "ZH") {
                  • 46
                    var localizedSignIn = "登录";
                  }
                • 48
                  else if ("${localization}" == "IT") {
                  • 49
                    var localizedSignIn = "Accedi";
                  }
                • 51
                  else if ("${localization}" == "ES") {
                  • 52
                    var localizedSignIn = "Acceder";
                  }
                • 54
                  else {
                  • 55
                    var localizedSignIn = "Sign In";
                  }
                • 58
                  return "${localizedSignIn}";
              • 9
                Button.click(button = "${localizedSignIn}");
                • 4
                  Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
            • 2022
              if (isSet(localizedAgree)) {
              • 2023
                User.acceptEndUserLicenseAgreementLocalized(localizedAgree = "${localizedAgree}");
                • 3
                  var password = "test";
                • 4
                  var userEmailAddress = "test@liferay.com";
                • 78
                  var key_localizedAgree = "${localizedAgree}";
                • 80
                  if (IsElementPresent(locator1 = "Button#I_AGREE_LOCALIZED")) {
                  • 81
                    AssertClick( locator1 = "Button#I_AGREE_LOCALIZED", value1 = "${localizedAgree}");
                  • 85
                    AssertElementNotPresent(locator1 = "Button#I_AGREE_LOCALIZED");
                  }
              }
            • 2025
              else if (IsElementPresent(locator1 = "Button#I_AGREE")) {
              • 2026
                SignIn.agreeToTermsOfUse();
                • 3
                  var userEmailAddress = "test@liferay.com";
                • 4
                  var userPassword = "test";
                • 5
                  var userPasswordReminderAnswer = "test";
                • 24
                  AssertClick( locator1 = "Button#I_AGREE", value1 = "I Agree");
                • 28
                  AssertElementNotPresent(locator1 = "Button#I_AGREE");
              }
            • 2029
              if (isSet(localizedAnswer)) {
              • 2030
                User.answerPasswordReminderLocalized( localizedAnswer = "${localizedAnswer}", localizedSaveButton = "${localizedSaveButton}");
                • 3
                  var password = "test";
                • 4
                  var userEmailAddress = "test@liferay.com";
                • 758
                  Pause(locator1 = "3000");
                • 760
                  var key_localizedAnswer = "${localizedAnswer}";
                • 762
                  if (IsElementPresent.pauseIsElementPresent(locator1 = "TextInput#ANSWER_LOCALIZED")) {
                  • 763
                    Type( locator1 = "TextInput#ANSWER_LOCALIZED", value1 = "test");
                  • 767
                    Button.click(button = "${localizedSaveButton}");
                    • 4
                      Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
                  • 769
                    Button.viewNotPresent(button = "${localizedSaveButton}");
                    • 142
                      AssertElementNotPresent( key_text = "${button}", locator1 = "Button#ANY");
                  }
              }
            • 2034
              else if (IsElementPresent(locator1 = "Select#QUESTION")) {
              • 2035
                SignIn.setPasswordReminder();
                • 3
                  var userEmailAddress = "test@liferay.com";
                • 4
                  var userPassword = "test";
                • 5
                  var userPasswordReminderAnswer = "test";
                • 33
                  Type( locator1 = "TextInput#ANSWER", value1 = "${userPasswordReminderAnswer}");
                • 37
                  Button.clickSave();
                  • 102
                    Button.click(button = "Save");
                    • 4
                      Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
                  • 104
                    WaitForLiferayEvent.initializeLiferayEventLog();
              }
            • 2038
              WaitForLiferayEvent.initializeLiferayEventLog();
          }
        • 1976
          else {
          • 1977
            WaitForLiferayEvent.initializeLiferayEventLog();
          }
      }
    • 586
      test CanApplyPermissionOnlyToSpecificSiteWhenScopedBySite {
      • 584
        @description = "LPS-135390 - Verify it is possible to apply a permission only to a specific site when an Object is scoped by Site"
      • 587
        ObjectAdmin.addObjectViaAPI( labelName = "Custom Object", objectName = "CustomObject", panelCategoryKey = "site_administration.content", pluralLabelName = "Custom Objects", scope = "site");
        • 263
          JSONObject.addObject( labelName = "${labelName}", objectName = "${objectName}", panelCategoryKey = "${panelCategoryKey}", pluralLabelName = "${pluralLabelName}", scope = "${scope}", userEmailAddress = "${userEmailAddress}", userPassword = "${userPassword}");
          • 5
            var portalURL = JSONCompany.getPortalURL();
            • 66
              var portalURL = PropsUtil.get("portal.url");
            • 68
              return "${portalURL}";
          • 7
            if (!(isSet(userEmailAddress))) {
            • 8
              var userEmailAddress = "test@liferay.com";
            }
          • 11
            if (!(isSet(userPassword))) {
            • 12
              var userPassword = "test";
            }
          • 15
            if (!(isSet(panelCategoryKey))) {
            • 16
              var panelCategoryKey = "control_panel.object";
            }
          • 19
            if (!(isSet(scope))) {
            • 20
              var scope = "company";
            }
          • 23
            var curl = ''' ${portalURL}/o/object-admin/v1.0/object-definitions \ -H 'Content-Type: application/json' \ -u ${userEmailAddress}:${userPassword} \ -d '{ "label": { "en_US": "${labelName}" }, "name": "${objectName}", "objectFields": [], "panelCategoryKey": "${panelCategoryKey}", "pluralLabel": { "en_US": "${pluralLabelName}" }, "scope": "${scope}" }' ''';
          • 41
            JSONCurlUtil.post("${curl}");
      • 594
        ObjectAdmin.addObjectFieldViaAPI( fieldLabelName = "Custom Field", fieldName = "customObjectField", fieldType = "String", isRequired = "false", objectName = "CustomObject");
        • 102
          JSONObject.addObjectField( fieldLabelName = "${fieldLabelName}", fieldName = "${fieldName}", fieldType = "${fieldType}", indexed = "${indexed}", indexedAsKeyword = "${indexedAsKeyword}", isRequired = "${isRequired}", objectName = "${objectName}", picklistName = "${picklistName}", userEmailAddress = "${userEmailAddress}", userPassword = "${userPassword}");
          • 46
            var portalURL = JSONCompany.getPortalURL();
            • 66
              var portalURL = PropsUtil.get("portal.url");
            • 68
              return "${portalURL}";
          • 48
            var objectId = JSONObject.getObjectId( objectName = "${objectName}", userEmailAddress = "${userEmailAddress}", userPassword = "${userPassword}");
            • 448
              var portalURL = JSONCompany.getPortalURL();
              • 66
                var portalURL = PropsUtil.get("portal.url");
              • 68
                return "${portalURL}";
            • 450
              if (!(isSet(userEmailAddress))) {
              • 451
                var userEmailAddress = "test@liferay.com";
              }
            • 454
              if (!(isSet(userPassword))) {
              • 455
                var userPassword = "test";
              }
            • 458
              var curl = ''' ${portalURL}/o/object-admin/v1.0/object-definitions \ -u ${userEmailAddress}:${userPassword} ''';
            • 462
              var objectId = JSONCurlUtil.get("${curl}", "$.items[?(@['name'] == '${objectName}')]['id']");
            • 464
              return "${objectId}";
          • 53
            if (!(isSet(userEmailAddress))) {
            • 54
              var userEmailAddress = "test@liferay.com";
            }
          • 57
            if (!(isSet(userPassword))) {
            • 58
              var userPassword = "test";
            }
          • 61
            if (!(isSet(picklistName))) {
            • 62
              var picklistId = "0";
            }
          • 64
            else {
            • 65
              var picklistId = JSONObject.getPicklistId( picklistName = "${picklistName}", userEmailAddress = "${userEmailAddress}", userPassword = "${userPassword}");
              • 468
                var portalURL = JSONCompany.getPortalURL();
                • 66
                  var portalURL = PropsUtil.get("portal.url");
                • 68
                  return "${portalURL}";
              • 470
                if (!(isSet(userEmailAddress))) {
                • 471
                  var userEmailAddress = "test@liferay.com";
                }
              • 474
                if (!(isSet(userPassword))) {
                • 475
                  var userPassword = "test";
                }
              • 478
                var curl = ''' ${portalURL}/o/headless-admin-list-type/v1.0/list-type-definitions \ -u ${userEmailAddress}:${userPassword} ''';
              • 482
                var picklistId = JSONCurlUtil.get("${curl}", "$.items[?(@['name'] == '${picklistName}')]['id']");
              • 484
                return "${picklistId}";
            }
          • 71
            if (!(isSet(indexed))) {
            • 72
              var indexed = "true";
            }
          • 75
            if (!(isSet(indexedAsKeyword))) {
            • 76
              var indexedAsKeyword = "true";
            }
          • 79
            var curl = ''' ${portalURL}/o/object-admin/v1.0/object-definitions/${objectId}/object-fields \ -H 'Content-Type: application/json' \ -u ${userEmailAddress}:${userPassword} \ -d '{ "DBType": "${fieldType}", "indexed": ${indexed}, "indexedAsKeyword": ${indexedAsKeyword}, "label": { "en_US": "${fieldLabelName}" }, "listTypeDefinitionId": ${picklistId}, "name": "${fieldName}", "required": ${isRequired} }' ''';
          • 96
            JSONCurlUtil.post("${curl}");
      • 601
        ObjectAdmin.publishObjectViaAPI(objectName = "CustomObject");
        • 845
          JSONObject.publishObject( objectName = "${objectName}", userEmailAddress = "${userEmailAddress}", userPassword = "${userPassword}");
          • 489
            var portalURL = JSONCompany.getPortalURL();
            • 66
              var portalURL = PropsUtil.get("portal.url");
            • 68
              return "${portalURL}";
          • 491
            var objectId = JSONObject.getObjectId( objectName = "${objectName}", userEmailAddress = "${userEmailAddress}", userPassword = "${userPassword}");
            • 448
              var portalURL = JSONCompany.getPortalURL();
              • 66
                var portalURL = PropsUtil.get("portal.url");
              • 68
                return "${portalURL}";
            • 450
              if (!(isSet(userEmailAddress))) {
              • 451
                var userEmailAddress = "test@liferay.com";
              }
            • 454
              if (!(isSet(userPassword))) {
              • 455
                var userPassword = "test";
              }
            • 458
              var curl = ''' ${portalURL}/o/object-admin/v1.0/object-definitions \ -u ${userEmailAddress}:${userPassword} ''';
            • 462
              var objectId = JSONCurlUtil.get("${curl}", "$.items[?(@['name'] == '${objectName}')]['id']");
            • 464
              return "${objectId}";
          • 496
            if (!(isSet(userEmailAddress))) {
            • 497
              var userEmailAddress = "test@liferay.com";
            }
          • 500
            if (!(isSet(userPassword))) {
            • 501
              var userPassword = "test";
            }
          • 504
            var curl = ''' ${portalURL}/o/object-admin/v1.0/object-definitions/${objectId}/publish \ -H 'Content-Type: application/json' \ -u ${userEmailAddress}:${userPassword} ''';
          • 510
            JSONCurlUtil.post("${curl}");
      • 603
        JSONRole.addRegularRole( roleKey = "Regular Role", roleTitle = "Regular Role");
        • 22
          Variables.assertDefined(parameterList = "${roleTitle}");
          • 5
            if (!(isSet(parameterList))) {
            • 6
              fail("Please define a parameter list in 'parameterList'");
            }
          • 9
            for (var parameter : list "${parameterList}") {
            • 13
              var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
            • 17
              if (("${undefined}" == "true") && ("${parameter}" != "false")) {
              • 18
                fail("Please set '${parameter}'");
              }
            }
        • 24
          var descriptionMap = JSONRoleSetter.setDescriptionMap(description = "${roleDescription}");
          • 4
            if (isSet(description)) {
            • 5
              var descriptionEncoded = URLUtil.encodeUTF8("${description}");
            • 7
              var descriptionMap = '''{"en_US":"${descriptionEncoded}"}''';
            }
          • 9
            else {
            • 10
              var descriptionMap = "{}";
            }
          • 13
            return "${descriptionMap}";
        • 26
          var name = JSONRoleSetter.setName(name = "${roleTitle}");
          • 17
            Variables.assertDefined(parameterList = "${name}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 19
            var name = URLUtil.encodeUTF8("${name}");
          • 21
            return "${name}";
        • 28
          var titleMap = JSONRoleSetter.setTitleMap(title = "${roleKey}");
          • 33
            if (isSet(title)) {
            • 34
              var titleMap = URLUtil.encodeUTF8("${title}");
            • 36
              var titleMap = '''{"en_US":"${titleMap}"}''';
            }
          • 38
            else {
            • 39
              var titleMap = "{}";
            }
          • 42
            return "${titleMap}";
        • 30
          var type = JSONRoleSetter.setType(roleType = "regular");
          • 46
            Variables.assertDefined(parameterList = "${roleType}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 48
            if ("${roleType}" == "regular") {
            • 49
              var type = "1";
            }
          • 51
            else if ("${roleType}" == "site") {
            • 52
              var type = "2";
            }
          • 54
            else if ("${roleType}" == "organization") {
            • 55
              var type = "3";
            }
          • 57
            else {
            • 58
              fail("Invalid 'roleType', '${roleType}' must be 'regular/site/organization'.");
            }
          • 61
            return "${type}";
        • 32
          JSONRoleAPI._addRole( descriptionMap = "${descriptionMap}", name = "${name}", titleMap = "${titleMap}", type = "${type}");
          • 4
            Variables.assertDefined(parameterList = "${name},${titleMap},${descriptionMap},${type}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 6
            var portalURL = JSONCompany.getPortalURL();
            • 66
              var portalURL = PropsUtil.get("portal.url");
            • 68
              return "${portalURL}";
          • 8
            var curl = ''' ${portalURL}/api/jsonws/role/add-role \ -u test@liferay.com:test \ -d className=com.liferay.portal.kernel.model.Role \ -d classPK=0 \ -d name=${name} \ -d titleMap=${titleMap} \ -d descriptionMap=${descriptionMap} \ -d type=${type} \ -d subtype= ''';
          • 20
            com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
      • 607
        for (var letter : list "A,B") {
        • 608
          JSONGroup.addGroup(groupName = "Site ${letter}");
          • 29
            Variables.assertDefined(parameterList = "${groupName}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 31
            var groupDescriptionMap = JSONGroupSetter.setGroupDescriptionMap(groupDescription = "${groupDescription}");
            • 32
              if (isSet(groupDescription)) {
              • 33
                var groupDescription = URLUtil.encodeUTF8("${groupDescription}");
              • 35
                var groupDescriptionMap = '''{"en_US":"${groupDescriptionEncoded}"}''';
              }
            • 37
              else {
              • 38
                var groupDescriptionMap = "{}";
              }
            • 41
              return "${groupDescriptionMap}";
          • 33
            var groupNameMap = JSONGroupSetter.setGroupNameMap(groupName = "${groupName}");
            • 61
              Variables.assertDefined(parameterList = "${groupName}");
              • 5
                if (!(isSet(parameterList))) {
                • 6
                  fail("Please define a parameter list in 'parameterList'");
                }
              • 9
                for (var parameter : list "${parameterList}") {
                • 13
                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                • 17
                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                  • 18
                    fail("Please set '${parameter}'");
                  }
                }
            • 63
              var groupNameMap = URLUtil.encodeUTF8("${groupName}");
            • 65
              var groupNameMap = '''{"en_US":"${groupName}"}''';
            • 67
              return "${groupNameMap}";
          • 35
            var parentGroupId = JSONGroupSetter.setParentGroupId(groupName = "${parentGroupName}");
            • 85
              if (isSet(parentGroupName)) {
              • 86
                var parentGroupId = JSONGroupAPI._getParentGroupIdByName( grandParentGroupName = "${grandParentGroupName}", groupName = "${parentGroupName}");
                • 253
                  Variables.assertDefined(parameterList = "${groupName}");
                  • 5
                    if (!(isSet(parameterList))) {
                    • 6
                      fail("Please define a parameter list in 'parameterList'");
                    }
                  • 9
                    for (var parameter : list "${parameterList}") {
                    • 13
                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                    • 17
                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                      • 18
                        fail("Please set '${parameter}'");
                      }
                    }
                • 255
                  var companyId = JSONCompany.getCompanyId();
                  • 4
                    if (!(isSet(portalInstanceName))) {
                    • 5
                      var portalInstanceName = JSONCompany.getPortalInstanceName();
                      • 50
                        var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                      • 51
                        var testPortalInstance = PropsUtil.get("test.portal.instance");
                      • 53
                        if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                        • 54
                          var portalURL = JSONCompany.getPortalURL();
                          • 66
                            var portalURL = PropsUtil.get("portal.url");
                          • 68
                            return "${portalURL}";
                        • 56
                          var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                          • 72
                            Variables.assertDefined(parameterList = "${portalURL}");
                            • 5
                              if (!(isSet(parameterList))) {
                              • 6
                                fail("Please define a parameter list in 'parameterList'");
                              }
                            • 9
                              for (var parameter : list "${parameterList}") {
                              • 13
                                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                              • 17
                                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                • 18
                                  fail("Please set '${parameter}'");
                                }
                              }
                          • 74
                            var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                          • 75
                            var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                          • 77
                            return "${portalInstanceName}";
                        • 58
                          return "${portalInstanceName}";
                        }
                      • 60
                        else {
                        • 61
                          return "localhost";
                        }
                    }
                  • 8
                    if (!(isSet(portalURL))) {
                    • 9
                      var portalURL = JSONCompany.getPortalURL();
                      • 66
                        var portalURL = PropsUtil.get("portal.url");
                      • 68
                        return "${portalURL}";
                    }
                  • 12
                    if (!(isSet(creatorEmailAddress))) {
                    • 13
                      if ("${authenticationMethod}" == "By Screen Name") {
                      • 14
                        if (!(isSet(userScreenName))) {
                        • 15
                          var creatorEmailAddress = "test";
                        }
                      • 17
                        else {
                        • 18
                          var creatorEmailAddress = "${userScreenName}";
                        }
                      }
                    • 21
                      else {
                      • 22
                        var creatorEmailAddress = "test@liferay.com";
                      }
                    }
                  • 26
                    if (!(isSet(creatorPassword))) {
                    • 27
                      var creatorPassword = "test";
                    }
                  • 30
                    var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                  • 34
                    var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                  • 36
                    return "${companyId}";
                • 257
                  var grandParentGroupId = JSONGroupSetter.setGrandParentGroupId(grandParentGroupName = "${grandParentGroupName}");
                  • 15
                    if (isSet(grandParentGroupName)) {
                    • 16
                      if (!(isSet(site))) {
                      • 17
                        var site = "true";
                      }
                    • 20
                      var grandParentGroupId = JSONGroupAPI._getGrandParentGroupIdByName( groupName = "${grandParentGroupName}", site = "${site}");
                      • 154
                        Variables.assertDefined(parameterList = "${groupName}");
                        • 5
                          if (!(isSet(parameterList))) {
                          • 6
                            fail("Please define a parameter list in 'parameterList'");
                          }
                        • 9
                          for (var parameter : list "${parameterList}") {
                          • 13
                            var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                          • 17
                            if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                            • 18
                              fail("Please set '${parameter}'");
                            }
                          }
                      • 156
                        var companyId = JSONCompany.getCompanyId();
                        • 4
                          if (!(isSet(portalInstanceName))) {
                          • 5
                            var portalInstanceName = JSONCompany.getPortalInstanceName();
                            • 50
                              var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                            • 51
                              var testPortalInstance = PropsUtil.get("test.portal.instance");
                            • 53
                              if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                              • 54
                                var portalURL = JSONCompany.getPortalURL();
                                • 66
                                  var portalURL = PropsUtil.get("portal.url");
                                • 68
                                  return "${portalURL}";
                              • 56
                                var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                                • 72
                                  Variables.assertDefined(parameterList = "${portalURL}");
                                  • 5
                                    if (!(isSet(parameterList))) {
                                    • 6
                                      fail("Please define a parameter list in 'parameterList'");
                                    }
                                  • 9
                                    for (var parameter : list "${parameterList}") {
                                    • 13
                                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                                    • 17
                                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                      • 18
                                        fail("Please set '${parameter}'");
                                      }
                                    }
                                • 74
                                  var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                                • 75
                                  var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                                • 77
                                  return "${portalInstanceName}";
                              • 58
                                return "${portalInstanceName}";
                              }
                            • 60
                              else {
                              • 61
                                return "localhost";
                              }
                          }
                        • 8
                          if (!(isSet(portalURL))) {
                          • 9
                            var portalURL = JSONCompany.getPortalURL();
                            • 66
                              var portalURL = PropsUtil.get("portal.url");
                            • 68
                              return "${portalURL}";
                          }
                        • 12
                          if (!(isSet(creatorEmailAddress))) {
                          • 13
                            if ("${authenticationMethod}" == "By Screen Name") {
                            • 14
                              if (!(isSet(userScreenName))) {
                              • 15
                                var creatorEmailAddress = "test";
                              }
                            • 17
                              else {
                              • 18
                                var creatorEmailAddress = "${userScreenName}";
                              }
                            }
                          • 21
                            else {
                            • 22
                              var creatorEmailAddress = "test@liferay.com";
                            }
                          }
                        • 26
                          if (!(isSet(creatorPassword))) {
                          • 27
                            var creatorPassword = "test";
                          }
                        • 30
                          var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                        • 34
                          var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                        • 36
                          return "${companyId}";
                      • 158
                        var portalURL = JSONCompany.getPortalURL();
                        • 66
                          var portalURL = PropsUtil.get("portal.url");
                        • 68
                          return "${portalURL}";
                      • 160
                        if (!(isSet(site))) {
                        • 161
                          var site = "true";
                        }
                      • 164
                        var curl = ''' ${portalURL}/api/jsonws/group/get-groups \ -u test@liferay.com:test \ -d companyId=${companyId} \ -d parentGroupId=0 \ -d site=${site} ''';
                      • 171
                        var groupId = JSONCurlUtil.post("${curl}", "$.[?(@['nameCurrentValue'] == '${groupName}')]['groupId']");
                      • 173
                        if ("${groupId}" == "") {
                        • 174
                          fail("FAIL. Cannot find group.");
                        }
                      • 177
                        return "${groupId}";
                    }
                  • 24
                    else {
                    • 25
                      var grandParentGroupId = "0";
                    }
                  • 28
                    return "${grandParentGroupId}";
                • 259
                  var portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                • 261
                  var curl = ''' ${portalURL}/api/jsonws/group/get-groups/company-id/${companyId}/parent-group-id/${grandParentGroupId}/site/true \ -u test@liferay.com:test ''';
                • 265
                  var groupId = JSONCurlUtil.get("${curl}", "$.[?(@['nameCurrentValue'] == '${groupName}')]['groupId']");
                • 267
                  if ("${groupId}" == "") {
                  • 268
                    fail("FAIL. Cannot find group.");
                  }
                • 271
                  return "${groupId}";
              }
            • 90
              else {
              • 91
                var parentGroupId = "0";
              }
            • 94
              return "${parentGroupId}";
          • 37
            var type = JSONGroupSetter.setMembershipType(membershipType = "${membershipType}");
            • 71
              if ("${membershipType}" == "Private") {
              • 72
                var type = "3";
              }
            • 74
              else if ("${membershipType}" == "Restricted") {
              • 75
                var type = "2";
              }
            • 77
              else {
              • 78
                var type = "1";
              }
            • 81
              return "${type}";
          • 39
            var manualMembership = JSONGroupSetter.setAllowManualMembershipManagement(allowManualMembershipManagement = "${allowManualMembershipManagement}");
            • 4
              if ("${allowManualMembershipManagement}" == "false") {
              • 5
                var manualMembership = "false";
              }
            • 7
              else {
              • 8
                var manualMembership = "true";
              }
            • 11
              return "${manualMembership}";
          • 41
            JSONGroupAPI._addGroup( groupDescriptionMap = "${groupDescriptionMap}", groupNameMap = "${groupNameMap}", manualMembership = "${manualMembership}", parentGroupId = "${parentGroupId}", portalURL = "${portalURL}", type = "${type}");
            • 5
              Variables.assertDefined(parameterList = "${groupDescriptionMap},${groupNameMap},${manualMembership},${parentGroupId},${type}");
              • 5
                if (!(isSet(parameterList))) {
                • 6
                  fail("Please define a parameter list in 'parameterList'");
                }
              • 9
                for (var parameter : list "${parameterList}") {
                • 13
                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                • 17
                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                  • 18
                    fail("Please set '${parameter}'");
                  }
                }
            • 7
              if (!(isSet(portalURL))) {
              • 8
                var portalURL = JSONCompany.getPortalURL();
                • 66
                  var portalURL = PropsUtil.get("portal.url");
                • 68
                  return "${portalURL}";
              }
            • 11
              var curl = ''' ${portalURL}/api/jsonws/group/add-group \ -u test@liferay.com:test \ -d parentGroupId=${parentGroupId} \ -d liveGroupId=0 \ -d nameMap=${groupNameMap} \ -d descriptionMap=${groupDescriptionMap} \ -d type=${type} \ -d manualMembership=${manualMembership} \ -d membershipRestriction=0 \ -d friendlyURL= \ -d site=true \ -d inheritContent=false \ -d active=true ''';
            • 27
              JSONCurlUtil.post("${curl}");
        }
      • 611
        ObjectAdmin.gotoRolesAndSelectCustomObject(roleName = "Regular Role");
        • 957
          ApplicationsMenu.gotoPortlet( category = "Users", panel = "Control Panel", portlet = "Roles");
          • 28
            ApplicationsMenuHelper.openApplicationsMenu();
            • 23
              if (IsElementNotPresent(locator1 = "ApplicationsMenu#APPLICATIONS_MENU")) {
              • 24
                Click(locator1 = "ApplicationsMenu#TOGGLE");
              }
            • 27
              WaitForElementPresent(locator1 = "ApplicationsMenu#APPLICATIONS_MENU");
          • 30
            ApplicationsMenu.gotoPanel(panel = "${panel}");
            • 17
              var key_panel = "${panel}";
            • 19
              Click(locator1 = "ApplicationsMenu#PANEL");
            • 21
              AssertElementPresent(locator1 = "ApplicationsMenu#ACTIVE_PANEL");
            • 23
              WaitForLiferayEvent.initializeLiferayEventLog();
          • 32
            ApplicationsMenuHelper.gotoPortlet( category = "${category}", portlet = "${portlet}");
            • 16
              Click( key_category = "${category}", key_portlet = "${portlet}", locator1 = "ApplicationsMenu#PORTLET");
        • 962
          Search.searchCP(searchTerm = "${roleName}");
          • 25
            AssertElementPresent(locator1 = "TextInput#SEARCH");
          • 27
            AssertElementPresent(locator1 = "Icon#BASIC_SEARCH");
          • 29
            Type( locator1 = "TextInput#SEARCH", value1 = "${searchTerm}");
          • 33
            KeyPress( locator1 = "TextInput#SEARCH", value1 = "\RETURN");
          • 37
            if (!(isSet(modal))) {
            • 38
              WaitForLiferayEvent.initializeLiferayEventLog();
            }
        • 964
          AssertClick( key_itemName = "${roleName}", locator1 = "ListGroupItem#ITEM_NAME_LINK", value1 = "${key_itemName}");
        • 969
          Navigator.gotoNavItem(navItem = "Define Permissions");
          • 82
            var key_navItem = "${navItem}";
          • 84
            AssertClick( locator1 = "NavBar#NAV_ITEM_LINK", value1 = "${navItem}");
          • 88
            AssertElementPresent(locator1 = "NavBar#ACTIVE_NAV_ITEM_LINK");
        • 971
          ObjectAdmin.searchInDefinePermissions(search = "Custom Objects");
          • 975
            Type( locator1 = "RolesPermissionsNavigation#SEARCH_FIELD", value1 = "${search}");
          • 979
            AssertClick( key_navItem = "${search}", locator1 = "RolesPermissionsNavigation#PERMISSIONS_NAVITEM", value1 = "${search}");
      • 613
        ObjectAdmin.selectActionsOnRoles(actionsList = "Access in Site and Asset Library Administration,View");
        • 947
          for (var actions : list "${actionsList}") {
          • 948
            Click( key_actionName = "${actions}", locator1 = "ObjectAdmin#SELECT_ACTION_ON_REGULAR_ROLES");
          }
        • 953
          Click(locator1 = "Button#SAVE");
      • 615
        for (var scopePermissions : list "Access in Site and Asset Library Administration,View") {
        • 616
          ObjectAdmin.changeScopeOnDefinePermissions( scopeActionName = "${scopePermissions}", siteCard = "Site A");
          • 926
            ObjectAdmin.searchInDefinePermissions(search = "Custom Objects");
            • 975
              Type( locator1 = "RolesPermissionsNavigation#SEARCH_FIELD", value1 = "${search}");
            • 979
              AssertClick( key_navItem = "${search}", locator1 = "RolesPermissionsNavigation#PERMISSIONS_NAVITEM", value1 = "${search}");
          • 928
            Click( key_scopeActionName = "${scopeActionName}", locator1 = "ObjectAdmin#CHANGE_SCOPE_ACTION_ON_REGULAR_ROLES", value1 = "${scopeActionName}");
          • 933
            SelectFrame(locator1 = "IFrame#MODAL_BODY");
          • 935
            Click(locator1 = "ContentDashboard#MY_SITES_TAB");
          • 937
            Click( key_siteCard = "${siteCard}", locator1 = "ObjectAdmin#VIEW_SITE_CARD");
          • 941
            SelectFrame(locator1 = "ObjectAdmin#VIEW_SHEET_ON_DEFINE_PERMISSIONS");
          • 943
            Click(locator1 = "Button#SAVE");
        }
      • 621
        for (var resourceAction : list "VIEW,VIEW_SITE_ADMINISTRATION") {
        • 622
          Permissions.definePermissionViaJSONAPI( resourceAction = "${resourceAction}", resourceName = "com.liferay.portal.kernel.model.Group", roleTitle = "Regular Role");
          • 91
            JSONPermission.addPermission( actionId = "${resourceAction}", groupName = "${groupName}", name = "${resourceName}", roleTitle = "${roleTitle}", roleType = "${roleType}");
            • 4
              Variables.assertDefined(parameterList = "${actionId},${name},${roleTitle}");
              • 5
                if (!(isSet(parameterList))) {
                • 6
                  fail("Please define a parameter list in 'parameterList'");
                }
              • 9
                for (var parameter : list "${parameterList}") {
                • 13
                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                • 17
                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                  • 18
                    fail("Please set '${parameter}'");
                  }
                }
            • 6
              var groupId = JSONPermissionSetter.setGroupId(groupName = "${groupName}");
              • 4
                if (!(isSet(groupName))) {
                • 5
                  var groupName = "Global";
                }
              • 8
                if (!(isSet(site))) {
                • 9
                  var site = "true";
                }
              • 12
                var groupId = JSONGroupAPI._getGroupIdByName( groupName = "${groupName}", site = "${site}");
                • 207
                  Variables.assertDefined(parameterList = "${groupName},${site}");
                  • 5
                    if (!(isSet(parameterList))) {
                    • 6
                      fail("Please define a parameter list in 'parameterList'");
                    }
                  • 9
                    for (var parameter : list "${parameterList}") {
                    • 13
                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                    • 17
                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                      • 18
                        fail("Please set '${parameter}'");
                      }
                    }
                • 209
                  if (!(isSet(portalURL))) {
                  • 210
                    var portalURL = JSONCompany.getPortalURL();
                    • 66
                      var portalURL = PropsUtil.get("portal.url");
                    • 68
                      return "${portalURL}";
                  }
                • 213
                  var companyId = JSONCompany.getCompanyId(portalURL = "${portalURL}");
                  • 4
                    if (!(isSet(portalInstanceName))) {
                    • 5
                      var portalInstanceName = JSONCompany.getPortalInstanceName();
                      • 50
                        var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                      • 51
                        var testPortalInstance = PropsUtil.get("test.portal.instance");
                      • 53
                        if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                        • 54
                          var portalURL = JSONCompany.getPortalURL();
                          • 66
                            var portalURL = PropsUtil.get("portal.url");
                          • 68
                            return "${portalURL}";
                        • 56
                          var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                          • 72
                            Variables.assertDefined(parameterList = "${portalURL}");
                            • 5
                              if (!(isSet(parameterList))) {
                              • 6
                                fail("Please define a parameter list in 'parameterList'");
                              }
                            • 9
                              for (var parameter : list "${parameterList}") {
                              • 13
                                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                              • 17
                                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                • 18
                                  fail("Please set '${parameter}'");
                                }
                              }
                          • 74
                            var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                          • 75
                            var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                          • 77
                            return "${portalInstanceName}";
                        • 58
                          return "${portalInstanceName}";
                        }
                      • 60
                        else {
                        • 61
                          return "localhost";
                        }
                    }
                  • 8
                    if (!(isSet(portalURL))) {
                    • 9
                      var portalURL = JSONCompany.getPortalURL();
                      • 66
                        var portalURL = PropsUtil.get("portal.url");
                      • 68
                        return "${portalURL}";
                    }
                  • 12
                    if (!(isSet(creatorEmailAddress))) {
                    • 13
                      if ("${authenticationMethod}" == "By Screen Name") {
                      • 14
                        if (!(isSet(userScreenName))) {
                        • 15
                          var creatorEmailAddress = "test";
                        }
                      • 17
                        else {
                        • 18
                          var creatorEmailAddress = "${userScreenName}";
                        }
                      }
                    • 21
                      else {
                      • 22
                        var creatorEmailAddress = "test@liferay.com";
                      }
                    }
                  • 26
                    if (!(isSet(creatorPassword))) {
                    • 27
                      var creatorPassword = "test";
                    }
                  • 30
                    var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                  • 34
                    var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                  • 36
                    return "${companyId}";
                • 215
                  var parentGroupId = JSONGroupSetter.setParentGroupId( grandParentGroupName = "${grandParentGroupName}", parentGroupName = "${parentGroupName}");
                  • 85
                    if (isSet(parentGroupName)) {
                    • 86
                      var parentGroupId = JSONGroupAPI._getParentGroupIdByName( grandParentGroupName = "${grandParentGroupName}", groupName = "${parentGroupName}");
                      • 253
                        Variables.assertDefined(parameterList = "${groupName}");
                        • 5
                          if (!(isSet(parameterList))) {
                          • 6
                            fail("Please define a parameter list in 'parameterList'");
                          }
                        • 9
                          for (var parameter : list "${parameterList}") {
                          • 13
                            var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                          • 17
                            if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                            • 18
                              fail("Please set '${parameter}'");
                            }
                          }
                      • 255
                        var companyId = JSONCompany.getCompanyId();
                        • 4
                          if (!(isSet(portalInstanceName))) {
                          • 5
                            var portalInstanceName = JSONCompany.getPortalInstanceName();
                            • 50
                              var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                            • 51
                              var testPortalInstance = PropsUtil.get("test.portal.instance");
                            • 53
                              if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                              • 54
                                var portalURL = JSONCompany.getPortalURL();
                                • 66
                                  var portalURL = PropsUtil.get("portal.url");
                                • 68
                                  return "${portalURL}";
                              • 56
                                var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                                • 72
                                  Variables.assertDefined(parameterList = "${portalURL}");
                                  • 5
                                    if (!(isSet(parameterList))) {
                                    • 6
                                      fail("Please define a parameter list in 'parameterList'");
                                    }
                                  • 9
                                    for (var parameter : list "${parameterList}") {
                                    • 13
                                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                                    • 17
                                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                      • 18
                                        fail("Please set '${parameter}'");
                                      }
                                    }
                                • 74
                                  var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                                • 75
                                  var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                                • 77
                                  return "${portalInstanceName}";
                              • 58
                                return "${portalInstanceName}";
                              }
                            • 60
                              else {
                              • 61
                                return "localhost";
                              }
                          }
                        • 8
                          if (!(isSet(portalURL))) {
                          • 9
                            var portalURL = JSONCompany.getPortalURL();
                            • 66
                              var portalURL = PropsUtil.get("portal.url");
                            • 68
                              return "${portalURL}";
                          }
                        • 12
                          if (!(isSet(creatorEmailAddress))) {
                          • 13
                            if ("${authenticationMethod}" == "By Screen Name") {
                            • 14
                              if (!(isSet(userScreenName))) {
                              • 15
                                var creatorEmailAddress = "test";
                              }
                            • 17
                              else {
                              • 18
                                var creatorEmailAddress = "${userScreenName}";
                              }
                            }
                          • 21
                            else {
                            • 22
                              var creatorEmailAddress = "test@liferay.com";
                            }
                          }
                        • 26
                          if (!(isSet(creatorPassword))) {
                          • 27
                            var creatorPassword = "test";
                          }
                        • 30
                          var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                        • 34
                          var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                        • 36
                          return "${companyId}";
                      • 257
                        var grandParentGroupId = JSONGroupSetter.setGrandParentGroupId(grandParentGroupName = "${grandParentGroupName}");
                        • 15
                          if (isSet(grandParentGroupName)) {
                          • 16
                            if (!(isSet(site))) {
                            • 17
                              var site = "true";
                            }
                          • 20
                            var grandParentGroupId = JSONGroupAPI._getGrandParentGroupIdByName( groupName = "${grandParentGroupName}", site = "${site}");
                            • 154
                              Variables.assertDefined(parameterList = "${groupName}");
                              • 5
                                if (!(isSet(parameterList))) {
                                • 6
                                  fail("Please define a parameter list in 'parameterList'");
                                }
                              • 9
                                for (var parameter : list "${parameterList}") {
                                • 13
                                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                                • 17
                                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                  • 18
                                    fail("Please set '${parameter}'");
                                  }
                                }
                            • 156
                              var companyId = JSONCompany.getCompanyId();
                              • 4
                                if (!(isSet(portalInstanceName))) {
                                • 5
                                  var portalInstanceName = JSONCompany.getPortalInstanceName();
                                  • 50
                                    var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                                  • 51
                                    var testPortalInstance = PropsUtil.get("test.portal.instance");
                                  • 53
                                    if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                                    • 54
                                      var portalURL = JSONCompany.getPortalURL();
                                      • 66
                                        var portalURL = PropsUtil.get("portal.url");
                                      • 68
                                        return "${portalURL}";
                                    • 56
                                      var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                                      • 72
                                        Variables.assertDefined(parameterList = "${portalURL}");
                                        • 5
                                          if (!(isSet(parameterList))) {
                                          • 6
                                            fail("Please define a parameter list in 'parameterList'");
                                          }
                                        • 9
                                          for (var parameter : list "${parameterList}") {
                                          • 13
                                            var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                                          • 17
                                            if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                            • 18
                                              fail("Please set '${parameter}'");
                                            }
                                          }
                                      • 74
                                        var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                                      • 75
                                        var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                                      • 77
                                        return "${portalInstanceName}";
                                    • 58
                                      return "${portalInstanceName}";
                                    }
                                  • 60
                                    else {
                                    • 61
                                      return "localhost";
                                    }
                                }
                              • 8
                                if (!(isSet(portalURL))) {
                                • 9
                                  var portalURL = JSONCompany.getPortalURL();
                                  • 66
                                    var portalURL = PropsUtil.get("portal.url");
                                  • 68
                                    return "${portalURL}";
                                }
                              • 12
                                if (!(isSet(creatorEmailAddress))) {
                                • 13
                                  if ("${authenticationMethod}" == "By Screen Name") {
                                  • 14
                                    if (!(isSet(userScreenName))) {
                                    • 15
                                      var creatorEmailAddress = "test";
                                    }
                                  • 17
                                    else {
                                    • 18
                                      var creatorEmailAddress = "${userScreenName}";
                                    }
                                  }
                                • 21
                                  else {
                                  • 22
                                    var creatorEmailAddress = "test@liferay.com";
                                  }
                                }
                              • 26
                                if (!(isSet(creatorPassword))) {
                                • 27
                                  var creatorPassword = "test";
                                }
                              • 30
                                var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                              • 34
                                var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                              • 36
                                return "${companyId}";
                            • 158
                              var portalURL = JSONCompany.getPortalURL();
                              • 66
                                var portalURL = PropsUtil.get("portal.url");
                              • 68
                                return "${portalURL}";
                            • 160
                              if (!(isSet(site))) {
                              • 161
                                var site = "true";
                              }
                            • 164
                              var curl = ''' ${portalURL}/api/jsonws/group/get-groups \ -u test@liferay.com:test \ -d companyId=${companyId} \ -d parentGroupId=0 \ -d site=${site} ''';
                            • 171
                              var groupId = JSONCurlUtil.post("${curl}", "$.[?(@['nameCurrentValue'] == '${groupName}')]['groupId']");
                            • 173
                              if ("${groupId}" == "") {
                              • 174
                                fail("FAIL. Cannot find group.");
                              }
                            • 177
                              return "${groupId}";
                          }
                        • 24
                          else {
                          • 25
                            var grandParentGroupId = "0";
                          }
                        • 28
                          return "${grandParentGroupId}";
                      • 259
                        var portalURL = JSONCompany.getPortalURL();
                        • 66
                          var portalURL = PropsUtil.get("portal.url");
                        • 68
                          return "${portalURL}";
                      • 261
                        var curl = ''' ${portalURL}/api/jsonws/group/get-groups/company-id/${companyId}/parent-group-id/${grandParentGroupId}/site/true \ -u test@liferay.com:test ''';
                      • 265
                        var groupId = JSONCurlUtil.get("${curl}", "$.[?(@['nameCurrentValue'] == '${groupName}')]['groupId']");
                      • 267
                        if ("${groupId}" == "") {
                        • 268
                          fail("FAIL. Cannot find group.");
                        }
                      • 271
                        return "${groupId}";
                    }
                  • 90
                    else {
                    • 91
                      var parentGroupId = "0";
                    }
                  • 94
                    return "${parentGroupId}";
                • 219
                  var curl = ''' ${portalURL}/api/jsonws/group/get-groups/company-id/${companyId}/parent-group-id/${parentGroupId}/site/${site} \ -u test@liferay.com:test ''';
                • 223
                  var groupId = JSONCurlUtil.get("${curl}", "$.[?(@['nameCurrentValue'] == '${groupName}')]['groupId']");
                • 225
                  if ("${groupId}" == "") {
                  • 226
                    fail("FAIL. Cannot find group.");
                  }
                • 229
                  echo("## * GroupId: ${groupId}");
                • 231
                  return "${groupId}";
              • 16
                return "${groupId}";
            • 8
              var roleType = JSONPermissionSetter.setRoleType(roleType = "${roleType}");
              • 41
                if (!(isSet(roleType))) {
                • 42
                  var roleType = "regular";
                }
              • 45
                return "${roleType}";
            • 10
              var primKey = JSONPermissionSetter.setPrimKey(roleType = "${roleType}");
              • 20
                JSONPermissionValidator.validateRoleType(roleType = "${roleType}");
                • 5
                  Variables.assertDefined(parameterList = "${roleType}");
                  • 5
                    if (!(isSet(parameterList))) {
                    • 6
                      fail("Please define a parameter list in 'parameterList'");
                    }
                  • 9
                    for (var parameter : list "${parameterList}") {
                    • 13
                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                    • 17
                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                      • 18
                        fail("Please set '${parameter}'");
                      }
                    }
                • 7
                  if (!(contains("account,asset library,regular,site,organization", "${roleType}"))) {
                  • 8
                    fail("Invalid 'roleType', '${roleType}' must be 'asset library/regular/site/organization'.");
                  }
              • 22
                if ("${roleType}" == "regular") {
                • 23
                  var primKey = JSONCompany.getCompanyId();
                  • 4
                    if (!(isSet(portalInstanceName))) {
                    • 5
                      var portalInstanceName = JSONCompany.getPortalInstanceName();
                      • 50
                        var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                      • 51
                        var testPortalInstance = PropsUtil.get("test.portal.instance");
                      • 53
                        if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                        • 54
                          var portalURL = JSONCompany.getPortalURL();
                          • 66
                            var portalURL = PropsUtil.get("portal.url");
                          • 68
                            return "${portalURL}";
                        • 56
                          var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                          • 72
                            Variables.assertDefined(parameterList = "${portalURL}");
                            • 5
                              if (!(isSet(parameterList))) {
                              • 6
                                fail("Please define a parameter list in 'parameterList'");
                              }
                            • 9
                              for (var parameter : list "${parameterList}") {
                              • 13
                                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                              • 17
                                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                • 18
                                  fail("Please set '${parameter}'");
                                }
                              }
                          • 74
                            var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                          • 75
                            var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                          • 77
                            return "${portalInstanceName}";
                        • 58
                          return "${portalInstanceName}";
                        }
                      • 60
                        else {
                        • 61
                          return "localhost";
                        }
                    }
                  • 8
                    if (!(isSet(portalURL))) {
                    • 9
                      var portalURL = JSONCompany.getPortalURL();
                      • 66
                        var portalURL = PropsUtil.get("portal.url");
                      • 68
                        return "${portalURL}";
                    }
                  • 12
                    if (!(isSet(creatorEmailAddress))) {
                    • 13
                      if ("${authenticationMethod}" == "By Screen Name") {
                      • 14
                        if (!(isSet(userScreenName))) {
                        • 15
                          var creatorEmailAddress = "test";
                        }
                      • 17
                        else {
                        • 18
                          var creatorEmailAddress = "${userScreenName}";
                        }
                      }
                    • 21
                      else {
                      • 22
                        var creatorEmailAddress = "test@liferay.com";
                      }
                    }
                  • 26
                    if (!(isSet(creatorPassword))) {
                    • 27
                      var creatorPassword = "test";
                    }
                  • 30
                    var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                  • 34
                    var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                  • 36
                    return "${companyId}";
                }
              • 25
                else if (("${roleType}" == "site") || ("${roleType}" == "organization") || ("${roleType}" == "asset library") || ("${roleType}" == "account")) {
                • 26
                  var primKey = "0";
                }
              • 29
                return "${primKey}";
            • 12
              var roleId = JSONPermissionSetter.setRoleId(roleTitle = "${roleTitle}");
              • 33
                Variables.assertDefined(parameterList = "${roleTitle}");
                • 5
                  if (!(isSet(parameterList))) {
                  • 6
                    fail("Please define a parameter list in 'parameterList'");
                  }
                • 9
                  for (var parameter : list "${parameterList}") {
                  • 13
                    var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                  • 17
                    if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                    • 18
                      fail("Please set '${parameter}'");
                    }
                  }
              • 35
                var roleId = JSONRoleAPI._getRoleIdByName(name = "${roleTitle}");
                • 84
                  Variables.assertDefined(parameterList = "${name}");
                  • 5
                    if (!(isSet(parameterList))) {
                    • 6
                      fail("Please define a parameter list in 'parameterList'");
                    }
                  • 9
                    for (var parameter : list "${parameterList}") {
                    • 13
                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                    • 17
                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                      • 18
                        fail("Please set '${parameter}'");
                      }
                    }
                • 86
                  var companyId = JSONCompany.getCompanyId();
                  • 4
                    if (!(isSet(portalInstanceName))) {
                    • 5
                      var portalInstanceName = JSONCompany.getPortalInstanceName();
                      • 50
                        var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                      • 51
                        var testPortalInstance = PropsUtil.get("test.portal.instance");
                      • 53
                        if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                        • 54
                          var portalURL = JSONCompany.getPortalURL();
                          • 66
                            var portalURL = PropsUtil.get("portal.url");
                          • 68
                            return "${portalURL}";
                        • 56
                          var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                          • 72
                            Variables.assertDefined(parameterList = "${portalURL}");
                            • 5
                              if (!(isSet(parameterList))) {
                              • 6
                                fail("Please define a parameter list in 'parameterList'");
                              }
                            • 9
                              for (var parameter : list "${parameterList}") {
                              • 13
                                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                              • 17
                                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                • 18
                                  fail("Please set '${parameter}'");
                                }
                              }
                          • 74
                            var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                          • 75
                            var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                          • 77
                            return "${portalInstanceName}";
                        • 58
                          return "${portalInstanceName}";
                        }
                      • 60
                        else {
                        • 61
                          return "localhost";
                        }
                    }
                  • 8
                    if (!(isSet(portalURL))) {
                    • 9
                      var portalURL = JSONCompany.getPortalURL();
                      • 66
                        var portalURL = PropsUtil.get("portal.url");
                      • 68
                        return "${portalURL}";
                    }
                  • 12
                    if (!(isSet(creatorEmailAddress))) {
                    • 13
                      if ("${authenticationMethod}" == "By Screen Name") {
                      • 14
                        if (!(isSet(userScreenName))) {
                        • 15
                          var creatorEmailAddress = "test";
                        }
                      • 17
                        else {
                        • 18
                          var creatorEmailAddress = "${userScreenName}";
                        }
                      }
                    • 21
                      else {
                      • 22
                        var creatorEmailAddress = "test@liferay.com";
                      }
                    }
                  • 26
                    if (!(isSet(creatorPassword))) {
                    • 27
                      var creatorPassword = "test";
                    }
                  • 30
                    var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                  • 34
                    var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                  • 36
                    return "${companyId}";
                • 88
                  var portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                • 90
                  var curl = ''' ${portalURL}/api/jsonws/role/get-role \ -u test@liferay.com:test \ -d companyId=${companyId} \ -d name=${name} ''';
                • 96
                  var roleId = JSONCurlUtil.post("${curl}", "$['roleId']");
                • 98
                  return "${roleId}";
              • 37
                return "${roleId}";
            • 14
              var scope = JSONPermissionSetter.setScope(roleType = "${roleType}");
              • 49
                JSONPermissionValidator.validateRoleType(roleType = "${roleType}");
                • 5
                  Variables.assertDefined(parameterList = "${roleType}");
                  • 5
                    if (!(isSet(parameterList))) {
                    • 6
                      fail("Please define a parameter list in 'parameterList'");
                    }
                  • 9
                    for (var parameter : list "${parameterList}") {
                    • 13
                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                    • 17
                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                      • 18
                        fail("Please set '${parameter}'");
                      }
                    }
                • 7
                  if (!(contains("account,asset library,regular,site,organization", "${roleType}"))) {
                  • 8
                    fail("Invalid 'roleType', '${roleType}' must be 'asset library/regular/site/organization'.");
                  }
              • 51
                if ("${roleType}" == "regular") {
                • 52
                  var scope = "1";
                }
              • 54
                else if (("${roleType}" == "site") || ("${roleType}" == "organization") || ("${roleType}" == "asset library") || ("${roleType}" == "account")) {
                • 55
                  var scope = "3";
                }
              • 58
                return "${scope}";
            • 16
              JSONPermissionAPI._addResourcePermission( actionId = "${actionId}", groupId = "${groupId}", name = "${name}", primKey = "${primKey}", roleId = "${roleId}", scope = "${scope}");
              • 4
                Variables.assertDefined(parameterList = "${groupId},${name},${scope},${primKey},${roleId},${actionId}");
                • 5
                  if (!(isSet(parameterList))) {
                  • 6
                    fail("Please define a parameter list in 'parameterList'");
                  }
                • 9
                  for (var parameter : list "${parameterList}") {
                  • 13
                    var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                  • 17
                    if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                    • 18
                      fail("Please set '${parameter}'");
                    }
                  }
              • 6
                var portalURL = JSONCompany.getPortalURL();
                • 66
                  var portalURL = PropsUtil.get("portal.url");
                • 68
                  return "${portalURL}";
              • 8
                var companyId = JSONCompany.getCompanyId();
                • 4
                  if (!(isSet(portalInstanceName))) {
                  • 5
                    var portalInstanceName = JSONCompany.getPortalInstanceName();
                    • 50
                      var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                    • 51
                      var testPortalInstance = PropsUtil.get("test.portal.instance");
                    • 53
                      if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                      • 54
                        var portalURL = JSONCompany.getPortalURL();
                        • 66
                          var portalURL = PropsUtil.get("portal.url");
                        • 68
                          return "${portalURL}";
                      • 56
                        var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                        • 72
                          Variables.assertDefined(parameterList = "${portalURL}");
                          • 5
                            if (!(isSet(parameterList))) {
                            • 6
                              fail("Please define a parameter list in 'parameterList'");
                            }
                          • 9
                            for (var parameter : list "${parameterList}") {
                            • 13
                              var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                            • 17
                              if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                              • 18
                                fail("Please set '${parameter}'");
                              }
                            }
                        • 74
                          var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                        • 75
                          var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                        • 77
                          return "${portalInstanceName}";
                      • 58
                        return "${portalInstanceName}";
                      }
                    • 60
                      else {
                      • 61
                        return "localhost";
                      }
                  }
                • 8
                  if (!(isSet(portalURL))) {
                  • 9
                    var portalURL = JSONCompany.getPortalURL();
                    • 66
                      var portalURL = PropsUtil.get("portal.url");
                    • 68
                      return "${portalURL}";
                  }
                • 12
                  if (!(isSet(creatorEmailAddress))) {
                  • 13
                    if ("${authenticationMethod}" == "By Screen Name") {
                    • 14
                      if (!(isSet(userScreenName))) {
                      • 15
                        var creatorEmailAddress = "test";
                      }
                    • 17
                      else {
                      • 18
                        var creatorEmailAddress = "${userScreenName}";
                      }
                    }
                  • 21
                    else {
                    • 22
                      var creatorEmailAddress = "test@liferay.com";
                    }
                  }
                • 26
                  if (!(isSet(creatorPassword))) {
                  • 27
                    var creatorPassword = "test";
                  }
                • 30
                  var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                • 34
                  var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                • 36
                  return "${companyId}";
              • 10
                var curl = ''' ${portalURL}/api/jsonws/resourcepermission/add-resource-permission \ -u test@liferay.com:test \ -d groupId=${groupId} \ -d companyId=${companyId} \ -d name=${name} \ -d scope=${scope} \ -d primKey=${primKey} \ -d roleId=${roleId} \ -d actionId=${actionId} ''';
              • 22
                com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
        }
      • 628
        ApplicationsMenu.gotoPortlet( category = "Users", panel = "Control Panel", portlet = "Roles");
        • 28
          ApplicationsMenuHelper.openApplicationsMenu();
          • 23
            if (IsElementNotPresent(locator1 = "ApplicationsMenu#APPLICATIONS_MENU")) {
            • 24
              Click(locator1 = "ApplicationsMenu#TOGGLE");
            }
          • 27
            WaitForElementPresent(locator1 = "ApplicationsMenu#APPLICATIONS_MENU");
        • 30
          ApplicationsMenu.gotoPanel(panel = "${panel}");
          • 17
            var key_panel = "${panel}";
          • 19
            Click(locator1 = "ApplicationsMenu#PANEL");
          • 21
            AssertElementPresent(locator1 = "ApplicationsMenu#ACTIVE_PANEL");
          • 23
            WaitForLiferayEvent.initializeLiferayEventLog();
        • 32
          ApplicationsMenuHelper.gotoPortlet( category = "${category}", portlet = "${portlet}");
          • 16
            Click( key_category = "${category}", key_portlet = "${portlet}", locator1 = "ApplicationsMenu#PORTLET");
      • 633
        Role.addAssignee( assigneeName = "Site A", assigneeType = "Sites", roleTitle = "Regular Role");
        • 44
          Role._goToRoleAssigneeType( assigneeType = "${assigneeType}", roleTitle = "${roleTitle}");
          • 4
            LexiconEntry.gotoEntry(rowEntry = "${roleTitle}");
            • 89
              if (IsElementPresent(key_displayStyle = "cards", locator1 = "Icon#DISPLAY_STYLE_ACTIVE")) {
              • 90
                AssertClick( key_card = "${rowEntry}", locator1 = "Card#CARD_TITLE_LINK", value1 = "${rowEntry}");
              }
            • 95
              else {
              • 96
                AssertClick( key_rowEntry = "${rowEntry}", locator1 = "ContentRow#ENTRY_CONTENT_ENTRY_NAME", value1 = "${rowEntry}");
              }
          • 6
            Navigator.gotoNavItem(navItem = "Assignees");
            • 82
              var key_navItem = "${navItem}";
            • 84
              AssertClick( locator1 = "NavBar#NAV_ITEM_LINK", value1 = "${navItem}");
            • 88
              AssertElementPresent(locator1 = "NavBar#ACTIVE_NAV_ITEM_LINK");
          • 8
            Navigator.gotoNavItem(navItem = "${assigneeType}");
            • 82
              var key_navItem = "${navItem}";
            • 84
              AssertClick( locator1 = "NavBar#NAV_ITEM_LINK", value1 = "${navItem}");
            • 88
              AssertElementPresent(locator1 = "NavBar#ACTIVE_NAV_ITEM_LINK");
        • 48
          LexiconEntry.gotoAdd();
          • 51
            WaitForPageLoad();
          • 53
            Click(locator1 = "Button#PLUS");
        • 50
          WaitForLiferayEvent.initializeLiferayEventLog();
        • 52
          SelectFrame(locator1 = "IFrame#SELECT_ASSIGNEES");
        • 54
          Search.searchCP(searchTerm = "${assigneeName}");
          • 25
            AssertElementPresent(locator1 = "TextInput#SEARCH");
          • 27
            AssertElementPresent(locator1 = "Icon#BASIC_SEARCH");
          • 29
            Type( locator1 = "TextInput#SEARCH", value1 = "${searchTerm}");
          • 33
            KeyPress( locator1 = "TextInput#SEARCH", value1 = "\RETURN");
          • 37
            if (!(isSet(modal))) {
            • 38
              WaitForLiferayEvent.initializeLiferayEventLog();
            }
        • 56
          var key_assigneeName = "${assigneeName}";
        • 58
          AssertTextEquals( locator1 = "RolesAssignMembers#ADD_ASSIGNEE_TABLE_NAME", value1 = "${assigneeName}");
        • 62
          Check(locator1 = "RolesAssignMembers#ADD_ASSIGNEE_TABLE_CHECKBOX");
        • 64
          SelectFrameTop(value1 = "relative=top");
        • 66
          Button.clickAdd();
          • 10
            Button.click(button = "Add");
            • 4
              Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
        • 68
          Alert.viewSuccessMessage();
          • 118
            VerifyElementPresent(locator1 = "Message#SUCCESS_DISMISSIBLE");
      • 638
        JSONUser.addUser( userEmailAddress = "userea@liferay.com", userFirstName = "userfn", userLastName = "userln", userScreenName = "usersn");
        • 4
          Variables.assertDefined(parameterList = "${userEmailAddress},${userFirstName},${userLastName},${userScreenName}");
          • 5
            if (!(isSet(parameterList))) {
            • 6
              fail("Please define a parameter list in 'parameterList'");
            }
          • 9
            for (var parameter : list "${parameterList}") {
            • 13
              var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
            • 17
              if (("${undefined}" == "true") && ("${parameter}" != "false")) {
              • 18
                fail("Please set '${parameter}'");
              }
            }
        • 6
          var locale = JSONUserSetter.setLocale(locale = "${preferredLocale}");
          • 18
            if (!(isSet(locale))) {
            • 19
              var locale = "";
            }
          • 21
            else {
            • 22
              Object.assertValidLocale(locale = "${locale}");
              • 5
                Variables.assertDefined(parameterList = "${locale}");
                • 5
                  if (!(isSet(parameterList))) {
                  • 6
                    fail("Please define a parameter list in 'parameterList'");
                  }
                • 9
                  for (var parameter : list "${parameterList}") {
                  • 13
                    var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                  • 17
                    if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                    • 18
                      fail("Please set '${parameter}'");
                    }
                  }
              • 7
                if (!(contains("ar_SA,ca_AD,zh_CN,zh_TW,cs_CZ,nl_NL,en_US,fr_FR,de_DE,el_GR,hu_HU,it_IT,ja_JP,ko_KR,pt_BR,ru_RU,es_ES,tr_TR,vi_VN", "${locale}"))) {
                • 8
                  fail("Please use a valid Liferay locale.");
                }
            }
          • 25
            return "${locale}";
        • 8
          var userFirstName = JSONUserSetter.setUserFirstName(userFirstName = "${userFirstName}");
          • 84
            Variables.assertDefined(parameterList = "${userFirstName}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 86
            var userFirstName = URLUtil.encodeUTF8("${userFirstName}");
          • 88
            return "${userFirstName}";
        • 10
          var userLastName = JSONUserSetter.setUserLastName(userLastName = "${userLastName}");
          • 115
            Variables.assertDefined(parameterList = "${userLastName}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 117
            var userLastName = URLUtil.encodeUTF8("${userLastName}");
          • 119
            return "${userLastName}";
        • 12
          var serviceContext = JSONUserSetter.setServiceContext( assetCategoryIds = "${assetCategoryIds}", assetTagNames = "${assetTagNames}", serviceContext = "${serviceContext}", workflowAction = "${workflowAction}");
          • 53
            if (!(isSet(serviceContext))) {
            • 54
              var serviceContext = JSONServiceContextUtil.setServiceContext( addGroupPermissions = "true", addGuestPermissions = "true", assetCategoryIds = "${assetCategoryIds}", assetTagNames = "${assetTagNames}", workflowAction = "${workflowAction}");
              • 116
                var serviceContext = "{}";
              • 118
                if (isSet(assetCategoryIds)) {
                • 119
                  var serviceContext = JSONServiceContextUtil._addAssetCategoryIds( assetCategoryIds = "${assetCategoryIds}", json = "${serviceContext}");
                  • 4
                    Variables.assertDefined(parameterList = "${json},${assetCategoryIds}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 6
                    var json = JSONUtil2._addJSONArray( json = "${json}", key = "assetCategoryIds");
                    • 5
                      if (!(isSet(json)) || !(isSet(key))) {
                      • 6
                        fail("Error, 'JSON' and 'key' must all be set");
                      }
                    • 11
                      var bool = JSONUtil2._isJSONArrayPresent( json = "${json}", key = "${key}");
                      • 120
                        var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*\[.*?\]", "1");
                      • 122
                        if ("${temp}" == "${key}") {
                        • 123
                          return "TRUE";
                        }
                      • 125
                        else {
                        • 126
                          return "FALSE";
                        }
                    • 15
                      if ("${bool}" == "TRUE") {
                      • 16
                        echo("JSON array ${key}' already added, returning original JSON");
                      }
                    • 18
                      else {
                      • 19
                        if ("${json}" == "{}") {
                        • 20
                          var json = '''{"${key}" : []}''';
                        }
                      • 22
                        else {
                        • 23
                          var json = StringUtil.regexReplaceFirst("${json}", "(.*)\}", "$1, \"${key}\": []}");
                        }
                      }
                    • 27
                      return "${json}";
                  • 10
                    var json = JSONUtil2._addJSONArrayValues( json = "${json}", key = "assetCategoryIds", values = "${assetCategoryIds}");
                    • 32
                      if (!(isSet(json)) || !(isSet(key)) || !(isSet(values))) {
                      • 33
                        fail("Error, 'JSON', 'key', and 'values' must all be set");
                      }
                    • 36
                      var bool = JSONUtil2._isJSONArrayPresent( json = "${json}", key = "${key}");
                      • 120
                        var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*\[.*?\]", "1");
                      • 122
                        if ("${temp}" == "${key}") {
                        • 123
                          return "TRUE";
                        }
                      • 125
                        else {
                        • 126
                          return "FALSE";
                        }
                    • 40
                      if ("${bool}" == "FALSE") {
                      • 41
                        fail("Error, '${key}' does not exist in the JSON");
                      }
                    • 44
                      for (var value : list "${values}") {
                      • 45
                        var temp = RegexUtil.replace("${json}", "\"${key}\"\s*:\s*(\[.*?\])", "1");
                      • 47
                        if (contains(""${temp}"", ""${value}"")) {
                        • 48
                          fail("'${value}' already exists inside 'JSON'");
                        }
                      • 51
                        if ("${temp}" == "[]") {
                        • 55
                          var json = StringUtil.regexReplaceFirst("${json}", "(\"${key}\"\s*:\s*)\[\]", "$1[\"${value}\"]");
                        }
                      • 57
                        else {
                        • 58
                          var json = StringUtil.regexReplaceFirst("${json}", "(\"${key}\"\s*:\s*)(\[.*?)\]", "$1$2, \"${value}\"]");
                        }
                      }
                    • 62
                      return "${json}";
                  • 15
                    return "${json}";
                }
              • 124
                if (isSet(assetTagNames)) {
                • 125
                  var serviceContext = JSONServiceContextUtil._addAssetTagNames( assetTagNames = "${assetTagNames}", json = "${serviceContext}");
                  • 19
                    Variables.assertDefined(parameterList = "${json},${assetTagNames}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 21
                    var json = JSONUtil2._addJSONArray( json = "${json}", key = "assetTagNames");
                    • 5
                      if (!(isSet(json)) || !(isSet(key))) {
                      • 6
                        fail("Error, 'JSON' and 'key' must all be set");
                      }
                    • 11
                      var bool = JSONUtil2._isJSONArrayPresent( json = "${json}", key = "${key}");
                      • 120
                        var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*\[.*?\]", "1");
                      • 122
                        if ("${temp}" == "${key}") {
                        • 123
                          return "TRUE";
                        }
                      • 125
                        else {
                        • 126
                          return "FALSE";
                        }
                    • 15
                      if ("${bool}" == "TRUE") {
                      • 16
                        echo("JSON array ${key}' already added, returning original JSON");
                      }
                    • 18
                      else {
                      • 19
                        if ("${json}" == "{}") {
                        • 20
                          var json = '''{"${key}" : []}''';
                        }
                      • 22
                        else {
                        • 23
                          var json = StringUtil.regexReplaceFirst("${json}", "(.*)\}", "$1, \"${key}\": []}");
                        }
                      }
                    • 27
                      return "${json}";
                  • 25
                    var json = JSONUtil2._addJSONArrayValues( json = "${json}", key = "assetTagNames", values = "${assetTagNames}");
                    • 32
                      if (!(isSet(json)) || !(isSet(key)) || !(isSet(values))) {
                      • 33
                        fail("Error, 'JSON', 'key', and 'values' must all be set");
                      }
                    • 36
                      var bool = JSONUtil2._isJSONArrayPresent( json = "${json}", key = "${key}");
                      • 120
                        var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*\[.*?\]", "1");
                      • 122
                        if ("${temp}" == "${key}") {
                        • 123
                          return "TRUE";
                        }
                      • 125
                        else {
                        • 126
                          return "FALSE";
                        }
                    • 40
                      if ("${bool}" == "FALSE") {
                      • 41
                        fail("Error, '${key}' does not exist in the JSON");
                      }
                    • 44
                      for (var value : list "${values}") {
                      • 45
                        var temp = RegexUtil.replace("${json}", "\"${key}\"\s*:\s*(\[.*?\])", "1");
                      • 47
                        if (contains(""${temp}"", ""${value}"")) {
                        • 48
                          fail("'${value}' already exists inside 'JSON'");
                        }
                      • 51
                        if ("${temp}" == "[]") {
                        • 55
                          var json = StringUtil.regexReplaceFirst("${json}", "(\"${key}\"\s*:\s*)\[\]", "$1[\"${value}\"]");
                        }
                      • 57
                        else {
                        • 58
                          var json = StringUtil.regexReplaceFirst("${json}", "(\"${key}\"\s*:\s*)(\[.*?)\]", "$1$2, \"${value}\"]");
                        }
                      }
                    • 62
                      return "${json}";
                  • 30
                    return "${json}";
                }
              • 130
                if (isSet(addGroupPermissions)) {
                • 131
                  var serviceContext = JSONServiceContextUtil._addGroupPermissions( addGroupPermissions = "${addGroupPermissions}", json = "${serviceContext}");
                  • 64
                    Variables.assertDefined(parameterList = "${json},${addGroupPermissions}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 66
                    if (!(("${addGroupPermissions}" == "true") || ("${addGroupPermissions}" == "false"))) {
                    • 67
                      fail("Invalid addGroupPermissions: '${addGroupPermissions}' specified. Allowed values are 'true' or 'false'.");
                    }
                  • 70
                    var json = JSONUtil2._addJSONObject( json = "${json}", key = "addGroupPermissions", value = "${addGroupPermissions}");
                    • 67
                      if (!(isSet(json)) || !(isSet(key)) || !(isSet(value))) {
                      • 68
                        fail("Error, 'JSON', 'key', and 'value' must all be set");
                      }
                    • 71
                      var bool = JSONUtil2._isJSONObjectPresent( json = "${json}", key = "${key}");
                      • 132
                        var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*", "1");
                      • 134
                        if ("${temp}" == "${key}") {
                        • 135
                          return "TRUE";
                        }
                      • 137
                        else {
                        • 138
                          return "FALSE";
                        }
                    • 75
                      if ("${bool}" == "TRUE") {
                      • 76
                        fail("Error, '${key}' already exists in the JSON");
                      }
                    • 79
                      if ("${json}" == "{}") {
                      • 80
                        var json = '''{"${key}" : ${value}}''';
                      }
                    • 82
                      else {
                      • 83
                        var json = StringUtil.regexReplaceFirst("${json}", "(.*)\}", "$1, \"${key}\": ${value}}");
                      }
                    • 86
                      return "${json}";
                  • 75
                    return "${json}";
                }
              • 136
                if (isSet(addGuestPermissions)) {
                • 137
                  var serviceContext = JSONServiceContextUtil._addGuestPermissions( addGuestPermissions = "${addGuestPermissions}", json = "${serviceContext}");
                  • 79
                    Variables.assertDefined(parameterList = "${json},${addGuestPermissions}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 81
                    if (!(("${addGuestPermissions}" == "true") || ("${addGuestPermissions}" == "false"))) {
                    • 82
                      fail("Invalid addGuestPermissions: '${addGuestPermissions}' specified. Allowed values are 'true' or 'false'.");
                    }
                  • 85
                    var json = JSONUtil2._addJSONObject( json = "${json}", key = "addGuestPermissions", value = "${addGuestPermissions}");
                    • 67
                      if (!(isSet(json)) || !(isSet(key)) || !(isSet(value))) {
                      • 68
                        fail("Error, 'JSON', 'key', and 'value' must all be set");
                      }
                    • 71
                      var bool = JSONUtil2._isJSONObjectPresent( json = "${json}", key = "${key}");
                      • 132
                        var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*", "1");
                      • 134
                        if ("${temp}" == "${key}") {
                        • 135
                          return "TRUE";
                        }
                      • 137
                        else {
                        • 138
                          return "FALSE";
                        }
                    • 75
                      if ("${bool}" == "TRUE") {
                      • 76
                        fail("Error, '${key}' already exists in the JSON");
                      }
                    • 79
                      if ("${json}" == "{}") {
                      • 80
                        var json = '''{"${key}" : ${value}}''';
                      }
                    • 82
                      else {
                      • 83
                        var json = StringUtil.regexReplaceFirst("${json}", "(.*)\}", "$1, \"${key}\": ${value}}");
                      }
                    • 86
                      return "${json}";
                  • 90
                    return "${json}";
                }
              • 142
                if (isSet(attributes)) {
                • 143
                  var serviceContext = JSONServiceContextUtil._addAttributes( attributes = "${attributes}", json = "${serviceContext}");
                  • 34
                    Variables.assertDefined(parameterList = "${json},${attributes}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 36
                    var json = JSONUtil2._addJSONObject( json = "${json}", key = "attributes", value = "${attributes}");
                    • 67
                      if (!(isSet(json)) || !(isSet(key)) || !(isSet(value))) {
                      • 68
                        fail("Error, 'JSON', 'key', and 'value' must all be set");
                      }
                    • 71
                      var bool = JSONUtil2._isJSONObjectPresent( json = "${json}", key = "${key}");
                      • 132
                        var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*", "1");
                      • 134
                        if ("${temp}" == "${key}") {
                        • 135
                          return "TRUE";
                        }
                      • 137
                        else {
                        • 138
                          return "FALSE";
                        }
                    • 75
                      if ("${bool}" == "TRUE") {
                      • 76
                        fail("Error, '${key}' already exists in the JSON");
                      }
                    • 79
                      if ("${json}" == "{}") {
                      • 80
                        var json = '''{"${key}" : ${value}}''';
                      }
                    • 82
                      else {
                      • 83
                        var json = StringUtil.regexReplaceFirst("${json}", "(.*)\}", "$1, \"${key}\": ${value}}");
                      }
                    • 86
                      return "${json}";
                  • 41
                    return "${json}";
                }
              • 148
                if (isSet(groupName)) {
                • 149
                  var serviceContext = JSONServiceContextUtil._addGroupId( groupName = "${groupName}", json = "${serviceContext}", site = "${site}");
                  • 45
                    Variables.assertDefined(parameterList = "${groupName},${json}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 47
                    if (!(isSet(site))) {
                    • 48
                      var site = "true";
                    }
                  • 51
                    var groupId = JSONGroupAPI._getGroupIdByName( groupName = "${groupName}", site = "${site}");
                    • 207
                      Variables.assertDefined(parameterList = "${groupName},${site}");
                      • 5
                        if (!(isSet(parameterList))) {
                        • 6
                          fail("Please define a parameter list in 'parameterList'");
                        }
                      • 9
                        for (var parameter : list "${parameterList}") {
                        • 13
                          var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                        • 17
                          if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                          • 18
                            fail("Please set '${parameter}'");
                          }
                        }
                    • 209
                      if (!(isSet(portalURL))) {
                      • 210
                        var portalURL = JSONCompany.getPortalURL();
                        • 66
                          var portalURL = PropsUtil.get("portal.url");
                        • 68
                          return "${portalURL}";
                      }
                    • 213
                      var companyId = JSONCompany.getCompanyId(portalURL = "${portalURL}");
                      • 4
                        if (!(isSet(portalInstanceName))) {
                        • 5
                          var portalInstanceName = JSONCompany.getPortalInstanceName();
                          • 50
                            var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                          • 51
                            var testPortalInstance = PropsUtil.get("test.portal.instance");
                          • 53
                            if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                            • 54
                              var portalURL = JSONCompany.getPortalURL();
                              • 66
                                var portalURL = PropsUtil.get("portal.url");
                              • 68
                                return "${portalURL}";
                            • 56
                              var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                              • 72
                                Variables.assertDefined(parameterList = "${portalURL}");
                                • 5
                                  if (!(isSet(parameterList))) {
                                  • 6
                                    fail("Please define a parameter list in 'parameterList'");
                                  }
                                • 9
                                  for (var parameter : list "${parameterList}") {
                                  • 13
                                    var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                                  • 17
                                    if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                    • 18
                                      fail("Please set '${parameter}'");
                                    }
                                  }
                              • 74
                                var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                              • 75
                                var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                              • 77
                                return "${portalInstanceName}";
                            • 58
                              return "${portalInstanceName}";
                            }
                          • 60
                            else {
                            • 61
                              return "localhost";
                            }
                        }
                      • 8
                        if (!(isSet(portalURL))) {
                        • 9
                          var portalURL = JSONCompany.getPortalURL();
                          • 66
                            var portalURL = PropsUtil.get("portal.url");
                          • 68
                            return "${portalURL}";
                        }
                      • 12
                        if (!(isSet(creatorEmailAddress))) {
                        • 13
                          if ("${authenticationMethod}" == "By Screen Name") {
                          • 14
                            if (!(isSet(userScreenName))) {
                            • 15
                              var creatorEmailAddress = "test";
                            }
                          • 17
                            else {
                            • 18
                              var creatorEmailAddress = "${userScreenName}";
                            }
                          }
                        • 21
                          else {
                          • 22
                            var creatorEmailAddress = "test@liferay.com";
                          }
                        }
                      • 26
                        if (!(isSet(creatorPassword))) {
                        • 27
                          var creatorPassword = "test";
                        }
                      • 30
                        var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                      • 34
                        var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                      • 36
                        return "${companyId}";
                    • 215
                      var parentGroupId = JSONGroupSetter.setParentGroupId( grandParentGroupName = "${grandParentGroupName}", parentGroupName = "${parentGroupName}");
                      • 85
                        if (isSet(parentGroupName)) {
                        • 86
                          var parentGroupId = JSONGroupAPI._getParentGroupIdByName( grandParentGroupName = "${grandParentGroupName}", groupName = "${parentGroupName}");
                          • 253
                            Variables.assertDefined(parameterList = "${groupName}");
                            • 5
                              if (!(isSet(parameterList))) {
                              • 6
                                fail("Please define a parameter list in 'parameterList'");
                              }
                            • 9
                              for (var parameter : list "${parameterList}") {
                              • 13
                                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                              • 17
                                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                • 18
                                  fail("Please set '${parameter}'");
                                }
                              }
                          • 255
                            var companyId = JSONCompany.getCompanyId();
                            • 4
                              if (!(isSet(portalInstanceName))) {
                              • 5
                                var portalInstanceName = JSONCompany.getPortalInstanceName();
                                • 50
                                  var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                                • 51
                                  var testPortalInstance = PropsUtil.get("test.portal.instance");
                                • 53
                                  if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                                  • 54
                                    var portalURL = JSONCompany.getPortalURL();
                                    • 66
                                      var portalURL = PropsUtil.get("portal.url");
                                    • 68
                                      return "${portalURL}";
                                  • 56
                                    var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                                    • 72
                                      Variables.assertDefined(parameterList = "${portalURL}");
                                      • 5
                                        if (!(isSet(parameterList))) {
                                        • 6
                                          fail("Please define a parameter list in 'parameterList'");
                                        }
                                      • 9
                                        for (var parameter : list "${parameterList}") {
                                        • 13
                                          var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                                        • 17
                                          if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                          • 18
                                            fail("Please set '${parameter}'");
                                          }
                                        }
                                    • 74
                                      var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                                    • 75
                                      var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                                    • 77
                                      return "${portalInstanceName}";
                                  • 58
                                    return "${portalInstanceName}";
                                  }
                                • 60
                                  else {
                                  • 61
                                    return "localhost";
                                  }
                              }
                            • 8
                              if (!(isSet(portalURL))) {
                              • 9
                                var portalURL = JSONCompany.getPortalURL();
                                • 66
                                  var portalURL = PropsUtil.get("portal.url");
                                • 68
                                  return "${portalURL}";
                              }
                            • 12
                              if (!(isSet(creatorEmailAddress))) {
                              • 13
                                if ("${authenticationMethod}" == "By Screen Name") {
                                • 14
                                  if (!(isSet(userScreenName))) {
                                  • 15
                                    var creatorEmailAddress = "test";
                                  }
                                • 17
                                  else {
                                  • 18
                                    var creatorEmailAddress = "${userScreenName}";
                                  }
                                }
                              • 21
                                else {
                                • 22
                                  var creatorEmailAddress = "test@liferay.com";
                                }
                              }
                            • 26
                              if (!(isSet(creatorPassword))) {
                              • 27
                                var creatorPassword = "test";
                              }
                            • 30
                              var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                            • 34
                              var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                            • 36
                              return "${companyId}";
                          • 257
                            var grandParentGroupId = JSONGroupSetter.setGrandParentGroupId(grandParentGroupName = "${grandParentGroupName}");
                            • 15
                              if (isSet(grandParentGroupName)) {
                              • 16
                                if (!(isSet(site))) {
                                • 17
                                  var site = "true";
                                }
                              • 20
                                var grandParentGroupId = JSONGroupAPI._getGrandParentGroupIdByName( groupName = "${grandParentGroupName}", site = "${site}");
                                • 154
                                  Variables.assertDefined(parameterList = "${groupName}");
                                  • 5
                                    if (!(isSet(parameterList))) {
                                    • 6
                                      fail("Please define a parameter list in 'parameterList'");
                                    }
                                  • 9
                                    for (var parameter : list "${parameterList}") {
                                    • 13
                                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                                    • 17
                                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                      • 18
                                        fail("Please set '${parameter}'");
                                      }
                                    }
                                • 156
                                  var companyId = JSONCompany.getCompanyId();
                                  • 4
                                    if (!(isSet(portalInstanceName))) {
                                    • 5
                                      var portalInstanceName = JSONCompany.getPortalInstanceName();
                                      • 50
                                        var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                                      • 51
                                        var testPortalInstance = PropsUtil.get("test.portal.instance");
                                      • 53
                                        if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                                        • 54
                                          var portalURL = JSONCompany.getPortalURL();
                                          • 66
                                            var portalURL = PropsUtil.get("portal.url");
                                          • 68
                                            return "${portalURL}";
                                        • 56
                                          var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                                          • 72
                                            Variables.assertDefined(parameterList = "${portalURL}");
                                            • 5
                                              if (!(isSet(parameterList))) {
                                              • 6
                                                fail("Please define a parameter list in 'parameterList'");
                                              }
                                            • 9
                                              for (var parameter : list "${parameterList}") {
                                              • 13
                                                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                                              • 17
                                                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                                • 18
                                                  fail("Please set '${parameter}'");
                                                }
                                              }
                                          • 74
                                            var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                                          • 75
                                            var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                                          • 77
                                            return "${portalInstanceName}";
                                        • 58
                                          return "${portalInstanceName}";
                                        }
                                      • 60
                                        else {
                                        • 61
                                          return "localhost";
                                        }
                                    }
                                  • 8
                                    if (!(isSet(portalURL))) {
                                    • 9
                                      var portalURL = JSONCompany.getPortalURL();
                                      • 66
                                        var portalURL = PropsUtil.get("portal.url");
                                      • 68
                                        return "${portalURL}";
                                    }
                                  • 12
                                    if (!(isSet(creatorEmailAddress))) {
                                    • 13
                                      if ("${authenticationMethod}" == "By Screen Name") {
                                      • 14
                                        if (!(isSet(userScreenName))) {
                                        • 15
                                          var creatorEmailAddress = "test";
                                        }
                                      • 17
                                        else {
                                        • 18
                                          var creatorEmailAddress = "${userScreenName}";
                                        }
                                      }
                                    • 21
                                      else {
                                      • 22
                                        var creatorEmailAddress = "test@liferay.com";
                                      }
                                    }
                                  • 26
                                    if (!(isSet(creatorPassword))) {
                                    • 27
                                      var creatorPassword = "test";
                                    }
                                  • 30
                                    var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                                  • 34
                                    var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                                  • 36
                                    return "${companyId}";
                                • 158
                                  var portalURL = JSONCompany.getPortalURL();
                                  • 66
                                    var portalURL = PropsUtil.get("portal.url");
                                  • 68
                                    return "${portalURL}";
                                • 160
                                  if (!(isSet(site))) {
                                  • 161
                                    var site = "true";
                                  }
                                • 164
                                  var curl = ''' ${portalURL}/api/jsonws/group/get-groups \ -u test@liferay.com:test \ -d companyId=${companyId} \ -d parentGroupId=0 \ -d site=${site} ''';
                                • 171
                                  var groupId = JSONCurlUtil.post("${curl}", "$.[?(@['nameCurrentValue'] == '${groupName}')]['groupId']");
                                • 173
                                  if ("${groupId}" == "") {
                                  • 174
                                    fail("FAIL. Cannot find group.");
                                  }
                                • 177
                                  return "${groupId}";
                              }
                            • 24
                              else {
                              • 25
                                var grandParentGroupId = "0";
                              }
                            • 28
                              return "${grandParentGroupId}";
                          • 259
                            var portalURL = JSONCompany.getPortalURL();
                            • 66
                              var portalURL = PropsUtil.get("portal.url");
                            • 68
                              return "${portalURL}";
                          • 261
                            var curl = ''' ${portalURL}/api/jsonws/group/get-groups/company-id/${companyId}/parent-group-id/${grandParentGroupId}/site/true \ -u test@liferay.com:test ''';
                          • 265
                            var groupId = JSONCurlUtil.get("${curl}", "$.[?(@['nameCurrentValue'] == '${groupName}')]['groupId']");
                          • 267
                            if ("${groupId}" == "") {
                            • 268
                              fail("FAIL. Cannot find group.");
                            }
                          • 271
                            return "${groupId}";
                        }
                      • 90
                        else {
                        • 91
                          var parentGroupId = "0";
                        }
                      • 94
                        return "${parentGroupId}";
                    • 219
                      var curl = ''' ${portalURL}/api/jsonws/group/get-groups/company-id/${companyId}/parent-group-id/${parentGroupId}/site/${site} \ -u test@liferay.com:test ''';
                    • 223
                      var groupId = JSONCurlUtil.get("${curl}", "$.[?(@['nameCurrentValue'] == '${groupName}')]['groupId']");
                    • 225
                      if ("${groupId}" == "") {
                      • 226
                        fail("FAIL. Cannot find group.");
                      }
                    • 229
                      echo("## * GroupId: ${groupId}");
                    • 231
                      return "${groupId}";
                  • 55
                    var json = JSONUtil2._addJSONObject( json = "${json}", key = "scopeGroupId", value = "${groupId}");
                    • 67
                      if (!(isSet(json)) || !(isSet(key)) || !(isSet(value))) {
                      • 68
                        fail("Error, 'JSON', 'key', and 'value' must all be set");
                      }
                    • 71
                      var bool = JSONUtil2._isJSONObjectPresent( json = "${json}", key = "${key}");
                      • 132
                        var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*", "1");
                      • 134
                        if ("${temp}" == "${key}") {
                        • 135
                          return "TRUE";
                        }
                      • 137
                        else {
                        • 138
                          return "FALSE";
                        }
                    • 75
                      if ("${bool}" == "TRUE") {
                      • 76
                        fail("Error, '${key}' already exists in the JSON");
                      }
                    • 79
                      if ("${json}" == "{}") {
                      • 80
                        var json = '''{"${key}" : ${value}}''';
                      }
                    • 82
                      else {
                      • 83
                        var json = StringUtil.regexReplaceFirst("${json}", "(.*)\}", "$1, \"${key}\": ${value}}");
                      }
                    • 86
                      return "${json}";
                  • 60
                    return "${json}";
                }
              • 155
                if (isSet(workflowAction)) {
                • 156
                  var serviceContext = JSONServiceContextUtil._addWorkflowAction( json = "${serviceContext}", workflowAction = "${workflowAction}");
                  • 95
                    Variables.assertDefined(parameterList = "${json},${workflowAction}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 97
                    if ("${workflowAction}" == "DRAFT") {
                    • 98
                      var workflowActionNumber = "2";
                    }
                  • 100
                    else if ("${workflowAction}" == "PUBLISH") {
                    • 101
                      var workflowActionNumber = "1";
                    }
                  • 103
                    else {
                    • 104
                      fail("Invalid workflowAction: '${workflowAction}' specified. Allowed values are 'DRAFT' or 'PUBLISH'.");
                    }
                  • 107
                    var json = JSONUtil2._addJSONObject( json = "${json}", key = "workflowAction", value = "${workflowActionNumber}");
                    • 67
                      if (!(isSet(json)) || !(isSet(key)) || !(isSet(value))) {
                      • 68
                        fail("Error, 'JSON', 'key', and 'value' must all be set");
                      }
                    • 71
                      var bool = JSONUtil2._isJSONObjectPresent( json = "${json}", key = "${key}");
                      • 132
                        var temp = RegexUtil.replace("${json}", "\"(${key})\"\s*:\s*", "1");
                      • 134
                        if ("${temp}" == "${key}") {
                        • 135
                          return "TRUE";
                        }
                      • 137
                        else {
                        • 138
                          return "FALSE";
                        }
                    • 75
                      if ("${bool}" == "TRUE") {
                      • 76
                        fail("Error, '${key}' already exists in the JSON");
                      }
                    • 79
                      if ("${json}" == "{}") {
                      • 80
                        var json = '''{"${key}" : ${value}}''';
                      }
                    • 82
                      else {
                      • 83
                        var json = StringUtil.regexReplaceFirst("${json}", "(.*)\}", "$1, \"${key}\": ${value}}");
                      }
                    • 86
                      return "${json}";
                  • 112
                    return "${json}";
                }
              • 161
                return "${serviceContext}";
            }
          • 62
            return "${serviceContext}";
        • 18
          if (!(isSet(birthdayDay))) {
          • 19
            var birthdayDay = "31";
          }
        • 22
          if (!(isSet(birthdayMonth))) {
          • 23
            var birthdayMonth = "4";
          }
        • 26
          if (!(isSet(birthdayYear))) {
          • 27
            var birthdayYear = "1986";
          }
        • 30
          if (!(isSet(jobTitle))) {
          • 31
            var jobTitle = "";
          }
        • 34
          if (!(isSet(creatorEmailAddress))) {
          • 35
            var creatorEmailAddress = "test@liferay.com";
          }
        • 38
          if (!(isSet(creatorPassword))) {
          • 39
            var creatorPassword = "test";
          }
        • 42
          JSONUserAPI._addUser( birthdayDay = "${birthdayDay}", birthdayMonth = "${birthdayMonth}", birthdayYear = "${birthdayYear}", creatorEmailAddress = "${creatorEmailAddress}", creatorPassword = "${creatorPassword}", jobTitle = "${jobTitle}", locale = "${locale}", portalInstanceName = "${portalInstanceName}", serviceContext = "${serviceContext}", specificURL = "${specificURL}", userEmailAddress = "${userEmailAddress}", userFirstName = "${userFirstName}", userLastName = "${userLastName}", userScreenName = "${userScreenName}");
          • 4
            Variables.assertDefined(parameterList = "${locale},${userEmailAddress},${userFirstName},${userLastName},${userScreenName}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 6
            if (isSet(specificURL)) {
            • 7
              var portalURL = "${specificURL}";
            }
          • 9
            else {
            • 10
              var portalURL = JSONCompany.getPortalURL();
              • 66
                var portalURL = PropsUtil.get("portal.url");
              • 68
                return "${portalURL}";
            }
          • 13
            var companyId = JSONCompany.getCompanyId( creatorEmailAddress = "${creatorEmailAddress}", portalInstanceName = "${portalInstanceName}", portalURL = "${portalURL}");
            • 4
              if (!(isSet(portalInstanceName))) {
              • 5
                var portalInstanceName = JSONCompany.getPortalInstanceName();
                • 50
                  var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                • 51
                  var testPortalInstance = PropsUtil.get("test.portal.instance");
                • 53
                  if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                  • 54
                    var portalURL = JSONCompany.getPortalURL();
                    • 66
                      var portalURL = PropsUtil.get("portal.url");
                    • 68
                      return "${portalURL}";
                  • 56
                    var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                    • 72
                      Variables.assertDefined(parameterList = "${portalURL}");
                      • 5
                        if (!(isSet(parameterList))) {
                        • 6
                          fail("Please define a parameter list in 'parameterList'");
                        }
                      • 9
                        for (var parameter : list "${parameterList}") {
                        • 13
                          var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                        • 17
                          if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                          • 18
                            fail("Please set '${parameter}'");
                          }
                        }
                    • 74
                      var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                    • 75
                      var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                    • 77
                      return "${portalInstanceName}";
                  • 58
                    return "${portalInstanceName}";
                  }
                • 60
                  else {
                  • 61
                    return "localhost";
                  }
              }
            • 8
              if (!(isSet(portalURL))) {
              • 9
                var portalURL = JSONCompany.getPortalURL();
                • 66
                  var portalURL = PropsUtil.get("portal.url");
                • 68
                  return "${portalURL}";
              }
            • 12
              if (!(isSet(creatorEmailAddress))) {
              • 13
                if ("${authenticationMethod}" == "By Screen Name") {
                • 14
                  if (!(isSet(userScreenName))) {
                  • 15
                    var creatorEmailAddress = "test";
                  }
                • 17
                  else {
                  • 18
                    var creatorEmailAddress = "${userScreenName}";
                  }
                }
              • 21
                else {
                • 22
                  var creatorEmailAddress = "test@liferay.com";
                }
              }
            • 26
              if (!(isSet(creatorPassword))) {
              • 27
                var creatorPassword = "test";
              }
            • 30
              var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
            • 34
              var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
            • 36
              return "${companyId}";
          • 18
            var curl = ''' ${portalURL}/api/jsonws/user/add-user \ -u ${creatorEmailAddress}:${creatorPassword} \ -d companyId=${companyId} \ -d autoPassword=false \ -d password1=initPassword \ -d password2=initPassword \ -d autoScreenName=false \ -d screenName=${userScreenName} \ -d emailAddress=${userEmailAddress} \ -d facebookId=0 \ -d openId= \ -d locale=${locale} \ -d firstName=${userFirstName} \ -d middleName= \ -d lastName=${userLastName} \ -d prefixId=0 \ -d suffixId=0 \ -d male=true \ -d birthdayMonth=${birthdayMonth} \ -d birthdayDay=${birthdayDay} \ -d birthdayYear=${birthdayYear} \ -d jobTitle=${jobTitle} \ -d groupIds= \ -d organizationIds= \ -d roleIds= \ -d userGroupIds= \ -d sendEmail=true \ -d serviceContext=${serviceContext} ''';
          • 49
            com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
        • 58
          JSONUserAPI._disablePasswordChangeRequired();
          • 165
            if (isSet(specificURL)) {
            • 166
              var portalURL = "${specificURL}";
            }
          • 168
            else {
            • 169
              var portalURL = JSONCompany.getPortalURL();
              • 66
                var portalURL = PropsUtil.get("portal.url");
              • 68
                return "${portalURL}";
            }
          • 172
            var passwordPolicyId = JSONPasswordPolicy.getPasswordPolicyIdByName(passwordPolicyName = "Default Password Policy");
            • 4
              Variables.assertDefined(parameterList = "${passwordPolicyName}");
              • 5
                if (!(isSet(parameterList))) {
                • 6
                  fail("Please define a parameter list in 'parameterList'");
                }
              • 9
                for (var parameter : list "${parameterList}") {
                • 13
                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                • 17
                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                  • 18
                    fail("Please set '${parameter}'");
                  }
                }
            • 6
              var companyId = JSONCompany.getCompanyId();
              • 4
                if (!(isSet(portalInstanceName))) {
                • 5
                  var portalInstanceName = JSONCompany.getPortalInstanceName();
                  • 50
                    var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                  • 51
                    var testPortalInstance = PropsUtil.get("test.portal.instance");
                  • 53
                    if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                    • 54
                      var portalURL = JSONCompany.getPortalURL();
                      • 66
                        var portalURL = PropsUtil.get("portal.url");
                      • 68
                        return "${portalURL}";
                    • 56
                      var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                      • 72
                        Variables.assertDefined(parameterList = "${portalURL}");
                        • 5
                          if (!(isSet(parameterList))) {
                          • 6
                            fail("Please define a parameter list in 'parameterList'");
                          }
                        • 9
                          for (var parameter : list "${parameterList}") {
                          • 13
                            var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                          • 17
                            if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                            • 18
                              fail("Please set '${parameter}'");
                            }
                          }
                      • 74
                        var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                      • 75
                        var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                      • 77
                        return "${portalInstanceName}";
                    • 58
                      return "${portalInstanceName}";
                    }
                  • 60
                    else {
                    • 61
                      return "localhost";
                    }
                }
              • 8
                if (!(isSet(portalURL))) {
                • 9
                  var portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                }
              • 12
                if (!(isSet(creatorEmailAddress))) {
                • 13
                  if ("${authenticationMethod}" == "By Screen Name") {
                  • 14
                    if (!(isSet(userScreenName))) {
                    • 15
                      var creatorEmailAddress = "test";
                    }
                  • 17
                    else {
                    • 18
                      var creatorEmailAddress = "${userScreenName}";
                    }
                  }
                • 21
                  else {
                  • 22
                    var creatorEmailAddress = "test@liferay.com";
                  }
                }
              • 26
                if (!(isSet(creatorPassword))) {
                • 27
                  var creatorPassword = "test";
                }
              • 30
                var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
              • 34
                var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
              • 36
                return "${companyId}";
            • 8
              var portalURL = JSONCompany.getPortalURL();
              • 66
                var portalURL = PropsUtil.get("portal.url");
              • 68
                return "${portalURL}";
            • 10
              var curl = ''' ${portalURL}/api/jsonws/passwordpolicy/search \ -u test@liferay.com:test -d companyId=${companyId} \ -d "name=${passwordPolicyName}" \ -d "start=-1" \ -d "end=-1" \ -d -orderByComparator= ''';
            • 19
              var passwordPolicyId = JSONCurlUtil.post("${curl}", "$.[?(@['name'] == '${passwordPolicyName}')]['passwordPolicyId']");
            • 21
              return "${passwordPolicyId}";
          • 174
            var curl = ''' ${portalURL}/api/jsonws/passwordpolicy/update-password-policy \ -u test@liferay.com:test \ -d passwordPolicyId=${passwordPolicyId} \ -d name="Default Password Policy" \ -d description="Default Password Policy" \ -d changeable=true \ -d changeRequired=false \ -d minAge=0 \ -d checkSyntax=false \ -d allowDictionaryWords=true \ -d minAlphanumeric=0 \ -d minLength=6 \ -d minLowerCase=0 \ -d minNumbers=1 \ -d minSymbols=0 \ -d minUpperCase=1 \ -d regex="(?=.{4})(?:[a-zA-Z0-9]*)" \ -d history=false \ -d historyCount=6 \ -d expireable=false \ -d maxAge=8640000 \ -d warningTime=86400 \ -d graceLimit=0 \ -d lockout=false \ -d maxFailure=3 \ -d lockoutDuration=0 \ -d resetFailureCount=600 \ -d resetTicketMaxAge=86400 ''';
          • 205
            com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
      • 644
        JSONUser.setFirstPassword( agreeToTermsAndAnswerReminderQuery = "true", requireReset = "false", userEmailAddress = "userea@liferay.com");
        • 228
          Variables.assertDefined(parameterList = "${userEmailAddress}");
          • 5
            if (!(isSet(parameterList))) {
            • 6
              fail("Please define a parameter list in 'parameterList'");
            }
          • 9
            for (var parameter : list "${parameterList}") {
            • 13
              var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
            • 17
              if (("${undefined}" == "true") && ("${parameter}" != "false")) {
              • 18
                fail("Please set '${parameter}'");
              }
            }
        • 230
          var newPassword = JSONUserSetter.setNewPassword(newPassword = "${newPassword}");
          • 29
            if (!(isSet(newPassword))) {
            • 30
              var newPassword = "test";
            }
          • 33
            return "${newPassword}";
        • 232
          var requireReset = JSONUserSetter.setRequireReset(requireReset = "${requireReset}");
          • 45
            if (!(isSet(requireReset))) {
            • 46
              var requireReset = "true";
            }
          • 49
            return "${requireReset}";
        • 234
          var userId = JSONUserSetter.setUserId(userEmailAddress = "${userEmailAddress}");
          • 92
            Variables.assertDefined(parameterList = "${userEmailAddress}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 94
            var userId = JSONUserAPI._getUserIdByEmailAddress( creatorEmailAddress = "${creatorEmailAddress}", creatorPassword = "${creatorPassword}", portalInstanceName = "${portalInstanceName}", userEmailAddress = "${userEmailAddress}");
            • 209
              Variables.assertDefined(parameterList = "${userEmailAddress}");
              • 5
                if (!(isSet(parameterList))) {
                • 6
                  fail("Please define a parameter list in 'parameterList'");
                }
              • 9
                for (var parameter : list "${parameterList}") {
                • 13
                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                • 17
                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                  • 18
                    fail("Please set '${parameter}'");
                  }
                }
            • 211
              var companyId = JSONCompany.getCompanyId( creatorEmailAddress = "${creatorEmailAddress}", creatorPassword = "${creatorPassword}", portalInstanceName = "${portalInstanceName}");
              • 4
                if (!(isSet(portalInstanceName))) {
                • 5
                  var portalInstanceName = JSONCompany.getPortalInstanceName();
                  • 50
                    var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                  • 51
                    var testPortalInstance = PropsUtil.get("test.portal.instance");
                  • 53
                    if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                    • 54
                      var portalURL = JSONCompany.getPortalURL();
                      • 66
                        var portalURL = PropsUtil.get("portal.url");
                      • 68
                        return "${portalURL}";
                    • 56
                      var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                      • 72
                        Variables.assertDefined(parameterList = "${portalURL}");
                        • 5
                          if (!(isSet(parameterList))) {
                          • 6
                            fail("Please define a parameter list in 'parameterList'");
                          }
                        • 9
                          for (var parameter : list "${parameterList}") {
                          • 13
                            var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                          • 17
                            if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                            • 18
                              fail("Please set '${parameter}'");
                            }
                          }
                      • 74
                        var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                      • 75
                        var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                      • 77
                        return "${portalInstanceName}";
                    • 58
                      return "${portalInstanceName}";
                    }
                  • 60
                    else {
                    • 61
                      return "localhost";
                    }
                }
              • 8
                if (!(isSet(portalURL))) {
                • 9
                  var portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                }
              • 12
                if (!(isSet(creatorEmailAddress))) {
                • 13
                  if ("${authenticationMethod}" == "By Screen Name") {
                  • 14
                    if (!(isSet(userScreenName))) {
                    • 15
                      var creatorEmailAddress = "test";
                    }
                  • 17
                    else {
                    • 18
                      var creatorEmailAddress = "${userScreenName}";
                    }
                  }
                • 21
                  else {
                  • 22
                    var creatorEmailAddress = "test@liferay.com";
                  }
                }
              • 26
                if (!(isSet(creatorPassword))) {
                • 27
                  var creatorPassword = "test";
                }
              • 30
                var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
              • 34
                var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
              • 36
                return "${companyId}";
            • 216
              if (isSet(specificURL)) {
              • 217
                var portalURL = "${specificURL}";
              }
            • 219
              else {
              • 220
                var portalURL = JSONCompany.getPortalURL();
                • 66
                  var portalURL = PropsUtil.get("portal.url");
                • 68
                  return "${portalURL}";
              }
            • 223
              if (!(isSet(creatorEmailAddress))) {
              • 224
                var creatorEmailAddress = "test@liferay.com";
              }
            • 227
              if (!(isSet(creatorPassword))) {
              • 228
                var creatorPassword = "test";
              }
            • 231
              var curl = ''' ${portalURL}/api/jsonws/user/get-user-by-email-address/company-id/${companyId}/email-address/${userEmailAddress} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
            • 235
              var userId = JSONCurlUtil.get("${curl}", "$['userId']");
            • 237
              return "${userId}";
          • 100
            return "${userId}";
        • 236
          JSONUserAPI._updatePassword( newPassword = "${newPassword}", requireReset = "${requireReset}", userId = "${userId}");
          • 321
            Variables.assertDefined(parameterList = "${userId},${newPassword},${requireReset}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 323
            if (isSet(specificURL)) {
            • 324
              var portalURL = "${specificURL}";
            }
          • 326
            else {
            • 327
              var portalURL = JSONCompany.getPortalURL();
              • 66
                var portalURL = PropsUtil.get("portal.url");
              • 68
                return "${portalURL}";
            }
          • 330
            var curl = ''' ${portalURL}/api/jsonws/user/update-password \ -u test@liferay.com:test \ -d userId=${userId} \ -d password1=${newPassword} \ -d password2=${newPassword} \ -d passwordReset=${requireReset} ''';
          • 339
            com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
        • 241
          if ("${requireReset}" == "false") {
          • 242
            JSONUserAPI._disablePasswordChangeRequired();
            • 165
              if (isSet(specificURL)) {
              • 166
                var portalURL = "${specificURL}";
              }
            • 168
              else {
              • 169
                var portalURL = JSONCompany.getPortalURL();
                • 66
                  var portalURL = PropsUtil.get("portal.url");
                • 68
                  return "${portalURL}";
              }
            • 172
              var passwordPolicyId = JSONPasswordPolicy.getPasswordPolicyIdByName(passwordPolicyName = "Default Password Policy");
              • 4
                Variables.assertDefined(parameterList = "${passwordPolicyName}");
                • 5
                  if (!(isSet(parameterList))) {
                  • 6
                    fail("Please define a parameter list in 'parameterList'");
                  }
                • 9
                  for (var parameter : list "${parameterList}") {
                  • 13
                    var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                  • 17
                    if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                    • 18
                      fail("Please set '${parameter}'");
                    }
                  }
              • 6
                var companyId = JSONCompany.getCompanyId();
                • 4
                  if (!(isSet(portalInstanceName))) {
                  • 5
                    var portalInstanceName = JSONCompany.getPortalInstanceName();
                    • 50
                      var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                    • 51
                      var testPortalInstance = PropsUtil.get("test.portal.instance");
                    • 53
                      if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                      • 54
                        var portalURL = JSONCompany.getPortalURL();
                        • 66
                          var portalURL = PropsUtil.get("portal.url");
                        • 68
                          return "${portalURL}";
                      • 56
                        var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                        • 72
                          Variables.assertDefined(parameterList = "${portalURL}");
                          • 5
                            if (!(isSet(parameterList))) {
                            • 6
                              fail("Please define a parameter list in 'parameterList'");
                            }
                          • 9
                            for (var parameter : list "${parameterList}") {
                            • 13
                              var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                            • 17
                              if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                              • 18
                                fail("Please set '${parameter}'");
                              }
                            }
                        • 74
                          var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                        • 75
                          var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                        • 77
                          return "${portalInstanceName}";
                      • 58
                        return "${portalInstanceName}";
                      }
                    • 60
                      else {
                      • 61
                        return "localhost";
                      }
                  }
                • 8
                  if (!(isSet(portalURL))) {
                  • 9
                    var portalURL = JSONCompany.getPortalURL();
                    • 66
                      var portalURL = PropsUtil.get("portal.url");
                    • 68
                      return "${portalURL}";
                  }
                • 12
                  if (!(isSet(creatorEmailAddress))) {
                  • 13
                    if ("${authenticationMethod}" == "By Screen Name") {
                    • 14
                      if (!(isSet(userScreenName))) {
                      • 15
                        var creatorEmailAddress = "test";
                      }
                    • 17
                      else {
                      • 18
                        var creatorEmailAddress = "${userScreenName}";
                      }
                    }
                  • 21
                    else {
                    • 22
                      var creatorEmailAddress = "test@liferay.com";
                    }
                  }
                • 26
                  if (!(isSet(creatorPassword))) {
                  • 27
                    var creatorPassword = "test";
                  }
                • 30
                  var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                • 34
                  var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                • 36
                  return "${companyId}";
              • 8
                var portalURL = JSONCompany.getPortalURL();
                • 66
                  var portalURL = PropsUtil.get("portal.url");
                • 68
                  return "${portalURL}";
              • 10
                var curl = ''' ${portalURL}/api/jsonws/passwordpolicy/search \ -u test@liferay.com:test -d companyId=${companyId} \ -d "name=${passwordPolicyName}" \ -d "start=-1" \ -d "end=-1" \ -d -orderByComparator= ''';
              • 19
                var passwordPolicyId = JSONCurlUtil.post("${curl}", "$.[?(@['name'] == '${passwordPolicyName}')]['passwordPolicyId']");
              • 21
                return "${passwordPolicyId}";
            • 174
              var curl = ''' ${portalURL}/api/jsonws/passwordpolicy/update-password-policy \ -u test@liferay.com:test \ -d passwordPolicyId=${passwordPolicyId} \ -d name="Default Password Policy" \ -d description="Default Password Policy" \ -d changeable=true \ -d changeRequired=false \ -d minAge=0 \ -d checkSyntax=false \ -d allowDictionaryWords=true \ -d minAlphanumeric=0 \ -d minLength=6 \ -d minLowerCase=0 \ -d minNumbers=1 \ -d minSymbols=0 \ -d minUpperCase=1 \ -d regex="(?=.{4})(?:[a-zA-Z0-9]*)" \ -d history=false \ -d historyCount=6 \ -d expireable=false \ -d maxAge=8640000 \ -d warningTime=86400 \ -d graceLimit=0 \ -d lockout=false \ -d maxFailure=3 \ -d lockoutDuration=0 \ -d resetFailureCount=600 \ -d resetTicketMaxAge=86400 ''';
            • 205
              com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
          }
        • 245
          if ("${agreeToTermsAndAnswerReminderQuery}" == "true") {
          • 246
            JSONUserAPI._agreeToTermsAndAnswerReminderQuery(userId = "${userId}");
            • 89
              Variables.assertDefined(parameterList = "${userId}");
              • 5
                if (!(isSet(parameterList))) {
                • 6
                  fail("Please define a parameter list in 'parameterList'");
                }
              • 9
                for (var parameter : list "${parameterList}") {
                • 13
                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                • 17
                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                  • 18
                    fail("Please set '${parameter}'");
                  }
                }
            • 91
              if (isSet(specificURL)) {
              • 92
                var portalURL = "${specificURL}";
              }
            • 94
              else {
              • 95
                var portalURL = JSONCompany.getPortalURL();
                • 66
                  var portalURL = PropsUtil.get("portal.url");
                • 68
                  return "${portalURL}";
              }
            • 98
              var curl = ''' ${portalURL}/api/jsonws/user/update-agreed-to-terms-of-use/user-id/${userId}/agreed-to-terms-of-use/true \ -u test@liferay.com:test ''';
            • 103
              com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
            • 105
              var curl = ''' ${portalURL}/api/jsonws/user/update-reminder-query/user-id/${userId}/question/what-is-your-father%27s-middle-name/answer/test \ -u test@liferay.com:test ''';
            • 110
              com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
          }
      • 649
        JSONRole.assignRoleToUser( roleTitle = "Regular Role", userEmailAddress = "userea@liferay.com");
        • 70
          Variables.assertDefined(parameterList = "${roleTitle},${userEmailAddress}");
          • 5
            if (!(isSet(parameterList))) {
            • 6
              fail("Please define a parameter list in 'parameterList'");
            }
          • 9
            for (var parameter : list "${parameterList}") {
            • 13
              var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
            • 17
              if (("${undefined}" == "true") && ("${parameter}" != "false")) {
              • 18
                fail("Please set '${parameter}'");
              }
            }
        • 72
          var roleId = JSONRoleSetter.setRoleId(name = "${roleTitle}");
          • 25
            Variables.assertDefined(parameterList = "${name}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 27
            var roleId = JSONRoleAPI._getRoleIdByName(name = "${name}");
            • 84
              Variables.assertDefined(parameterList = "${name}");
              • 5
                if (!(isSet(parameterList))) {
                • 6
                  fail("Please define a parameter list in 'parameterList'");
                }
              • 9
                for (var parameter : list "${parameterList}") {
                • 13
                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                • 17
                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                  • 18
                    fail("Please set '${parameter}'");
                  }
                }
            • 86
              var companyId = JSONCompany.getCompanyId();
              • 4
                if (!(isSet(portalInstanceName))) {
                • 5
                  var portalInstanceName = JSONCompany.getPortalInstanceName();
                  • 50
                    var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                  • 51
                    var testPortalInstance = PropsUtil.get("test.portal.instance");
                  • 53
                    if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                    • 54
                      var portalURL = JSONCompany.getPortalURL();
                      • 66
                        var portalURL = PropsUtil.get("portal.url");
                      • 68
                        return "${portalURL}";
                    • 56
                      var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                      • 72
                        Variables.assertDefined(parameterList = "${portalURL}");
                        • 5
                          if (!(isSet(parameterList))) {
                          • 6
                            fail("Please define a parameter list in 'parameterList'");
                          }
                        • 9
                          for (var parameter : list "${parameterList}") {
                          • 13
                            var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                          • 17
                            if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                            • 18
                              fail("Please set '${parameter}'");
                            }
                          }
                      • 74
                        var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                      • 75
                        var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                      • 77
                        return "${portalInstanceName}";
                    • 58
                      return "${portalInstanceName}";
                    }
                  • 60
                    else {
                    • 61
                      return "localhost";
                    }
                }
              • 8
                if (!(isSet(portalURL))) {
                • 9
                  var portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                }
              • 12
                if (!(isSet(creatorEmailAddress))) {
                • 13
                  if ("${authenticationMethod}" == "By Screen Name") {
                  • 14
                    if (!(isSet(userScreenName))) {
                    • 15
                      var creatorEmailAddress = "test";
                    }
                  • 17
                    else {
                    • 18
                      var creatorEmailAddress = "${userScreenName}";
                    }
                  }
                • 21
                  else {
                  • 22
                    var creatorEmailAddress = "test@liferay.com";
                  }
                }
              • 26
                if (!(isSet(creatorPassword))) {
                • 27
                  var creatorPassword = "test";
                }
              • 30
                var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
              • 34
                var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
              • 36
                return "${companyId}";
            • 88
              var portalURL = JSONCompany.getPortalURL();
              • 66
                var portalURL = PropsUtil.get("portal.url");
              • 68
                return "${portalURL}";
            • 90
              var curl = ''' ${portalURL}/api/jsonws/role/get-role \ -u test@liferay.com:test \ -d companyId=${companyId} \ -d name=${name} ''';
            • 96
              var roleId = JSONCurlUtil.post("${curl}", "$['roleId']");
            • 98
              return "${roleId}";
          • 29
            return "${roleId}";
        • 74
          var userId = JSONRoleSetter.setUserId(userEmailAddress = "${userEmailAddress}");
          • 65
            Variables.assertDefined(parameterList = "${userEmailAddress}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 67
            var userId = JSONUserAPI._getUserIdByEmailAddress(userEmailAddress = "${userEmailAddress}");
            • 209
              Variables.assertDefined(parameterList = "${userEmailAddress}");
              • 5
                if (!(isSet(parameterList))) {
                • 6
                  fail("Please define a parameter list in 'parameterList'");
                }
              • 9
                for (var parameter : list "${parameterList}") {
                • 13
                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                • 17
                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                  • 18
                    fail("Please set '${parameter}'");
                  }
                }
            • 211
              var companyId = JSONCompany.getCompanyId( creatorEmailAddress = "${creatorEmailAddress}", creatorPassword = "${creatorPassword}", portalInstanceName = "${portalInstanceName}");
              • 4
                if (!(isSet(portalInstanceName))) {
                • 5
                  var portalInstanceName = JSONCompany.getPortalInstanceName();
                  • 50
                    var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                  • 51
                    var testPortalInstance = PropsUtil.get("test.portal.instance");
                  • 53
                    if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                    • 54
                      var portalURL = JSONCompany.getPortalURL();
                      • 66
                        var portalURL = PropsUtil.get("portal.url");
                      • 68
                        return "${portalURL}";
                    • 56
                      var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                      • 72
                        Variables.assertDefined(parameterList = "${portalURL}");
                        • 5
                          if (!(isSet(parameterList))) {
                          • 6
                            fail("Please define a parameter list in 'parameterList'");
                          }
                        • 9
                          for (var parameter : list "${parameterList}") {
                          • 13
                            var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                          • 17
                            if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                            • 18
                              fail("Please set '${parameter}'");
                            }
                          }
                      • 74
                        var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                      • 75
                        var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                      • 77
                        return "${portalInstanceName}";
                    • 58
                      return "${portalInstanceName}";
                    }
                  • 60
                    else {
                    • 61
                      return "localhost";
                    }
                }
              • 8
                if (!(isSet(portalURL))) {
                • 9
                  var portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                }
              • 12
                if (!(isSet(creatorEmailAddress))) {
                • 13
                  if ("${authenticationMethod}" == "By Screen Name") {
                  • 14
                    if (!(isSet(userScreenName))) {
                    • 15
                      var creatorEmailAddress = "test";
                    }
                  • 17
                    else {
                    • 18
                      var creatorEmailAddress = "${userScreenName}";
                    }
                  }
                • 21
                  else {
                  • 22
                    var creatorEmailAddress = "test@liferay.com";
                  }
                }
              • 26
                if (!(isSet(creatorPassword))) {
                • 27
                  var creatorPassword = "test";
                }
              • 30
                var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
              • 34
                var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
              • 36
                return "${companyId}";
            • 216
              if (isSet(specificURL)) {
              • 217
                var portalURL = "${specificURL}";
              }
            • 219
              else {
              • 220
                var portalURL = JSONCompany.getPortalURL();
                • 66
                  var portalURL = PropsUtil.get("portal.url");
                • 68
                  return "${portalURL}";
              }
            • 223
              if (!(isSet(creatorEmailAddress))) {
              • 224
                var creatorEmailAddress = "test@liferay.com";
              }
            • 227
              if (!(isSet(creatorPassword))) {
              • 228
                var creatorPassword = "test";
              }
            • 231
              var curl = ''' ${portalURL}/api/jsonws/user/get-user-by-email-address/company-id/${companyId}/email-address/${userEmailAddress} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
            • 235
              var userId = JSONCurlUtil.get("${curl}", "$['userId']");
            • 237
              return "${userId}";
          • 69
            return "${userId}";
        • 76
          JSONRoleAPI._assignRoleToUser( roleId = "${roleId}", userId = "${userId}");
          • 39
            Variables.assertDefined(parameterList = "${roleId},${userId}");
            • 5
              if (!(isSet(parameterList))) {
              • 6
                fail("Please define a parameter list in 'parameterList'");
              }
            • 9
              for (var parameter : list "${parameterList}") {
              • 13
                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
              • 17
                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                • 18
                  fail("Please set '${parameter}'");
                }
              }
          • 41
            var portalURL = JSONCompany.getPortalURL();
            • 66
              var portalURL = PropsUtil.get("portal.url");
            • 68
              return "${portalURL}";
          • 43
            var curl = ''' ${portalURL}/api/jsonws/user/add-role-users \ -u test@liferay.com:test \ -d roleId=${roleId} \ -d userIds=${userId} ''';
          • 50
            com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
      • 653
        User.logoutAndLoginPG( userLoginEmailAddress = "userea@liferay.com", userLoginFullName = "userfn userln");
        • 3
          var password = "test";
        • 4
          var userEmailAddress = "test@liferay.com";
        • 2410
          Navigator.openURL();
          • 346
            WaitForSPARefresh();
          • 348
            var baseURL = "${baseURL}";
          • 350
            if (!(isSet(baseURL))) {
            • 351
              var baseURL = PropsUtil.get("portal.url");
            }
          • 354
            Open(locator1 = "${baseURL}/web/guest/home");
        • 2412
          UserBar.signOut();
          • 34
            if (IsElementNotPresent(locator1 = "UserBar#USER_SIGN_IN")) {
            • 35
              UserBar.gotoDropdown();
              • 4
                if (IsElementPresent(locator1 = "UserBar#USER_AVATAR_PORTRAIT")) {
                • 5
                  Click.waitForPersonalMenuJSClick(locator1 = "UserBar#USER_AVATAR_PORTRAIT");
                }
              • 7
                else if (IsElementPresent(locator1 = "UserBar#USER_AVATAR_TOGGLE")) {
                • 8
                  Click.waitForMenuToggleJSClick(locator1 = "UserBar#USER_AVATAR_TOGGLE");
                }
              • 10
                else {
                • 11
                  Click.waitForPersonalMenuJSClick(locator1 = "UserBar#USER_AVATAR_ICON");
                }
              • 14
                AssertVisible(locator1 = "UserBar#USER_AVATAR_DROPDOWN_PORTAL_OPEN");
            • 37
              ScrollWebElementIntoView(locator1 = "UserBar#USER_AVATAR_DROPDOWN_SIGNOUT");
            • 39
              Click(locator1 = "UserBar#USER_AVATAR_DROPDOWN_SIGNOUT");
            }
        • 2414
          User.loginPG( authenticationMethod = "${authenticationMethod}", nodePort = "${nodePort}", userEmailAddress = "${userLoginEmailAddress}", userScreenName = "${userScreenName}");
          • 3
            var password = "test";
          • 4
            var userEmailAddress = "test@liferay.com";
          • 2132
            JSONUser.agreeToTermsAndAnswerReminderQuery( portalURL = "${virtualHostsURL}", userEmailAddress = "${userEmailAddress}");
            • 172
              Variables.assertDefined(parameterList = "${userEmailAddress}");
              • 5
                if (!(isSet(parameterList))) {
                • 6
                  fail("Please define a parameter list in 'parameterList'");
                }
              • 9
                for (var parameter : list "${parameterList}") {
                • 13
                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                • 17
                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                  • 18
                    fail("Please set '${parameter}'");
                  }
                }
            • 174
              var portalInstanceName = JSONUserSetter.setPortalInstanceName(portalURL = "${portalURL}");
              • 37
                if (isSet(portalURL)) {
                • 38
                  var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                  • 72
                    Variables.assertDefined(parameterList = "${portalURL}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 74
                    var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                  • 75
                    var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                  • 77
                    return "${portalInstanceName}";
                }
              • 41
                return "${portalInstanceName}";
            • 176
              var userId = JSONUserSetter.setUserId( portalInstanceName = "${portalInstanceName}", userEmailAddress = "${userEmailAddress}");
              • 92
                Variables.assertDefined(parameterList = "${userEmailAddress}");
                • 5
                  if (!(isSet(parameterList))) {
                  • 6
                    fail("Please define a parameter list in 'parameterList'");
                  }
                • 9
                  for (var parameter : list "${parameterList}") {
                  • 13
                    var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                  • 17
                    if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                    • 18
                      fail("Please set '${parameter}'");
                    }
                  }
              • 94
                var userId = JSONUserAPI._getUserIdByEmailAddress( creatorEmailAddress = "${creatorEmailAddress}", creatorPassword = "${creatorPassword}", portalInstanceName = "${portalInstanceName}", userEmailAddress = "${userEmailAddress}");
                • 209
                  Variables.assertDefined(parameterList = "${userEmailAddress}");
                  • 5
                    if (!(isSet(parameterList))) {
                    • 6
                      fail("Please define a parameter list in 'parameterList'");
                    }
                  • 9
                    for (var parameter : list "${parameterList}") {
                    • 13
                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                    • 17
                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                      • 18
                        fail("Please set '${parameter}'");
                      }
                    }
                • 211
                  var companyId = JSONCompany.getCompanyId( creatorEmailAddress = "${creatorEmailAddress}", creatorPassword = "${creatorPassword}", portalInstanceName = "${portalInstanceName}");
                  • 4
                    if (!(isSet(portalInstanceName))) {
                    • 5
                      var portalInstanceName = JSONCompany.getPortalInstanceName();
                      • 50
                        var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                      • 51
                        var testPortalInstance = PropsUtil.get("test.portal.instance");
                      • 53
                        if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                        • 54
                          var portalURL = JSONCompany.getPortalURL();
                          • 66
                            var portalURL = PropsUtil.get("portal.url");
                          • 68
                            return "${portalURL}";
                        • 56
                          var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                          • 72
                            Variables.assertDefined(parameterList = "${portalURL}");
                            • 5
                              if (!(isSet(parameterList))) {
                              • 6
                                fail("Please define a parameter list in 'parameterList'");
                              }
                            • 9
                              for (var parameter : list "${parameterList}") {
                              • 13
                                var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                              • 17
                                if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                • 18
                                  fail("Please set '${parameter}'");
                                }
                              }
                          • 74
                            var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                          • 75
                            var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                          • 77
                            return "${portalInstanceName}";
                        • 58
                          return "${portalInstanceName}";
                        }
                      • 60
                        else {
                        • 61
                          return "localhost";
                        }
                    }
                  • 8
                    if (!(isSet(portalURL))) {
                    • 9
                      var portalURL = JSONCompany.getPortalURL();
                      • 66
                        var portalURL = PropsUtil.get("portal.url");
                      • 68
                        return "${portalURL}";
                    }
                  • 12
                    if (!(isSet(creatorEmailAddress))) {
                    • 13
                      if ("${authenticationMethod}" == "By Screen Name") {
                      • 14
                        if (!(isSet(userScreenName))) {
                        • 15
                          var creatorEmailAddress = "test";
                        }
                      • 17
                        else {
                        • 18
                          var creatorEmailAddress = "${userScreenName}";
                        }
                      }
                    • 21
                      else {
                      • 22
                        var creatorEmailAddress = "test@liferay.com";
                      }
                    }
                  • 26
                    if (!(isSet(creatorPassword))) {
                    • 27
                      var creatorPassword = "test";
                    }
                  • 30
                    var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                  • 34
                    var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                  • 36
                    return "${companyId}";
                • 216
                  if (isSet(specificURL)) {
                  • 217
                    var portalURL = "${specificURL}";
                  }
                • 219
                  else {
                  • 220
                    var portalURL = JSONCompany.getPortalURL();
                    • 66
                      var portalURL = PropsUtil.get("portal.url");
                    • 68
                      return "${portalURL}";
                  }
                • 223
                  if (!(isSet(creatorEmailAddress))) {
                  • 224
                    var creatorEmailAddress = "test@liferay.com";
                  }
                • 227
                  if (!(isSet(creatorPassword))) {
                  • 228
                    var creatorPassword = "test";
                  }
                • 231
                  var curl = ''' ${portalURL}/api/jsonws/user/get-user-by-email-address/company-id/${companyId}/email-address/${userEmailAddress} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                • 235
                  var userId = JSONCurlUtil.get("${curl}", "$['userId']");
                • 237
                  return "${userId}";
              • 100
                return "${userId}";
            • 180
              JSONUserAPI._agreeToTermsAndAnswerReminderQuery(userId = "${userId}");
              • 89
                Variables.assertDefined(parameterList = "${userId}");
                • 5
                  if (!(isSet(parameterList))) {
                  • 6
                    fail("Please define a parameter list in 'parameterList'");
                  }
                • 9
                  for (var parameter : list "${parameterList}") {
                  • 13
                    var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                  • 17
                    if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                    • 18
                      fail("Please set '${parameter}'");
                    }
                  }
              • 91
                if (isSet(specificURL)) {
                • 92
                  var portalURL = "${specificURL}";
                }
              • 94
                else {
                • 95
                  var portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                }
              • 98
                var curl = ''' ${portalURL}/api/jsonws/user/update-agreed-to-terms-of-use/user-id/${userId}/agreed-to-terms-of-use/true \ -u test@liferay.com:test ''';
              • 103
                com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
              • 105
                var curl = ''' ${portalURL}/api/jsonws/user/update-reminder-query/user-id/${userId}/question/what-is-your-father%27s-middle-name/answer/test \ -u test@liferay.com:test ''';
              • 110
                com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
          • 2136
            if (isSet(virtualHostsURL)) {
            • 2137
              Navigator.openSpecificURL(url = "${virtualHostsURL}/web/guest?SM_USER=${userEmailAddress}");
              • 295
                Open(locator1 = "${url}");
              • 297
                Alert.confirmSecurity();
                • 16
                  if (IsElementPresent(key_title = "Your connection is not private", locator1 = "Header#H1_TITLE")) {
                  • 17
                    Click(locator1 = "Button#ADVANCED");
                  • 19
                    AssertElementPresent( key_text = "Proceed to localhost", locator1 = "Link#ANY");
                  • 23
                    Click( key_text = "Proceed to localhost (unsafe)", locator1 = "Link#ANY");
                  }
            }
          • 2139
            else if (isSet(nodePort)) {
            • 2140
              var baseURL = "http://localhost:${nodePort}";
            • 2142
              Navigator.openSpecificURL(url = "${baseURL}/web/guest?SM_USER=${userEmailAddress}");
              • 295
                Open(locator1 = "${url}");
              • 297
                Alert.confirmSecurity();
                • 16
                  if (IsElementPresent(key_title = "Your connection is not private", locator1 = "Header#H1_TITLE")) {
                  • 17
                    Click(locator1 = "Button#ADVANCED");
                  • 19
                    AssertElementPresent( key_text = "Proceed to localhost", locator1 = "Link#ANY");
                  • 23
                    Click( key_text = "Proceed to localhost (unsafe)", locator1 = "Link#ANY");
                  }
            }
          • 2144
            else {
            • 2145
              var baseURL = PropsUtil.get("portal.url");
            • 2147
              Navigator.openSpecificURL(url = "${baseURL}/web/guest?SM_USER=${userEmailAddress}");
              • 295
                Open(locator1 = "${url}");
              • 297
                Alert.confirmSecurity();
                • 16
                  if (IsElementPresent(key_title = "Your connection is not private", locator1 = "Header#H1_TITLE")) {
                  • 17
                    Click(locator1 = "Button#ADVANCED");
                  • 19
                    AssertElementPresent( key_text = "Proceed to localhost", locator1 = "Link#ANY");
                  • 23
                    Click( key_text = "Proceed to localhost (unsafe)", locator1 = "Link#ANY");
                  }
            }
          • 2152
            User.resetPassword( resetPassword = "${resetPassword}", setupWizardEnabled = "${setupWizardEnabled}", syntaxCheckingEnabled = "${syntaxCheckingEnabled}");
            • 3
              var password = "test";
            • 4
              var userEmailAddress = "test@liferay.com";
            • 2468
              if (IsElementPresent.pauseIsElementPresent(locator1 = "TextInput#PASSWORD")) {
              • 2469
                if ("${syntaxCheckingEnabled}" == "true") {
                • 2470
                  Type( locator1 = "TextInput#PASSWORD_1", value1 = "${resetPassword}");
                • 2474
                  Type( locator1 = "TextInput#PASSWORD_2", value1 = "${resetPassword}");
                }
              • 2478
                else {
                • 2479
                  if ("${setupWizardEnabled}" == "true") {
                  • 2480
                    Type( locator1 = "TextInput#PASSWORD_1", value1 = "test2");
                  • 2484
                    Type( locator1 = "TextInput#PASSWORD_2", value1 = "test2");
                  }
                • 2488
                  else {
                  • 2489
                    Type( locator1 = "TextInput#PASSWORD_1", value1 = "test");
                  • 2493
                    Type( locator1 = "TextInput#PASSWORD_2", value1 = "test");
                  }
                }
              • 2499
                Button.clickSubmitButton();
                • 122
                  Click(locator1 = "Button#SUBMIT");
              • 2501
                AssertElementNotPresent(locator1 = "TextInput#ENTER_AGAIN");
              }
          • 2157
            User.answerPasswordReminder();
            • 3
              var password = "test";
            • 4
              var userEmailAddress = "test@liferay.com";
            • 746
              Pause(locator1 = "3000");
            • 748
              if (IsElementPresent.pauseIsElementPresent(locator1 = "TextInput#REMINDER_QUERY")) {
              • 749
                Type( locator1 = "TextInput#REMINDER_QUERY", value1 = "test");
              • 753
                Click(locator1 = "Button#SUBMIT");
              }
          • 2159
            if (IsElementNotPresent(locator1 = "UserBar#USER_AVATAR_IMAGE")) {
            • 2160
              takeScreenshot();
            • 2162
              echo("URL login failed, falling back to UI login.");
            • 2164
              User.firstLoginUI( idpName = "${idpName}", password = "${password}", rememberMeChecked = "${rememberMeChecked}", specificURL = "${virtualHostsURL}", userEmailAddress = "${userEmailAddress}", userScreenName = "${userScreenName}");
              • 3
                var password = "test";
              • 4
                var userEmailAddress = "test@liferay.com";
              • 1983
                if (isSet(specificURL)) {
                • 1984
                  Navigator.openSpecificURL(url = "${specificURL}");
                  • 295
                    Open(locator1 = "${url}");
                  • 297
                    Alert.confirmSecurity();
                    • 16
                      if (IsElementPresent(key_title = "Your connection is not private", locator1 = "Header#H1_TITLE")) {
                      • 17
                        Click(locator1 = "Button#ADVANCED");
                      • 19
                        AssertElementPresent( key_text = "Proceed to localhost", locator1 = "Link#ANY");
                      • 23
                        Click( key_text = "Proceed to localhost (unsafe)", locator1 = "Link#ANY");
                      }
                }
              • 1986
                else {
                • 1987
                  Navigator.openURL();
                  • 346
                    WaitForSPARefresh();
                  • 348
                    var baseURL = "${baseURL}";
                  • 350
                    if (!(isSet(baseURL))) {
                    • 351
                      var baseURL = PropsUtil.get("portal.url");
                    }
                  • 354
                    Open(locator1 = "${baseURL}/web/guest/home");
                }
              • 1990
                User._clickSignInLink( idpName = "${idpName}", localization = "${localization}", samlMultiIdPs = "${samlMultiIdPs}");
                • 3
                  var password = "test";
                • 4
                  var userEmailAddress = "test@liferay.com";
                • 13
                  var localizedSignIn = User._getSignInText(localization = "${localization}");
                  • 3
                    var password = "test";
                  • 4
                    var userEmailAddress = "test@liferay.com";
                  • 42
                    if ("${localization}" == "JA") {
                    • 43
                      var localizedSignIn = "ログイン";
                    }
                  • 45
                    else if ("${localization}" == "ZH") {
                    • 46
                      var localizedSignIn = "登录";
                    }
                  • 48
                    else if ("${localization}" == "IT") {
                    • 49
                      var localizedSignIn = "Accedi";
                    }
                  • 51
                    else if ("${localization}" == "ES") {
                    • 52
                      var localizedSignIn = "Acceder";
                    }
                  • 54
                    else {
                    • 55
                      var localizedSignIn = "Sign In";
                    }
                  • 58
                    return "${localizedSignIn}";
                • 15
                  if (IsElementNotPresent(locator1 = "TextInput#EMAIL_ADDRESS")) {
                  • 16
                    if (isSet(localization)) {
                    • 17
                      AssertClick( locator1 = "UserBar#USER_SIGN_IN", value1 = "${localizedSignIn}");
                    }
                  • 21
                    else if (IsElementPresent(locator1 = "UserBar#USER_SIGN_IN")) {
                    • 22
                      AssertClick( locator1 = "UserBar#USER_SIGN_IN", value1 = "Sign In");
                    • 26
                      if ("${samlMultiIdPs}" == "true") {
                      • 27
                        Select( key_fieldLabel = "Identity Provider", locator1 = "Select#GENERIC_SELECT_FIELD", value1 = "${idpName}");
                      • 32
                        Button.click(button = "Sign In");
                        • 4
                          Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
                      }
                    }
                  • 35
                    else if (IsElementPresent(key_text = "Sign In", locator1 = "Button#ANY")) {
                    • 36
                      Button.click(button = "Sign In");
                      • 4
                        Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
                    }
                  }
              • 1995
                if ("${authenticationMethod}" == "By Screen Name") {
                • 1996
                  Type( locator1 = "TextInput#SCREEN_NAME", value1 = "${userScreenName}");
                }
              • 2000
                else if ("${authenticationMethod}" == "By User ID") {
                • 2001
                  Type.typePause( key_text = "ID", locator1 = "TextInput#ANY", value1 = "${userId}");
                }
              • 2006
                else {
                • 2007
                  Type.typePause( locator1 = "TextInput#EMAIL_ADDRESS", value1 = "${userEmailAddress}");
                }
              • 2012
                Type.typePause( locator1 = "TextInput#PASSWORD", value1 = "${password}");
              • 2016
                if (isSet(rememberMeChecked) && ("${rememberMeChecked}" == "true")) {
                • 2017
                  Check(locator1 = "Checkbox#REMEMBER_ME");
                }
              • 2020
                User._clickSignInButton(localization = "${localization}");
                • 3
                  var password = "test";
                • 4
                  var userEmailAddress = "test@liferay.com";
                • 7
                  var localizedSignIn = User._getSignInText(localization = "${localization}");
                  • 3
                    var password = "test";
                  • 4
                    var userEmailAddress = "test@liferay.com";
                  • 42
                    if ("${localization}" == "JA") {
                    • 43
                      var localizedSignIn = "ログイン";
                    }
                  • 45
                    else if ("${localization}" == "ZH") {
                    • 46
                      var localizedSignIn = "登录";
                    }
                  • 48
                    else if ("${localization}" == "IT") {
                    • 49
                      var localizedSignIn = "Accedi";
                    }
                  • 51
                    else if ("${localization}" == "ES") {
                    • 52
                      var localizedSignIn = "Acceder";
                    }
                  • 54
                    else {
                    • 55
                      var localizedSignIn = "Sign In";
                    }
                  • 58
                    return "${localizedSignIn}";
                • 9
                  Button.click(button = "${localizedSignIn}");
                  • 4
                    Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
              • 2022
                if (isSet(localizedAgree)) {
                • 2023
                  User.acceptEndUserLicenseAgreementLocalized(localizedAgree = "${localizedAgree}");
                  • 3
                    var password = "test";
                  • 4
                    var userEmailAddress = "test@liferay.com";
                  • 78
                    var key_localizedAgree = "${localizedAgree}";
                  • 80
                    if (IsElementPresent(locator1 = "Button#I_AGREE_LOCALIZED")) {
                    • 81
                      AssertClick( locator1 = "Button#I_AGREE_LOCALIZED", value1 = "${localizedAgree}");
                    • 85
                      AssertElementNotPresent(locator1 = "Button#I_AGREE_LOCALIZED");
                    }
                }
              • 2025
                else if (IsElementPresent(locator1 = "Button#I_AGREE")) {
                • 2026
                  SignIn.agreeToTermsOfUse();
                  • 3
                    var userEmailAddress = "test@liferay.com";
                  • 4
                    var userPassword = "test";
                  • 5
                    var userPasswordReminderAnswer = "test";
                  • 24
                    AssertClick( locator1 = "Button#I_AGREE", value1 = "I Agree");
                  • 28
                    AssertElementNotPresent(locator1 = "Button#I_AGREE");
                }
              • 2029
                if (isSet(localizedAnswer)) {
                • 2030
                  User.answerPasswordReminderLocalized( localizedAnswer = "${localizedAnswer}", localizedSaveButton = "${localizedSaveButton}");
                  • 3
                    var password = "test";
                  • 4
                    var userEmailAddress = "test@liferay.com";
                  • 758
                    Pause(locator1 = "3000");
                  • 760
                    var key_localizedAnswer = "${localizedAnswer}";
                  • 762
                    if (IsElementPresent.pauseIsElementPresent(locator1 = "TextInput#ANSWER_LOCALIZED")) {
                    • 763
                      Type( locator1 = "TextInput#ANSWER_LOCALIZED", value1 = "test");
                    • 767
                      Button.click(button = "${localizedSaveButton}");
                      • 4
                        Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
                    • 769
                      Button.viewNotPresent(button = "${localizedSaveButton}");
                      • 142
                        AssertElementNotPresent( key_text = "${button}", locator1 = "Button#ANY");
                    }
                }
              • 2034
                else if (IsElementPresent(locator1 = "Select#QUESTION")) {
                • 2035
                  SignIn.setPasswordReminder();
                  • 3
                    var userEmailAddress = "test@liferay.com";
                  • 4
                    var userPassword = "test";
                  • 5
                    var userPasswordReminderAnswer = "test";
                  • 33
                    Type( locator1 = "TextInput#ANSWER", value1 = "${userPasswordReminderAnswer}");
                  • 37
                    Button.clickSave();
                    • 102
                      Button.click(button = "Save");
                      • 4
                        Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
                    • 104
                      WaitForLiferayEvent.initializeLiferayEventLog();
                }
              • 2038
                WaitForLiferayEvent.initializeLiferayEventLog();
            }
          • 2172
            else {
            • 2173
              WaitForLiferayEvent.initializeLiferayEventLog();
            }
      • 657
        ObjectAdmin.selectMySite(site = "Site B");
        • 908
          if (IsElementNotPresent(locator1 = "ProductMenu#TOGGLE")) {
          • 909
            ApplicationsMenu.gotoSite(site = "${site}");
            • 39
              ApplicationsMenuHelper.openApplicationsMenu();
              • 23
                if (IsElementNotPresent(locator1 = "ApplicationsMenu#APPLICATIONS_MENU")) {
                • 24
                  Click(locator1 = "ApplicationsMenu#TOGGLE");
                }
              • 27
                WaitForElementPresent(locator1 = "ApplicationsMenu#APPLICATIONS_MENU");
            • 41
              Click( key_site = "${site}", locator1 = "ApplicationsMenu#SITE_LINK");
          }
        • 912
          ProductMenuHelper.openProductMenu();
          • 46
            if ((IsElementNotPresent(locator1 = "ProductMenu#PRODUCT_MENU_OPENED")) && (IsElementPresent(locator1 = "ProductMenu#PRODUCT_MENU_CLOSED"))) {
            • 47
              Click(locator1 = "ProductMenu#TOGGLE");
            }
          • 50
            AssertElementPresent(locator1 = "ProductMenu#PRODUCT_MENU_OPENED");
          • 52
            AssertElementNotPresent(locator1 = "ProductMenu#PRODUCT_MENU_CLOSED");
          • 54
            if (IsElementPresent(key_text = "Back to Menu", locator1 = "Button#ANY")) {
            • 55
              Click( key_text = "Back to Menu", locator1 = "Button#ANY");
            }
          • 60
            AssertVisible(locator1 = "ProductMenu#PRODUCT_MENU_BODY");
        • 914
          ProductMenuHelper.openWorkspace();
          • 64
            if (IsElementNotPresent(locator1 = "Portlet#MODAL_TITLE")) {
            • 65
              Click(locator1 = "ProductMenu#CHANGE_SPACE_ICON");
            • 67
              AssertVisible(locator1 = "Portlet#MODAL_TITLE");
            }
        • 916
          SelectFrame(locator1 = "IFrame#MODAL_BODY");
        • 918
          Pause(locator1 = "3000");
        • 920
          Navigator.gotoNavItem(navItem = "My Sites");
          • 82
            var key_navItem = "${navItem}";
          • 84
            AssertClick( locator1 = "NavBar#NAV_ITEM_LINK", value1 = "${navItem}");
          • 88
            AssertElementPresent(locator1 = "NavBar#ACTIVE_NAV_ITEM_LINK");
        • 922
          SiteSelector.selectSite(site = "${site}");
          • 15
            LexiconEntry.changeDisplayStyle(displayStyle = "table");
            • 4
              WaitForPageLoad();
            • 6
              Click.mouseOverClick(locator1 = "Icon#CURRENT_DISPLAY_STYLE");
            • 8
              MenuItem.click(menuItem = StringUtil.upperCaseFirstLetter("${displayStyle}"));
              • 4
                Click( key_menuItem = "${menuItem}", locator1 = "MenuItem#ANY_MENU_ITEM");
          • 17
            SiteSelector._searchSite(site = "${site}");
            • 4
              if (contains("${site}", "Liferay")) {
              • 5
                var searchTerm = "guest";
              }
            • 7
              else {
              • 8
                var searchTerm = "${site}";
              }
            • 11
              Search.searchCP(searchTerm = "${searchTerm}");
              • 25
                AssertElementPresent(locator1 = "TextInput#SEARCH");
              • 27
                AssertElementPresent(locator1 = "Icon#BASIC_SEARCH");
              • 29
                Type( locator1 = "TextInput#SEARCH", value1 = "${searchTerm}");
              • 33
                KeyPress( locator1 = "TextInput#SEARCH", value1 = "\RETURN");
              • 37
                if (!(isSet(modal))) {
                • 38
                  WaitForLiferayEvent.initializeLiferayEventLog();
                }
          • 19
            Pause(locator1 = "3000");
          • 21
            LexiconEntry.gotoEntry(rowEntry = "${site}");
            • 89
              if (IsElementPresent(key_displayStyle = "cards", locator1 = "Icon#DISPLAY_STYLE_ACTIVE")) {
              • 90
                AssertClick( key_card = "${rowEntry}", locator1 = "Card#CARD_TITLE_LINK", value1 = "${rowEntry}");
              }
            • 95
              else {
              • 96
                AssertClick( key_rowEntry = "${rowEntry}", locator1 = "ContentRow#ENTRY_CONTENT_ENTRY_NAME", value1 = "${rowEntry}");
              }
          • 23
            SelectFrameTop();
      • 659
        AssertElementNotPresent( key_portlet = "Custom Objects", locator1 = "ProductMenu#PORTLET", value1 = "Custom Objects");
      • 664
        ObjectAdmin.selectMySite(site = "Site A");
        • 908
          if (IsElementNotPresent(locator1 = "ProductMenu#TOGGLE")) {
          • 909
            ApplicationsMenu.gotoSite(site = "${site}");
            • 39
              ApplicationsMenuHelper.openApplicationsMenu();
              • 23
                if (IsElementNotPresent(locator1 = "ApplicationsMenu#APPLICATIONS_MENU")) {
                • 24
                  Click(locator1 = "ApplicationsMenu#TOGGLE");
                }
              • 27
                WaitForElementPresent(locator1 = "ApplicationsMenu#APPLICATIONS_MENU");
            • 41
              Click( key_site = "${site}", locator1 = "ApplicationsMenu#SITE_LINK");
          }
        • 912
          ProductMenuHelper.openProductMenu();
          • 46
            if ((IsElementNotPresent(locator1 = "ProductMenu#PRODUCT_MENU_OPENED")) && (IsElementPresent(locator1 = "ProductMenu#PRODUCT_MENU_CLOSED"))) {
            • 47
              Click(locator1 = "ProductMenu#TOGGLE");
            }
          • 50
            AssertElementPresent(locator1 = "ProductMenu#PRODUCT_MENU_OPENED");
          • 52
            AssertElementNotPresent(locator1 = "ProductMenu#PRODUCT_MENU_CLOSED");
          • 54
            if (IsElementPresent(key_text = "Back to Menu", locator1 = "Button#ANY")) {
            • 55
              Click( key_text = "Back to Menu", locator1 = "Button#ANY");
            }
          • 60
            AssertVisible(locator1 = "ProductMenu#PRODUCT_MENU_BODY");
        • 914
          ProductMenuHelper.openWorkspace();
          • 64
            if (IsElementNotPresent(locator1 = "Portlet#MODAL_TITLE")) {
            • 65
              Click(locator1 = "ProductMenu#CHANGE_SPACE_ICON");
            • 67
              AssertVisible(locator1 = "Portlet#MODAL_TITLE");
            }
        • 916
          SelectFrame(locator1 = "IFrame#MODAL_BODY");
        • 918
          Pause(locator1 = "3000");
        • 920
          Navigator.gotoNavItem(navItem = "My Sites");
          • 82
            var key_navItem = "${navItem}";
          • 84
            AssertClick( locator1 = "NavBar#NAV_ITEM_LINK", value1 = "${navItem}");
          • 88
            AssertElementPresent(locator1 = "NavBar#ACTIVE_NAV_ITEM_LINK");
        • 922
          SiteSelector.selectSite(site = "${site}");
          • 15
            LexiconEntry.changeDisplayStyle(displayStyle = "table");
            • 4
              WaitForPageLoad();
            • 6
              Click.mouseOverClick(locator1 = "Icon#CURRENT_DISPLAY_STYLE");
            • 8
              MenuItem.click(menuItem = StringUtil.upperCaseFirstLetter("${displayStyle}"));
              • 4
                Click( key_menuItem = "${menuItem}", locator1 = "MenuItem#ANY_MENU_ITEM");
          • 17
            SiteSelector._searchSite(site = "${site}");
            • 4
              if (contains("${site}", "Liferay")) {
              • 5
                var searchTerm = "guest";
              }
            • 7
              else {
              • 8
                var searchTerm = "${site}";
              }
            • 11
              Search.searchCP(searchTerm = "${searchTerm}");
              • 25
                AssertElementPresent(locator1 = "TextInput#SEARCH");
              • 27
                AssertElementPresent(locator1 = "Icon#BASIC_SEARCH");
              • 29
                Type( locator1 = "TextInput#SEARCH", value1 = "${searchTerm}");
              • 33
                KeyPress( locator1 = "TextInput#SEARCH", value1 = "\RETURN");
              • 37
                if (!(isSet(modal))) {
                • 38
                  WaitForLiferayEvent.initializeLiferayEventLog();
                }
          • 19
            Pause(locator1 = "3000");
          • 21
            LexiconEntry.gotoEntry(rowEntry = "${site}");
            • 89
              if (IsElementPresent(key_displayStyle = "cards", locator1 = "Icon#DISPLAY_STYLE_ACTIVE")) {
              • 90
                AssertClick( key_card = "${rowEntry}", locator1 = "Card#CARD_TITLE_LINK", value1 = "${rowEntry}");
              }
            • 95
              else {
              • 96
                AssertClick( key_rowEntry = "${rowEntry}", locator1 = "ContentRow#ENTRY_CONTENT_ENTRY_NAME", value1 = "${rowEntry}");
              }
          • 23
            SelectFrameTop();
      • 666
        ObjectAdmin.viewObjectPresentOnSite( category = "Content & Data", portlet = "Custom Objects");
        • 986
          ProductMenuHelper.openProductMenu();
          • 46
            if ((IsElementNotPresent(locator1 = "ProductMenu#PRODUCT_MENU_OPENED")) && (IsElementPresent(locator1 = "ProductMenu#PRODUCT_MENU_CLOSED"))) {
            • 47
              Click(locator1 = "ProductMenu#TOGGLE");
            }
          • 50
            AssertElementPresent(locator1 = "ProductMenu#PRODUCT_MENU_OPENED");
          • 52
            AssertElementNotPresent(locator1 = "ProductMenu#PRODUCT_MENU_CLOSED");
          • 54
            if (IsElementPresent(key_text = "Back to Menu", locator1 = "Button#ANY")) {
            • 55
              Click( key_text = "Back to Menu", locator1 = "Button#ANY");
            }
          • 60
            AssertVisible(locator1 = "ProductMenu#PRODUCT_MENU_BODY");
        • 988
          ProductMenuHelper.expandCategory(category = "${category}");
          • 12
            var key_category = "${category}";
          • 14
            if (IsElementPresent(locator1 = "ProductMenu#CATEGORY_COLLAPSED")) {
            • 15
              Click(locator1 = "ProductMenu#CATEGORY_COLLAPSED");
            }
          • 18
            AssertElementPresent(locator1 = "ProductMenu#CATEGORY_EXPANDED");
        • 990
          AssertElementPresent( key_portlet = "${portlet}", locator1 = "ProductMenu#PORTLET");
      }
    • 14
      tearDown {
      • 15
        var testPortalInstance = PropsUtil.get("test.portal.instance");
      • 17
        if ("${testPortalInstance}" == "true") {
        • 18
          PortalInstances.tearDownCP();
          • 102
            JSONUser.tearDownNonAdminUsers(authenticationMethod = "${authenticationMethod}");
            • 265
              var userIds = JSONUserAPI._getUserIds(authenticationMethod = "${authenticationMethod}");
              • 274
                var companyId = JSONCompany.getCompanyId(authenticationMethod = "${authenticationMethod}");
                • 4
                  if (!(isSet(portalInstanceName))) {
                  • 5
                    var portalInstanceName = JSONCompany.getPortalInstanceName();
                    • 50
                      var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                    • 51
                      var testPortalInstance = PropsUtil.get("test.portal.instance");
                    • 53
                      if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                      • 54
                        var portalURL = JSONCompany.getPortalURL();
                        • 66
                          var portalURL = PropsUtil.get("portal.url");
                        • 68
                          return "${portalURL}";
                      • 56
                        var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                        • 72
                          Variables.assertDefined(parameterList = "${portalURL}");
                          • 5
                            if (!(isSet(parameterList))) {
                            • 6
                              fail("Please define a parameter list in 'parameterList'");
                            }
                          • 9
                            for (var parameter : list "${parameterList}") {
                            • 13
                              var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                            • 17
                              if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                              • 18
                                fail("Please set '${parameter}'");
                              }
                            }
                        • 74
                          var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                        • 75
                          var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                        • 77
                          return "${portalInstanceName}";
                      • 58
                        return "${portalInstanceName}";
                      }
                    • 60
                      else {
                      • 61
                        return "localhost";
                      }
                  }
                • 8
                  if (!(isSet(portalURL))) {
                  • 9
                    var portalURL = JSONCompany.getPortalURL();
                    • 66
                      var portalURL = PropsUtil.get("portal.url");
                    • 68
                      return "${portalURL}";
                  }
                • 12
                  if (!(isSet(creatorEmailAddress))) {
                  • 13
                    if ("${authenticationMethod}" == "By Screen Name") {
                    • 14
                      if (!(isSet(userScreenName))) {
                      • 15
                        var creatorEmailAddress = "test";
                      }
                    • 17
                      else {
                      • 18
                        var creatorEmailAddress = "${userScreenName}";
                      }
                    }
                  • 21
                    else {
                    • 22
                      var creatorEmailAddress = "test@liferay.com";
                    }
                  }
                • 26
                  if (!(isSet(creatorPassword))) {
                  • 27
                    var creatorPassword = "test";
                  }
                • 30
                  var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                • 34
                  var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                • 36
                  return "${companyId}";
              • 276
                if (isSet(specificURL)) {
                • 277
                  var portalURL = "${specificURL}";
                }
              • 279
                else {
                • 280
                  var portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                }
              • 283
                if ("${authenticationMethod}" == "By Screen Name") {
                • 284
                  var userName = "test";
                }
              • 286
                else {
                • 287
                  var userName = "test@liferay.com";
                }
              • 290
                var curl = ''' ${portalURL}/api/jsonws/user/get-company-users \ -u ${userName}:test \ -d companyId=${companyId} \ -d \ -d ''';
              • 297
                var userIds = JSONCurlUtil.post("${curl}", "$..['userId']");
              • 299
                return "${userIds}";
            • 267
              for (var userId : list "${userIds}") {
              • 268
                var currentEmailAddress = JSONUserGetter.getEmailAddress( authenticationMethod = "${authenticationMethod}", userId = "${userId}");
                • 26
                  Variables.assertDefined(parameterList = "${userId}");
                  • 5
                    if (!(isSet(parameterList))) {
                    • 6
                      fail("Please define a parameter list in 'parameterList'");
                    }
                  • 9
                    for (var parameter : list "${parameterList}") {
                    • 13
                      var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                    • 17
                      if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                      • 18
                        fail("Please set '${parameter}'");
                      }
                    }
                • 28
                  var curl = JSONUserGetter._getUserByIdCurl( authenticationMethod = "${authenticationMethod}", userId = "${userId}");
                  • 4
                    Variables.assertDefined(parameterList = "${userId}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 6
                    var companyId = JSONCompany.getCompanyId(authenticationMethod = "${authenticationMethod}");
                    • 4
                      if (!(isSet(portalInstanceName))) {
                      • 5
                        var portalInstanceName = JSONCompany.getPortalInstanceName();
                        • 50
                          var testNameSkipPortalInstance = PropsUtil.get("test.name.skip.portal.instance");
                        • 51
                          var testPortalInstance = PropsUtil.get("test.portal.instance");
                        • 53
                          if (("${testPortalInstance}" == "true") && !(IsTestName(locator1 = "", value1 = "${testNameSkipPortalInstance}"))) {
                          • 54
                            var portalURL = JSONCompany.getPortalURL();
                            • 66
                              var portalURL = PropsUtil.get("portal.url");
                            • 68
                              return "${portalURL}";
                          • 56
                            var portalInstanceName = JSONCompany.parsePortalInstanceURL(portalURL = "${portalURL}");
                            • 72
                              Variables.assertDefined(parameterList = "${portalURL}");
                              • 5
                                if (!(isSet(parameterList))) {
                                • 6
                                  fail("Please define a parameter list in 'parameterList'");
                                }
                              • 9
                                for (var parameter : list "${parameterList}") {
                                • 13
                                  var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                                • 17
                                  if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                                  • 18
                                    fail("Please set '${parameter}'");
                                  }
                                }
                            • 74
                              var portalInstanceName = StringUtil.replace("${portalURL}", "http://", "");
                            • 75
                              var portalInstanceName = StringUtil.replace("${portalInstanceName}", ":8080", "");
                            • 77
                              return "${portalInstanceName}";
                          • 58
                            return "${portalInstanceName}";
                          }
                        • 60
                          else {
                          • 61
                            return "localhost";
                          }
                      }
                    • 8
                      if (!(isSet(portalURL))) {
                      • 9
                        var portalURL = JSONCompany.getPortalURL();
                        • 66
                          var portalURL = PropsUtil.get("portal.url");
                        • 68
                          return "${portalURL}";
                      }
                    • 12
                      if (!(isSet(creatorEmailAddress))) {
                      • 13
                        if ("${authenticationMethod}" == "By Screen Name") {
                        • 14
                          if (!(isSet(userScreenName))) {
                          • 15
                            var creatorEmailAddress = "test";
                          }
                        • 17
                          else {
                          • 18
                            var creatorEmailAddress = "${userScreenName}";
                          }
                        }
                      • 21
                        else {
                        • 22
                          var creatorEmailAddress = "test@liferay.com";
                        }
                      }
                    • 26
                      if (!(isSet(creatorPassword))) {
                      • 27
                        var creatorPassword = "test";
                      }
                    • 30
                      var curl = ''' ${portalURL}/api/jsonws/company/get-company-by-virtual-host/virtual-host/${portalInstanceName} \ -u ${creatorEmailAddress}:${creatorPassword} ''';
                    • 34
                      var companyId = JSONCurlUtil.get("${curl}", "$['companyId']");
                    • 36
                      return "${companyId}";
                  • 8
                    var portalURL = JSONCompany.getPortalURL();
                    • 66
                      var portalURL = PropsUtil.get("portal.url");
                    • 68
                      return "${portalURL}";
                  • 10
                    if ("${authenticationMethod}" == "By Screen Name") {
                    • 11
                      var userName = "test";
                    }
                  • 13
                    else {
                    • 14
                      var userName = "test@liferay.com";
                    }
                  • 17
                    var curl = ''' ${portalURL}/api/jsonws/user/get-user-by-id/user-id/${userId} \ -u ${userName}:test \ ''';
                  • 22
                    return "${curl}";
                • 32
                  var userEmailAddress = JSONCurlUtil.get("${curl}", "$['emailAddress']");
                • 34
                  return "${userEmailAddress}";
              • 272
                if ("${currentEmailAddress}" != "test@liferay.com") {
                • 273
                  JSONUser.deleteUserByUserId( authenticationMethod = "${authenticationMethod}", userId = "${userId}");
                  • 205
                    Variables.assertDefined(parameterList = "${userId}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 207
                    JSONUserAPI._deleteUser( authenticationMethod = "${authenticationMethod}", userId = "${userId}");
                    • 139
                      Variables.assertDefined(parameterList = "${userId}");
                      • 5
                        if (!(isSet(parameterList))) {
                        • 6
                          fail("Please define a parameter list in 'parameterList'");
                        }
                      • 9
                        for (var parameter : list "${parameterList}") {
                        • 13
                          var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                        • 17
                          if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                          • 18
                            fail("Please set '${parameter}'");
                          }
                        }
                    • 141
                      if (isSet(specificURL)) {
                      • 142
                        var portalURL = "${specificURL}";
                      }
                    • 144
                      else {
                      • 145
                        var portalURL = JSONCompany.getPortalURL();
                        • 66
                          var portalURL = PropsUtil.get("portal.url");
                        • 68
                          return "${portalURL}";
                      }
                    • 148
                      if ("${authenticationMethod}" == "By Screen Name") {
                      • 149
                        var userName = "test";
                      }
                    • 151
                      else {
                      • 152
                        var userName = "test@liferay.com";
                      }
                    • 155
                      var curl = ''' ${portalURL}/api/jsonws/user/delete-user \ -u ${userName}:test \ -d userId=${userId} ''';
                    • 161
                      com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
                }
              }
          • 104
            HeadlessPortalInstanceAPI.cleanAllPortalInstances(authenticationMethod = "${authenticationMethod}");
            • 107
              var portalInstanceJson = HeadlessPortalInstanceAPI._getPortalInstances(authenticationMethod = "${authenticationMethod}");
              • 5
                var portalURL = JSONCompany.getDefaultPortalURL();
                • 40
                  var portalURL = PropsUtil.get("default.portal.url");
                • 42
                  if (!(contains("${portalURL}", "http"))) {
                  • 43
                    var portalURL = "http://${portalURL}";
                  }
                • 46
                  return "${portalURL}";
              • 7
                if ("${authenticationMethod}" == "By Screen Name") {
                • 8
                  var userName = "test";
                }
              • 10
                else {
                • 11
                  var userName = "test@liferay.com";
                }
              • 14
                var curl = ''' ${portalURL}/o/headless-portal-instances/v1.0/portal-instances \ -u ${userName}:test \ -H Content-Type: application/json ''';
              • 19
                var json = JSONCurlUtil.get("${curl}");
              • 21
                return "${json}";
            • 109
              var portalInstanceIds = JSONUtil.getWithJSONPath("${portalInstanceJson}", "$.items..portalInstanceId");
            • 111
              for (var portalInstanceId : list "${portalInstanceIds}") {
              • 112
                if ("${portalInstanceId}" != "liferay.com") {
                • 113
                  HeadlessPortalInstanceAPI.deletePortalInstance( authenticationMethod = "${authenticationMethod}", portalInstanceId = "${portalInstanceId}");
                  • 122
                    Variables.assertDefined(parameterList = "${portalInstanceId}");
                    • 5
                      if (!(isSet(parameterList))) {
                      • 6
                        fail("Please define a parameter list in 'parameterList'");
                      }
                    • 9
                      for (var parameter : list "${parameterList}") {
                      • 13
                        var undefined = StringUtil.matches("${parameter}", "\$\{[^\$\{\s]*\}");
                      • 17
                        if (("${undefined}" == "true") && ("${parameter}" != "false")) {
                        • 18
                          fail("Please set '${parameter}'");
                        }
                      }
                  • 124
                    var portalURL = JSONCompany.getDefaultPortalURL();
                    • 40
                      var portalURL = PropsUtil.get("default.portal.url");
                    • 42
                      if (!(contains("${portalURL}", "http"))) {
                      • 43
                        var portalURL = "http://${portalURL}";
                      }
                    • 46
                      return "${portalURL}";
                  • 126
                    var portalInstanceId = StringUtil.replace("${portalInstanceId}", " ", "%20");
                  • 128
                    if ("${authenticationMethod}" == "By Screen Name") {
                    • 129
                      var userName = "test";
                    }
                  • 131
                    else {
                    • 132
                      var userName = "test@liferay.com";
                    }
                  • 135
                    var curl = ''' ${portalURL}/o/headless-portal-instances/v1.0/portal-instances/${portalInstanceId} \ -u ${userName}:test \ -H Content-Type: application/json ''';
                  • 141
                    JSONCurlUtil.delete("${curl}");
                }
              }
        }
      • 20
        else {
        • 21
          ObjectAdmin.deleteAllCustomObjectsViaAPI();
          • 669
            JSONObject.deleteAllCustomObjects( userEmailAddress = "${userEmailAddress}", userPassword = "${userPassword}");
            • 267
              var portalURL = JSONCompany.getPortalURL();
              • 66
                var portalURL = PropsUtil.get("portal.url");
              • 68
                return "${portalURL}";
            • 269
              if (!(isSet(userEmailAddress))) {
              • 270
                var userEmailAddress = "test@liferay.com";
              }
            • 273
              if (!(isSet(userPassword))) {
              • 274
                var userPassword = "test";
              }
            • 277
              var curl = ''' ${portalURL}/o/object-admin/v1.0/object-definitions \ -u ${userEmailAddress}:${userPassword} ''';
            • 281
              var objectIdList = JSONCurlUtil.get("${curl}", "$.items[?(@['system'] == false)]['id']");
            • 283
              if ("${objectIdList}" != "") {
              • 284
                for (var objectId : list "${objectIdList}") {
                • 285
                  var curl = ''' ${portalURL}/o/object-admin/v1.0/object-definitions/${objectId} \ -u ${userEmailAddress}:${userPassword} ''';
                • 290
                  JSONCurlUtil.delete("${curl}");
                }
              }
        }
      }