LocalFile.ContentPageConverter#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":1639047134891,"ctCollectionId":"0","defaultUser":false,"emailAddress":"[email protected]","emailAddressVerified":true,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"Test","googleUserId":"","graceLoginCount":0,"greeting":"Welcome Test Test!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":1639058653609,"lastLoginIP":"127.0.0.1","lastName":"Test","ldapServerId":"-1","lockout":false,"lockoutDate":null,"loginDate":1639058726629,"loginIP":"127.0.0.1","middleName":"","modifiedDate":1639058867812,"mvccVersion":"48","openId":"","portraitId":"0","reminderQueryAnswer":"test","reminderQueryQuestion":"what-is-your-father's-middle-name","screenName":"test","status":0,"timeZoneId":"UTC","userId":"20127","uuid":"4394dfbe-dd9c-5f20-6bde-ce36d87743ad"}Finished executing commands.
  • Running post with parametersArg: ${curl}Return: {"agreedToTermsOfUse":true,"comments":"","companyId":"20099","contactId":"20129","createDate":1639047134891,"ctCollectionId":"0","defaultUser":false,"emailAddress":"[email protected]","emailAddressVerified":true,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"Test","googleUserId":"","graceLoginCount":0,"greeting":"Welcome Test Test!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":1639058653609,"lastLoginIP":"127.0.0.1","lastName":"Test","ldapServerId":"-1","lockout":false,"lockoutDate":null,"loginDate":1639058726629,"loginIP":"127.0.0.1","middleName":"","modifiedDate":1639058868085,"mvccVersion":"49","openId":"","portraitId":"0","reminderQueryAnswer":"test","reminderQueryQuestion":"what-is-your-father's-middle-name","screenName":"test","status":0,"timeZoneId":"UTC","userId":"20127","uuid":"4394dfbe-dd9c-5f20-6bde-ce36d87743ad"}Finished executing commands.
  • Running Open with locator1http://localhost:8080/web/[email protected]
    • 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/[email protected]
    • Running assertLiferayErrors
    • Running selectWindow with parameters
    • Running selectFrame with parametersrelative=top
    • Running open with parametershttp://localhost:8080/web/[email protected]
    • 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/[email protected]
    • 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/[email protected]
    • 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, }; }
  • Running post with parametersArg: ${curl}Return: {"active":true,"classNameId":"20003","classPK":"41515","companyId":"20099","creatorUserId":"20127","ctCollectionId":"0","description":"","descriptionCurrentValue":"","descriptiveName":"Test Site Name","friendlyURL":"\/test-site-name","groupId":"41515","groupKey":"Test Site Name","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\">Test Site Name<\/Name><\/root>","nameCurrentValue":"Test Site Name","parentGroupId":"0","remoteStagingGroupCount":0,"site":true,"treePath":"\/41515\/","type":1,"uuid":"18361743-0cbb-f0a9-9905-be4a51b5ccd1"}Finished executing commands.
  • LocalFile.ContentPageConverter#ConvertWidgetPageWithNonStandardLayout
  • This is a test for LPS-105943. When convert a widget page with a non-standard layout, there will be a warning message shown in conversion preview
  • 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(.,'System')]/following-sibling::li//span[normalize-space(text())='App Manager']
    • 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(.,'System')]/following-sibling::li//span[normalize-space(text())='App Manager']
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'System')]/following-sibling::li//span[normalize-space(text())='App Manager']
    • Running mouseOver with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'System')]/following-sibling::li//span[normalize-space(text())='App Manager']
    • Running click with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'System')]/following-sibling::li//span[normalize-space(text())='App Manager']
    • Running assertJavaScriptErrors with parameters//div[contains(@role,'tabpanel') and contains(@class,'active')]//div[contains(@class,'applications-menu-nav-columns')]//li[contains(.,'System')]/following-sibling::li//span[normalize-space(text())='App Manager']
    • Running assertLiferayErrors
  • Running Click with locator1//div[@id='main-content']//div[contains(@class,'portlet-options')]/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[@id='main-content']//div[contains(@class,'portlet-options')]/a
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[@id='main-content']//div[contains(@class,'portlet-options')]/a
    • Running mouseOver with parameters//div[@id='main-content']//div[contains(@class,'portlet-options')]/a
    • Running click with parameters//div[@id='main-content']//div[contains(@class,'portlet-options')]/a
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@class,'portlet-options')]/a
    • Running assertLiferayErrors
  • Running Click with locator1xpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Upload"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Upload"]
    • 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())="Upload"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Upload"]
    • Running assertLiferayErrors
    • Running waitForVisible with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Upload"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Upload"]
    • Running mouseOver with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Upload"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Upload"]
    • Running click with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Upload"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Upload"]
    • Running assertJavaScriptErrors with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Upload"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Upload"]
    • 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 AssertElementPresent with locator1//input[contains(@id,'file') or contains(@id,'File')][@type='file'] | //input[@type='file']
    • 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,'file') or contains(@id,'File')][@type='file'] | //input[@type='file']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//input[contains(@id,'file') or contains(@id,'File')][@type='file'] | //input[@type='file']
    • Running assertElementPresent with parameters//input[contains(@id,'file') or contains(@id,'File')][@type='file'] | //input[@type='file']
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'file') or contains(@id,'File')][@type='file'] | //input[@type='file']
    • Running assertLiferayErrors
  • Running archive with parametersArg: ${dependencyFilePath}Arg: ${tempDir}/${fileName}Return:
  • Running UploadFile with locator1//input[contains(@id,'file') or contains(@id,'File')][@type='file'] | //input[@type='file'] with value1/home/me/dev/projects/liferay-portal/../bundles/poshi/custom-layout-layouttpl.war
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]/home/me/dev/projects/liferay-portal/../bundles/poshi/custom-layout-layouttpl.war
    • 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;')]/home/me/dev/projects/liferay-portal/../bundles/poshi/custom-layout-layouttpl.war
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'file') or contains(@id,'File')][@type='file'] | //input[@type='file']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//input[contains(@id,'file') or contains(@id,'File')][@type='file'] | //input[@type='file']/home/me/dev/projects/liferay-portal/../bundles/poshi/custom-layout-layouttpl.war
    • Running uploadFile with parameters//input[contains(@id,'file') or contains(@id,'File')][@type='file'] | //input[@type='file']/home/me/dev/projects/liferay-portal/../bundles/poshi/custom-layout-layouttpl.war
    • Running assertJavaScriptErrors with parameters//input[contains(@id,'file') or contains(@id,'File')][@type='file'] | //input[@type='file']
    • Running assertLiferayErrors
  • Running Click#mouseDownMouseUp with locator1//*[not(self::div)][contains(@class,'btn')][normalize-space()='Install'][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()='Install'][not(contains(@class,'navbar'))]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Install'][not(contains(@class,'navbar'))]
    • Running waitForVisible with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Install'][not(contains(@class,'navbar'))]
    • Running mouseDown with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Install'][not(contains(@class,'navbar'))]
    • Running mouseUp with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Install'][not(contains(@class,'navbar'))]
    • Running assertJavaScriptErrors with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Install'][not(contains(@class,'navbar'))]
    • Running assertLiferayErrors
  • Running AssertTextEquals#assertPartialText with locator1//div[contains(@class,'alert') and contains(@class,'alert-success')] with value1The plugin was uploaded successfully and is now being installed.
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]The plugin was uploaded successfully and is now being installed.
    • 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;')]The plugin was uploaded successfully and is now being installed.
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'alert') and contains(@class,'alert-success')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'alert') and contains(@class,'alert-success')]The plugin was uploaded successfully and is now being installed.
    • Running waitForPartialTextCaseInsensitive with parameters//div[contains(@class,'alert') and contains(@class,'alert-success')]The plugin was uploaded successfully and is now being installed.
    • Running assertPartialTextCaseInsensitive with parameters//div[contains(@class,'alert') and contains(@class,'alert-success')]The plugin was uploaded successfully and is now being installed.
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'alert') and contains(@class,'alert-success')]
    • Running assertLiferayErrors
  • Running SelectFrame#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 Click with locator1//button[contains(@class,'close')] | //a[contains(@id,'closePanelAdd') and contains(@class,'close')]
    • 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(@class,'close')] | //a[contains(@id,'closePanelAdd') and contains(@class,'close')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//button[contains(@class,'close')] | //a[contains(@id,'closePanelAdd') and contains(@class,'close')]
    • Running mouseOver with parameters//button[contains(@class,'close')] | //a[contains(@id,'closePanelAdd') and contains(@class,'close')]
    • Running click with parameters//button[contains(@class,'close')] | //a[contains(@id,'closePanelAdd') and contains(@class,'close')]
    • Running assertJavaScriptErrors with parameters//button[contains(@class,'close')] | //a[contains(@id,'closePanelAdd') and contains(@class,'close')]
    • Running assertLiferayErrors
  • Running WaitForConsoleTextPresent with value1STARTED custom-layout-layouttpl
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]STARTED custom-layout-layouttpl
    • 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;')]STARTED custom-layout-layouttpl
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
    • Running waitForConsoleTextPresent with parametersSTARTED custom-layout-layouttpl

    Cause:

    Console log /home/me/dev/projects/liferay-portal/../bundles/logs/liferay.*.xml exceeded 20971520 bytes

    Steps:

    • Set up instance and sign in --> PASSED
    • Add a site --> PASSED
    • Upload the custom layout --> WARNING
      • Click on 'TOGGLE' --> PASSED
      • WaitForElementPresent#waitForElementPresent --> PASSED
      • Click on 'PANEL' --> PASSED
      • Assert that 'ACTIVE_PANEL' is available --> PASSED
      • WaitForLiferayEvent#initializeLiferayEventLog --> PASSED
      • Click on 'PORTLET' --> PASSED
      • Click on 'OPTIONS_ICON' --> PASSED
      • Click on 'ANY_MENU_ITEM' --> PASSED
      • SelectFrame#selectFrame --> PASSED
      • Assert that 'FILE' is available --> PASSED
      • UploadFile#uploadFile --> PASSED
      • Click on 'ANY' --> PASSED
      • Assert that 'SUCCESS' contains the value 'The plugin was uploaded successfully and is now being installed.' --> PASSED
      • SelectFrame#selectFrameTop --> PASSED
      • Click on 'CLOSE' --> PASSED
      • WaitForConsoleTextPresent#waitForConsoleTextPresent --> WARNING
    before0Before
    after0After
  • Running AssertConsoleTextNotPresent with value1HotDeployException: Error initializing Spring for custom-layout-layouttpl
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]HotDeployException: Error initializing Spring for custom-layout-layouttpl
    • 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;')]HotDeployException: Error initializing Spring for custom-layout-layouttpl
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
    • Running assertConsoleTextNotPresent with parametersHotDeployException: Error initializing Spring for custom-layout-layouttpl

    Cause:

    Console log /home/me/dev/projects/liferay-portal/../bundles/logs/liferay.*.xml exceeded 20971520 bytes

    Steps:

    • Set up instance and sign in --> PASSED
    • Add a site --> PASSED
    • Upload the custom layout --> WARNING
      • Click on 'TOGGLE' --> PASSED
      • WaitForElementPresent#waitForElementPresent --> PASSED
      • Click on 'PANEL' --> PASSED
      • Assert that 'ACTIVE_PANEL' is available --> PASSED
      • WaitForLiferayEvent#initializeLiferayEventLog --> PASSED
      • Click on 'PORTLET' --> PASSED
      • Click on 'OPTIONS_ICON' --> PASSED
      • Click on 'ANY_MENU_ITEM' --> PASSED
      • SelectFrame#selectFrame --> PASSED
      • Assert that 'FILE' is available --> PASSED
      • UploadFile#uploadFile --> PASSED
      • Click on 'ANY' --> PASSED
      • Assert that 'SUCCESS' contains the value 'The plugin was uploaded successfully and is now being installed.' --> PASSED
      • SelectFrame#selectFrameTop --> PASSED
      • Click on 'CLOSE' --> PASSED
      • WaitForConsoleTextPresent#waitForConsoleTextPresent --> WARNING
      • AssertConsoleTextNotPresent#assertConsoleTextNotPresent --> WARNING
    before1Before
    after1After
  • Running AssertConsoleTextNotPresent with value1HotDeployException: Error registering hook for custom-layout-layouttpl
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]HotDeployException: Error registering hook for custom-layout-layouttpl
    • 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;')]HotDeployException: Error registering hook for custom-layout-layouttpl
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
    • Running assertConsoleTextNotPresent with parametersHotDeployException: Error registering hook for custom-layout-layouttpl

    Cause:

    Console log /home/me/dev/projects/liferay-portal/../bundles/logs/liferay.*.xml exceeded 20971520 bytes

    Steps:

    • Set up instance and sign in --> PASSED
    • Add a site --> PASSED
    • Upload the custom layout --> WARNING
      • Click on 'TOGGLE' --> PASSED
      • WaitForElementPresent#waitForElementPresent --> PASSED
      • Click on 'PANEL' --> PASSED
      • Assert that 'ACTIVE_PANEL' is available --> PASSED
      • WaitForLiferayEvent#initializeLiferayEventLog --> PASSED
      • Click on 'PORTLET' --> PASSED
      • Click on 'OPTIONS_ICON' --> PASSED
      • Click on 'ANY_MENU_ITEM' --> PASSED
      • SelectFrame#selectFrame --> PASSED
      • Assert that 'FILE' is available --> PASSED
      • UploadFile#uploadFile --> PASSED
      • Click on 'ANY' --> PASSED
      • Assert that 'SUCCESS' contains the value 'The plugin was uploaded successfully and is now being installed.' --> PASSED
      • SelectFrame#selectFrameTop --> PASSED
      • Click on 'CLOSE' --> PASSED
      • WaitForConsoleTextPresent#waitForConsoleTextPresent --> WARNING
      • AssertConsoleTextNotPresent#assertConsoleTextNotPresent --> WARNING
      • AssertConsoleTextNotPresent#assertConsoleTextNotPresent --> WARNING
    before2Before
    after2After
  • Running AssertConsoleTextNotPresent with value1HotDeployException: Error registering portlets for custom-layout-layouttpl
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]HotDeployException: Error registering portlets for custom-layout-layouttpl
    • 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;')]HotDeployException: Error registering portlets for custom-layout-layouttpl
    • Running assertJavaScriptErrors with parameters
    • Running assertLiferayErrors
    • Running assertConsoleTextNotPresent with parametersHotDeployException: Error registering portlets for custom-layout-layouttpl

    Cause:

    Console log /home/me/dev/projects/liferay-portal/../bundles/logs/liferay.*.xml exceeded 20971520 bytes

    Steps:

    • Set up instance and sign in --> PASSED
    • Add a site --> PASSED
    • Upload the custom layout --> WARNING
      • Click on 'TOGGLE' --> PASSED
      • WaitForElementPresent#waitForElementPresent --> PASSED
      • Click on 'PANEL' --> PASSED
      • Assert that 'ACTIVE_PANEL' is available --> PASSED
      • WaitForLiferayEvent#initializeLiferayEventLog --> PASSED
      • Click on 'PORTLET' --> PASSED
      • Click on 'OPTIONS_ICON' --> PASSED
      • Click on 'ANY_MENU_ITEM' --> PASSED
      • SelectFrame#selectFrame --> PASSED
      • Assert that 'FILE' is available --> PASSED
      • UploadFile#uploadFile --> PASSED
      • Click on 'ANY' --> PASSED
      • Assert that 'SUCCESS' contains the value 'The plugin was uploaded successfully and is now being installed.' --> PASSED
      • SelectFrame#selectFrameTop --> PASSED
      • Click on 'CLOSE' --> PASSED
      • WaitForConsoleTextPresent#waitForConsoleTextPresent --> WARNING
      • AssertConsoleTextNotPresent#assertConsoleTextNotPresent --> WARNING
      • AssertConsoleTextNotPresent#assertConsoleTextNotPresent --> WARNING
      • AssertConsoleTextNotPresent#assertConsoleTextNotPresent --> WARNING
    before3Before
    after3After
  • ## * GroupId: 41515
  • Running Open with locator1http://localhost:8080/group/test-site-name/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet
    • 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/group/test-site-name/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet
    • Running assertLiferayErrors
    • Running selectWindow with parameters
    • Running selectFrame with parametersrelative=top
    • Running open with parametershttp://localhost:8080/group/test-site-name/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet
    • 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/group/test-site-name/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet
    • 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/group/test-site-name/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet
    • Running assertLiferayErrors
  • Running IsTextNotEqual with locator1//*[@data-qa-id='headerTitle'] with value1Pages
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Pages
    • 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;')]Pages
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='headerTitle']
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Pages
    • 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;')]Pages
    • Running assertJavaScriptErrors with parameters//*[@data-qa-id='headerTitle']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//*[@data-qa-id='headerTitle']Pages
    • Running isNotText with parameters//*[@data-qa-id='headerTitle']Pages
  • 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 IsElementNotPresent with locator1//ol[contains(@class,'breadcrumb')]//*[text()='Public Pages']
    • 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//ol[contains(@class,'breadcrumb')]//*[text()='Public Pages']
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//ol[contains(@class,'breadcrumb')]//*[text()='Public Pages']
    • Running isNotVisible with parameters//ol[contains(@class,'breadcrumb')]//*[text()='Public Pages']
  • 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//li[contains(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • 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(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//li[contains(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • Running mouseOver with parameters//li[contains(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • Running click with parameters//li[contains(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • Running assertJavaScriptErrors with parameters//li[contains(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • Running assertLiferayErrors
  • Running Click with locator1xpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Configure"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Configure"]
    • 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())="Configure"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Configure"]
    • Running assertLiferayErrors
    • Running waitForVisible with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Configure"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Configure"]
    • Running mouseOver with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Configure"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Configure"]
    • Running click with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Configure"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Configure"]
    • Running assertJavaScriptErrors with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Configure"] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Configure"]
    • Running assertLiferayErrors
  • Running Click with locator1//div[contains(@class,'card')]//span[contains(.,'Custom Layout')]
    • 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,'card')]//span[contains(.,'Custom Layout')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'card')]//span[contains(.,'Custom Layout')]
    • Running mouseOver with parameters//div[contains(@class,'card')]//span[contains(.,'Custom Layout')]
    • Running click with parameters//div[contains(@class,'card')]//span[contains(.,'Custom Layout')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'card')]//span[contains(.,'Custom Layout')]
    • Running assertLiferayErrors
  • Running Click#mouseDownMouseUp with locator1//*[not(self::div)][contains(@class,'btn')][normalize-space()='Save'][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()='Save'][not(contains(@class,'navbar'))]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Save'][not(contains(@class,'navbar'))]
    • Running waitForVisible with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Save'][not(contains(@class,'navbar'))]
    • Running mouseDown with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Save'][not(contains(@class,'navbar'))]
    • Running mouseUp with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Save'][not(contains(@class,'navbar'))]
    • Running assertJavaScriptErrors with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Save'][not(contains(@class,'navbar'))]
    • 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 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 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, }; }
  • ## * GroupId: 41515
  • Running post with parametersArg: ${curl}Return: {"classNameId":"0","classPK":"0","colorSchemeId":"","companyId":"20099","createDate":1639058901828,"css":"","ctCollectionId":"0","description":"","descriptionCurrentValue":"","friendlyURL":"\/test-page-name","groupId":"41515","hidden":false,"iconImageId":"0","keywords":"","keywordsCurrentValue":"","lastPublishDate":null,"layoutId":"1","layoutPrototypeLinkEnabled":false,"layoutPrototypeUuid":"","masterLayoutPlid":"0","modifiedDate":1639058907931,"mvccVersion":"5","name":"<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"en_US\" default-locale=\"en_US\"><Name language-id=\"en_US\">Test Page Name<\/Name><\/root>","nameCurrentValue":"Test Page Name","parentLayoutId":"0","parentPlid":"0","plid":"89","priority":0,"privateLayout":false,"publishDate":1639058901828,"robots":"","robotsCurrentValue":"","sourcePrototypeLayoutUuid":"","status":0,"statusByUserId":"20127","statusByUserName":"Test Test","statusDate":1639058901828,"styleBookEntryId":"0","system":false,"themeId":"classic_WAR_classictheme","title":"","titleCurrentValue":"","type":"portlet","typeSettings":"CUSTOMIZABLE_LAYOUT=false%0Acolumn-1=com_liferay_contacts_web_portlet_ProfilePortlet_INSTANCE_8upIrZxOmjfb%0Acolumn-1-customizable=false%0Acolumn-2-customizable=false%0Alayout-template-id=custom-layout%0AlayoutUpdateable=true%0A","userId":"20127","userName":"Test Test","uuid":"cc5b761a-9bfb-7942-4ca1-021c77de1108"}Finished executing commands.
  • ## * GroupId: 41515
  • Running post with parametersArg: ${curl}Return: {"classNameId":"0","classPK":"0","colorSchemeId":"","companyId":"20099","createDate":1639058901828,"css":"","ctCollectionId":"0","description":"","descriptionCurrentValue":"","friendlyURL":"\/test-page-name","groupId":"41515","hidden":false,"iconImageId":"0","keywords":"","keywordsCurrentValue":"","lastPublishDate":null,"layoutId":"1","layoutPrototypeLinkEnabled":false,"layoutPrototypeUuid":"","masterLayoutPlid":"0","modifiedDate":1639058909159,"mvccVersion":"6","name":"<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"en_US\" default-locale=\"en_US\"><Name language-id=\"en_US\">Test Page Name<\/Name><\/root>","nameCurrentValue":"Test Page Name","parentLayoutId":"0","parentPlid":"0","plid":"89","priority":0,"privateLayout":false,"publishDate":1639058901828,"robots":"","robotsCurrentValue":"","sourcePrototypeLayoutUuid":"","status":0,"statusByUserId":"20127","statusByUserName":"Test Test","statusDate":1639058901828,"styleBookEntryId":"0","system":false,"themeId":"classic_WAR_classictheme","title":"","titleCurrentValue":"","type":"portlet","typeSettings":"CUSTOMIZABLE_LAYOUT=false%0Acolumn-1=com_liferay_contacts_web_portlet_ProfilePortlet_INSTANCE_8upIrZxOmjfb,com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_HXNgYnSrjsc6%0Acolumn-1-customizable=false%0Acolumn-2-customizable=false%0Alayout-template-id=custom-layout%0AlayoutUpdateable=true%0A","userId":"20127","userName":"Test Test","uuid":"cc5b761a-9bfb-7942-4ca1-021c77de1108"}Finished executing commands.
  • Running Open with locator1http://localhost:8080/web/test-site-name
    • 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/test-site-name
    • Running assertLiferayErrors
    • Running selectWindow with parameters
    • Running selectFrame with parametersrelative=top
    • Running open with parametershttp://localhost:8080/web/test-site-name
    • 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/test-site-name
    • 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/test-site-name
    • Running assertLiferayErrors
  • Running IsElementNotPresent with locator1//div[contains(@id,'navbar')]/ul//*[contains(@class,'active')][.//*[normalize-space(text())='Test Page Name']]
    • 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,'navbar')]/ul//*[contains(@class,'active')][.//*[normalize-space(text())='Test Page Name']]
    • Running assertLiferayErrors
    • Running isElementPresent with parameters//div[contains(@id,'navbar')]/ul//*[contains(@class,'active')][.//*[normalize-space(text())='Test Page Name']]
    • Running isNotVisible with parameters//div[contains(@id,'navbar')]/ul//*[contains(@class,'active')][.//*[normalize-space(text())='Test Page Name']]
  • Running AssertVisible with locator1//div[contains(@id,'navbar')]/ul//*[contains(@class,'active')][.//*[normalize-space(text())='Test Page Name']]
    • 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,'navbar')]/ul//*[contains(@class,'active')][.//*[normalize-space(text())='Test Page Name']]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@id,'navbar')]/ul//*[contains(@class,'active')][.//*[normalize-space(text())='Test Page Name']]
    • Running assertVisible with parameters//div[contains(@id,'navbar')]/ul//*[contains(@class,'active')][.//*[normalize-space(text())='Test Page Name']]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'navbar')]/ul//*[contains(@class,'active')][.//*[normalize-space(text())='Test Page Name']]
    • Running assertLiferayErrors
  • Running AssertTextEquals with locator1//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Profile')] with value1Profile
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Profile
    • 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;')]Profile
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Profile')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Profile
    • 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;')]Profile
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Profile')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Profile')]Profile
    • Running waitForTextCaseInsensitive with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Profile')]Profile
    • Running assertTextCaseInsensitive with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Profile')]Profile
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Profile')]
    • Running assertLiferayErrors
  • Running DragAndDrop#dragAndDropPortletToObject with locator1//div[@id='main-content']//div[contains(@id,'column-1')]//header[contains(@class,'portlet-topper')]//span[.='Profile'] with value1Profile with locator2//div[contains(@id,'main-content')]//div[contains(@class,'portlet-dropzone') and contains(@id,'layout-column_column-2')]
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Profile
    • 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;')]Profile
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//header[contains(@class,'portlet-topper')]//span[.='Profile']
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//header[contains(@class,'portlet-topper')]//span[.='Profile']Profile
    • Running mouseOver with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//header[contains(@class,'portlet-topper')]//span[.='Profile']
    • Running waitForVisible with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//header[contains(@class,'portlet-topper')]//span[.='Profile']Profile
    • Running waitForTextCaseInsensitive with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//header[contains(@class,'portlet-topper')]//span[.='Profile']Profile
    • Running waitForVisible with parameters//div[contains(@id,'main-content')]//div[contains(@class,'portlet-dropzone') and contains(@id,'layout-column_column-2')]Profile
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Profile
    • 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;')]Profile
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'main-content')]//div[contains(@class,'portlet-dropzone') and contains(@id,'layout-column_column-2')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//div[contains(@id,'main-content')]//div[contains(@class,'portlet-dropzone') and contains(@id,'layout-column_column-2')]Profile
    • Running scrollWebElementIntoView with parameters//div[contains(@id,'main-content')]//div[contains(@class,'portlet-dropzone') and contains(@id,'layout-column_column-2')]
    • Running assertJavaScriptErrors with parameters//div[contains(@id,'main-content')]//div[contains(@class,'portlet-dropzone') and contains(@id,'layout-column_column-2')]
    • Running assertLiferayErrors
    • Running mouseOver with parameters//div[contains(@id,'main-content')]//div[contains(@class,'portlet-dropzone') and contains(@id,'layout-column_column-2')]
    • Running mouseDown with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//header[contains(@class,'portlet-topper')]//span[.='Profile']
    • Running mouseMoveAt with parameters//div[contains(@id,'main-content')]//div[contains(@class,'portlet-dropzone') and contains(@id,'layout-column_column-2')]0,80
    • Running mouseMoveAt with parameters//div[contains(@id,'main-content')]//div[contains(@class,'portlet-dropzone') and contains(@id,'layout-column_column-2')]0,-80
    • Running mouseMoveAt with parameters//div[contains(@id,'main-content')]//div[contains(@class,'portlet-dropzone') and contains(@id,'layout-column_column-2')]0,80
    • Running mouseMove with parameters//div[contains(@id,'main-content')]//div[contains(@class,'portlet-dropzone') and contains(@id,'layout-column_column-2')]
    • Running pause with parameters3000
    • Running mouseRelease
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//header[contains(@class,'portlet-topper')]//span[.='Profile']
    • Running assertLiferayErrors
  • Running AssertTextEquals with locator1//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')] with value1Profile
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Profile
    • 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;')]Profile
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Profile
    • 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;')]Profile
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]Profile
    • Running waitForTextCaseInsensitive with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]Profile
    • Running assertTextCaseInsensitive with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]Profile
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]
    • Running assertLiferayErrors
  • Running AssertTextEquals with locator1//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Asset Publisher')] with value1Asset Publisher
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Asset Publisher
    • 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;')]Asset Publisher
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Asset Publisher')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Asset Publisher
    • 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;')]Asset Publisher
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Asset Publisher')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Asset Publisher')]Asset Publisher
    • Running waitForTextCaseInsensitive with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Asset Publisher')]Asset Publisher
    • Running assertTextCaseInsensitive with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Asset Publisher')]Asset Publisher
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-1')]//h2[contains(@class,'portlet-title') and (.='Asset Publisher')]
    • Running assertLiferayErrors
  • Running AssertTextEquals with locator1//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')] with value1Profile
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Profile
    • 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;')]Profile
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]
    • Running assertLiferayErrors
    • Running waitForElementNotPresent with parameters//html[contains(@class,'lfr-spa-loading')]Profile
    • 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;')]Profile
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]Profile
    • Running waitForTextCaseInsensitive with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]Profile
    • Running assertTextCaseInsensitive with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]Profile
    • Running assertJavaScriptErrors with parameters//div[@id='main-content']//div[contains(@id,'column-2')]//h2[contains(@class,'portlet-title') and (.='Profile')]
    • Running assertLiferayErrors
  • Running Open with locator1http://localhost:8080/group/test-site-name/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet
    • 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/group/test-site-name/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet
    • Running assertLiferayErrors
    • Running selectWindow with parameters
    • Running selectFrame with parametersrelative=top
    • Running open with parametershttp://localhost:8080/group/test-site-name/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet
    • 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/group/test-site-name/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet
    • 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/group/test-site-name/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet
    • 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//li[contains(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • 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(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//li[contains(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • Running mouseOver with parameters//li[contains(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • Running click with parameters//li[contains(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • Running assertJavaScriptErrors with parameters//li[contains(.,'Test Page Name')]//*[*[name()='svg'][contains(@class,'ellipsis-v')]]
    • Running assertLiferayErrors
  • Running Click with locator1xpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Convert to content page..."] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Convert to content page..."]
    • 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())="Convert to content page..."] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Convert to content page..."]
    • Running assertLiferayErrors
    • Running waitForVisible with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Convert to content page..."] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Convert to content page..."]
    • Running mouseOver with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Convert to content page..."] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Convert to content page..."]
    • Running click with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Convert to content page..."] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Convert to content page..."]
    • Running assertJavaScriptErrors with parametersxpath=(//div | //li)[contains(@class,'open') or contains(@class,'show')]//*[normalize-space(text())="Convert to content page..."] | //ul[contains(@class,'dropdown-menu') and contains(@class,'show')]//li//*[normalize-space(text())="Convert to content page..."]
    • 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 AssertVisible with locator1//div[contains(@class,'sidebar')]/div[contains(@class,'buttons')]/button
    • 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,'sidebar')]/div[contains(@class,'buttons')]/button
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'sidebar')]/div[contains(@class,'buttons')]/button
    • Running assertVisible with parameters//div[contains(@class,'sidebar')]/div[contains(@class,'buttons')]/button
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'sidebar')]/div[contains(@class,'buttons')]/button
    • Running assertLiferayErrors
  • Running AssertVisible with locator1//div[contains(@class,'conversion-messages')]/div[contains(@class,'alert-warning')][contains(.,'This page uses a custom page layout. A best-effort conversion has been performed. Verify the conversion draft before publishing it.')]
    • 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,'conversion-messages')]/div[contains(@class,'alert-warning')][contains(.,'This page uses a custom page layout. A best-effort conversion has been performed. Verify the conversion draft before publishing it.')]
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'conversion-messages')]/div[contains(@class,'alert-warning')][contains(.,'This page uses a custom page layout. A best-effort conversion has been performed. Verify the conversion draft before publishing it.')]
    • Running assertVisible with parameters//div[contains(@class,'conversion-messages')]/div[contains(@class,'alert-warning')][contains(.,'This page uses a custom page layout. A best-effort conversion has been performed. Verify the conversion draft before publishing it.')]
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'conversion-messages')]/div[contains(@class,'alert-warning')][contains(.,'This page uses a custom page layout. A best-effort conversion has been performed. Verify the conversion draft before publishing it.')]
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1xpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][1]//div[contains(@class,'page-editor')]//li[contains(.,'Asset Publisher')]
    • 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[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][1]//div[contains(@class,'page-editor')]//li[contains(.,'Asset Publisher')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][1]//div[contains(@class,'page-editor')]//li[contains(.,'Asset Publisher')]
    • Running assertElementPresent with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][1]//div[contains(@class,'page-editor')]//li[contains(.,'Asset Publisher')]
    • Running assertJavaScriptErrors with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][1]//div[contains(@class,'page-editor')]//li[contains(.,'Asset Publisher')]
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1xpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][2]//div[contains(@class,'page-editor')]//li[contains(.,'Profile')]
    • 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[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][2]//div[contains(@class,'page-editor')]//li[contains(.,'Profile')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][2]//div[contains(@class,'page-editor')]//li[contains(.,'Profile')]
    • Running assertElementPresent with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][2]//div[contains(@class,'page-editor')]//li[contains(.,'Profile')]
    • Running assertJavaScriptErrors with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][2]//div[contains(@class,'page-editor')]//li[contains(.,'Profile')]
    • Running assertLiferayErrors
  • Running Click#mouseDownMouseUp with locator1//*[not(self::div)][contains(@class,'btn')][normalize-space()='Publish'][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()='Publish'][not(contains(@class,'navbar'))]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Publish'][not(contains(@class,'navbar'))]
    • Running waitForVisible with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Publish'][not(contains(@class,'navbar'))]
    • Running mouseDown with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Publish'][not(contains(@class,'navbar'))]
    • Running mouseUp with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Publish'][not(contains(@class,'navbar'))]
    • Running assertJavaScriptErrors with parameters//*[not(self::div)][contains(@class,'btn')][normalize-space()='Publish'][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 Open with locator1http://localhost:8080/web/test-site-name/test-page-name?p_l_mode=edit
    • 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/test-site-name/test-page-name?p_l_mode=edit
    • Running assertLiferayErrors
    • Running selectWindow with parameters
    • Running selectFrame with parametersrelative=top
    • Running open with parametershttp://localhost:8080/web/test-site-name/test-page-name?p_l_mode=edit
    • 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/test-site-name/test-page-name?p_l_mode=edit
    • 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/test-site-name/test-page-name?p_l_mode=edit
    • 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 AssertVisible with locator1//div[contains(@class,'sidebar')]/div[contains(@class,'buttons')]/button
    • 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,'sidebar')]/div[contains(@class,'buttons')]/button
    • Running assertLiferayErrors
    • Running waitForVisible with parameters//div[contains(@class,'sidebar')]/div[contains(@class,'buttons')]/button
    • Running assertVisible with parameters//div[contains(@class,'sidebar')]/div[contains(@class,'buttons')]/button
    • Running assertJavaScriptErrors with parameters//div[contains(@class,'sidebar')]/div[contains(@class,'buttons')]/button
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1xpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][1]//div[contains(@class,'page-editor')]//li[contains(.,'Asset Publisher')]
    • 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[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][1]//div[contains(@class,'page-editor')]//li[contains(.,'Asset Publisher')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][1]//div[contains(@class,'page-editor')]//li[contains(.,'Asset Publisher')]
    • Running assertElementPresent with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][1]//div[contains(@class,'page-editor')]//li[contains(.,'Asset Publisher')]
    • Running assertJavaScriptErrors with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][1]//div[contains(@class,'page-editor')]//li[contains(.,'Asset Publisher')]
    • Running assertLiferayErrors
  • Running AssertElementPresent with locator1xpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][2]//div[contains(@class,'page-editor')]//li[contains(.,'Profile')]
    • 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[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][2]//div[contains(@class,'page-editor')]//li[contains(.,'Profile')]
    • Running assertLiferayErrors
    • Running waitForElementPresent with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][2]//div[contains(@class,'page-editor')]//li[contains(.,'Profile')]
    • Running assertElementPresent with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][2]//div[contains(@class,'page-editor')]//li[contains(.,'Profile')]
    • Running assertJavaScriptErrors with parametersxpath=(//div[contains(@class,'layout-content')]//div[contains(@class,'row')][not(contains(@class,'alert'))])[1]/div[contains(@class,'col')][2]//div[contains(@class,'page-editor')]//li[contains(.,'Profile')]
    • Running assertLiferayErrors
  • LocalFile.ContentPageConverter#tear-down
  • ## * GroupId: 41515
  • Running post with parametersArg: ${curl}Return: {}Finished executing commands.
  • LocalFile.ContentPageConverter#ConvertWidgetPageWithNonStandardLayout

    • 8
      setUp {
      • 9
        task ("Set up instance and sign in") {
        • 10
          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 = "[email protected]";
                  }
                • 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 (contains("${parameterList}", "{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 = "[email protected]";
                      }
                    • 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 = "[email protected]";
                • 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 (contains("${parameterList}", "{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 = "[email protected]";
                    }
                  • 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}");
              }
            }
        • 12
          User.firstLoginPG();
          • 3
            var password = "test";
          • 4
            var userEmailAddress = "[email protected]";
          • 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 (contains("${baseURL}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                      }
                    }
                  • 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 = "[email protected]";
                  }
                • 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 (contains("${parameterList}", "{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 [email protected]: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 [email protected]: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 = "[email protected]";
            • 2463
              if (IsElementPresent.pauseIsElementPresent(locator1 = "TextInput#PASSWORD")) {
              • 2464
                if ("${syntaxCheckingEnabled}" == "true") {
                • 2465
                  Type( locator1 = "TextInput#PASSWORD_1", value1 = "${resetPassword}");
                • 2469
                  Type( locator1 = "TextInput#PASSWORD_2", value1 = "${resetPassword}");
                }
              • 2473
                else {
                • 2474
                  if ("${setupWizardEnabled}" == "true") {
                  • 2475
                    Type( locator1 = "TextInput#PASSWORD_1", value1 = "test2");
                  • 2479
                    Type( locator1 = "TextInput#PASSWORD_2", value1 = "test2");
                  }
                • 2483
                  else {
                  • 2484
                    Type( locator1 = "TextInput#PASSWORD_1", value1 = "test");
                  • 2488
                    Type( locator1 = "TextInput#PASSWORD_2", value1 = "test");
                  }
                }
              • 2494
                Button.clickSubmitButton();
                • 118
                  Click(locator1 = "Button#SUBMIT");
              • 2496
                AssertElementNotPresent(locator1 = "TextInput#ENTER_AGAIN");
              }
          • 1961
            User.answerPasswordReminder();
            • 3
              var password = "test";
            • 4
              var userEmailAddress = "[email protected]";
            • 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 = "[email protected]";
              • 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 (contains("${baseURL}", "{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 = "[email protected]";
                • 13
                  var localizedSignIn = User._getSignInText(localization = "${localization}");
                  • 3
                    var password = "test";
                  • 4
                    var userEmailAddress = "[email protected]";
                  • 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 = "[email protected]";
                • 7
                  var localizedSignIn = User._getSignInText(localization = "${localization}");
                  • 3
                    var password = "test";
                  • 4
                    var userEmailAddress = "[email protected]";
                  • 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 = "[email protected]";
                  • 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 = "[email protected]";
                  • 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 = "[email protected]";
                  • 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}");
                      • 138
                        AssertElementNotPresent( key_text = "${button}", locator1 = "Button#ANY");
                    }
                }
              • 2034
                else if (IsElementPresent(locator1 = "Select#QUESTION")) {
                • 2035
                  SignIn.setPasswordReminder();
                  • 3
                    var userEmailAddress = "[email protected]";
                  • 4
                    var userPassword = "test";
                  • 5
                    var userPasswordReminderAnswer = "test";
                  • 33
                    Type( locator1 = "TextInput#ANSWER", value1 = "${userPasswordReminderAnswer}");
                  • 37
                    Button.clickSave();
                    • 98
                      Button.click(button = "Save");
                      • 4
                        Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
                    • 100
                      WaitForLiferayEvent.initializeLiferayEventLog();
                }
              • 2038
                WaitForLiferayEvent.initializeLiferayEventLog();
            }
          • 1976
            else {
            • 1977
              WaitForLiferayEvent.initializeLiferayEventLog();
            }
        }
      • 15
        task ("Add a site") {
        • 16
          JSONGroup.addGroup(groupName = "Test Site Name");
          • 29
            Variables.assertDefined(parameterList = "${groupName}");
            • 5
              if (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                      }
                    }
                  • 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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                            }
                          }
                        • 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 [email protected]: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 [email protected]: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 (contains("${parameterList}", "{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 [email protected]: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}");
        }
      }
    • 575
      test ConvertWidgetPageWithNonStandardLayout {
      • 573
        @description = "This is a test for LPS-105943. When convert a widget page with a non-standard layout, there will be a warning message shown in conversion preview"
      • 579
        task ("Upload the custom layout") {
        • 580
          ApplicationsMenu.gotoPortlet( category = "System", panel = "Control Panel", portlet = "App Manager");
          • 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");
        • 585
          AppManager.uploadApp( appName = "custom-layout-layouttpl", warFileName = "custom-layout-layouttpl.war");
          • 28
            var key_appName = "${appName}";
          • 30
            Click(locator1 = "Portlet#OPTIONS_ICON");
          • 32
            MenuItem.click(menuItem = "Upload");
            • 4
              Click( key_menuItem = "${menuItem}", locator1 = "MenuItem#ANY_MENU_ITEM");
          • 34
            SelectFrame(locator1 = "IFrame#MODAL_BODY");
          • 36
            AssertElementPresent(locator1 = "TextInput#FILE");
          • 38
            UploadDependencyFile.uploadArchiveFile(fileName = "${warFileName}");
            • 4
              var tempDir = PropsUtil.get("output.dir.name");
            • 6
              var dependencyFilePath = TestCase.getDependenciesDirPath(fileName = "${fileName}");
              • 21
                var projectDir = PropsUtil.get("project.dir");
              • 22
                var testBaseDir = PropsUtil.get("test.base.dir.name");
              • 23
                var testDependenciesDir = PropsUtil.get("test.dependencies.dir.name");
              • 24
                var testName = selenium.getTestName();
              • 25
                var testName = StringUtil.extractLast("${testName}", ".");
              • 26
                var testName = StringUtil.extractFirst("${testName}", "#");
              • 28
                var testFileName = StringUtil.split("**/${testName}.testcase");
              • 29
                var testFilePaths = FileUtil.getIncludedResourceURLs("${testFileName}", "${projectDir}/portal-web");
              • 30
                var testFilePaths = StringUtil.valueOf("${testFilePaths}");
              • 32
                if ("${testFilePaths}" == "[]") {
                • 33
                  var testFilePaths = FileUtil.getIncludedResourceURLs("${testFileName}", "${projectDir}/modules");
                • 34
                  var testFilePaths = StringUtil.valueOf("${testFilePaths}");
                }
              • 37
                var testFilePath = RegexUtil.replace("${testFilePaths}", "\[(.*)\]", "1");
              • 38
                var testFilePath = StringUtil.extractLast("${testFilePath}", "file:");
              • 39
                var testFileParentDir = StringUtil.extractFirst("${testFilePath}", "${testName}.testcase");
              • 40
                var dependenciesDir = "${testFileParentDir}${testDependenciesDir}";
              • 41
                var dependencyFilePath = "${dependenciesDir}/${fileName}";
              • 42
                var fileExists = FileUtil.exists("${dependencyFilePath}");
              • 44
                if ("${fileExists}" == "false") {
                • 45
                  var dependencyFilePath = "${testBaseDir}${testDependenciesDir}/${fileName}";
                • 46
                  var globalFileExists = FileUtil.exists("${dependencyFilePath}");
                • 48
                  if ("${globalFileExists}" == "false") {
                  • 49
                    fail("Unable to find dependency file at ${dependenciesDir}/${fileName} or ${dependencyFilePath}");
                  }
                }
              • 53
                return "${dependencyFilePath}";
            • 8
              if (!(isSet(compressedFile))) {
              • 9
                ArchiveUtil.archive("${dependencyFilePath}", "${tempDir}/${fileName}");
              • 11
                var dependencyFilePath = "${tempDir}/${fileName}";
              }
            • 14
              UploadFile( locator1 = "TextInput#FILE", value1 = "${dependencyFilePath}");
          • 40
            Button.clickInstall();
            • 64
              Button.click(button = "Install");
              • 4
                Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
          • 42
            AssertTextEquals.assertPartialText( locator1 = "Message#SUCCESS", value1 = "The plugin was uploaded successfully and is now being installed.");
          • 46
            SelectFrame.selectFrameTop();
          • 48
            Click(locator1 = "Icon#CLOSE");
          • 50
            WaitForConsoleTextPresent(value1 = "STARTED ${appName}");
          • 52
            AssertConsoleTextNotPresent(value1 = "HotDeployException: Error initializing Spring for ${appName}");
          • 54
            AssertConsoleTextNotPresent(value1 = "HotDeployException: Error registering hook for ${appName}");
          • 56
            AssertConsoleTextNotPresent(value1 = "HotDeployException: Error registering portlets for ${appName}");
        }
      • 590
        task ("Add a widget page") {
        • 591
          JSONLayout.addPublicLayout( groupName = "Test Site Name", layoutName = "Test Page Name");
          • 42
            Variables.assertDefined(parameterList = "${groupName},${layoutName}");
            • 5
              if (contains("${parameterList}", "{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}'");
                }
              }
          • 44
            var friendlyURL = JSONLayoutSetter.setFriendlyURL(friendlyURL = "${friendlyURL}");
            • 12
              if (!(isSet(friendlyURL))) {
              • 13
                var friendlyURL = "";
              }
            • 16
              return "${friendlyURL}";
          • 46
            var groupId = JSONLayoutSetter.setGroupId( grandParentGroupName = "${grandParentGroupName}", groupName = "${groupName}", parentGroupName = "${parentGroupName}", site = "${site}");
            • 20
              if (!(isSet(site))) {
              • 21
                var site = "true";
              }
            • 24
              var groupId = JSONGroupAPI._getGroupIdByName( grandParentGroupName = "${grandParentGroupName}", groupName = "${groupName}", parentGroupName = "${parentGroupName}", portalURL = "${portalURL}", site = "${site}");
              • 207
                Variables.assertDefined(parameterList = "${groupName},${site}");
                • 5
                  if (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                    }
                  }
                • 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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                          }
                        }
                      • 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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                                }
                              }
                            • 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 [email protected]: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 [email protected]: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 [email protected]: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}";
            • 31
              return "${groupId}";
          • 52
            var parentLayoutId = JSONLayoutSetter.setParentLayoutId( groupId = "${groupId}", parentLayoutName = "${parentLayoutName}", privateLayout = "false");
            • 46
              var privateLayout = JSONLayoutSetter.setPrivateLayout(privateLayout = "${privateLayout}");
              • 64
                if (!(isSet(privateLayout))) {
                • 65
                  var privateLayout = "false";
                }
              • 68
                return "${privateLayout}";
            • 48
              if (isSet(parentLayoutName)) {
              • 49
                Variables.assertDefined(parameterList = "${groupId},${parentLayoutName}");
                • 5
                  if (contains("${parameterList}", "{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}'");
                    }
                  }
              • 51
                var parentLayoutId = JSONLayoutAPI._getLayoutIdByName( groupId = "${groupId}", layoutName = "${parentLayoutName}", privateLayout = "${privateLayout}");
                • 70
                  Variables.assertDefined(parameterList = "${groupId},${layoutName},${privateLayout}");
                  • 5
                    if (contains("${parameterList}", "{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 portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                • 74
                  var curl = ''' ${portalURL}/api/jsonws/layout/get-layouts \ -u [email protected]:test \ -d groupId=${groupId} \ -d privateLayout=${privateLayout} ''';
                • 80
                  var layoutId = JSONCurlUtil.post("${curl}", "$.[?(@['nameCurrentValue'] == '${layoutName}')]['layoutId']");
                • 82
                  if ("${layoutId}" == "") {
                  • 83
                    fail("FAIL. Cannot find layout.");
                  }
                • 86
                  return "${layoutId}";
              }
            • 56
              else {
              • 57
                var parentLayoutId = "0";
              }
            • 60
              return "${parentLayoutId}";
          • 57
            var serviceContext = JSONLayoutSetter.setServiceContext( assetCategoryIds = "${assetCategoryIds}", assetTagNames = "${assetTagNames}", serviceContext = "${serviceContext}", workflowAction = "${workflowAction}");
            • 72
              if (!(isSet(serviceContext))) {
              • 73
                var serviceContext = JSONServiceContextUtil.setServiceContext( 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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                            }
                          }
                        • 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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                                  }
                                }
                              • 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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                                        }
                                      }
                                    • 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 [email protected]: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 [email protected]: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 [email protected]: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 (contains("${parameterList}", "{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}";
              }
            • 80
              return "${serviceContext}";
          • 63
            var type = JSONLayoutSetter.setType(type = "${type}");
            • 93
              if (!(isSet(type))) {
              • 94
                var type = "portlet";
              }
            • 97
              return "${type}";
          • 65
            var plid = JSONLayoutAPI._addLayout( friendlyURL = "${friendlyURL}", groupId = "${groupId}", layoutName = "${layoutName}", parentLayoutId = "${parentLayoutId}", privateLayout = "false", serviceContext = "${serviceContext}", type = "${type}");
            • 5
              Variables.assertDefined(parameterList = "${friendlyURL},${groupId},${privateLayout},${parentLayoutId},${layoutName},${serviceContext}");
              • 5
                if (contains("${parameterList}", "{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
              var portalURL = JSONCompany.getPortalURL();
              • 66
                var portalURL = PropsUtil.get("portal.url");
              • 68
                return "${portalURL}";
            • 9
              var curl = ''' ${portalURL}/api/jsonws/layout/add-layout \ -u [email protected]:test \ -d groupId=${groupId} \ -d privateLayout=${privateLayout} \ -d parentLayoutId=${parentLayoutId} \ -d name=${layoutName} \ -d title= \ -d description= \ -d type=${type} \ -d hidden=false \ -d friendlyURL=${friendlyURL} \ -d serviceContext=${serviceContext} ''';
            • 23
              var plid = JSONCurlUtil.post("${curl}", "$['plid']");
            • 25
              return "${plid}";
          • 74
            return "${plid}";
        }
      • 596
        task ("Define the custom layout for widget page") {
        • 597
          SitePages.openPagesAdmin(siteURLKey = "test-site-name");
          • 503
            var siteURLKey = StringUtil.replace("${siteURLKey}", " ", "-");
          • 504
            var siteURLKey = StringUtil.lowerCase("${siteURLKey}");
          • 506
            Navigator.openWithAppendToBaseURL( baseURL = "${baseURL}", urlAppend = "group/${siteURLKey}/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet");
            • 358
              if (!(isSet(baseURL))) {
              • 359
                var baseURL = PropsUtil.get("portal.url");
              }
            • 362
              Open(locator1 = "${baseURL}/${urlAppend}");
        • 599
          SitePages.configurePage( columnName = "Custom Layout", pageName = "Test Page Name", privacy = "Public Pages", sitePageType = "Widget Page");
          • 371
            if (IsTextNotEqual(locator1 = "ControlMenu#HEADING", value1 = "Pages")) {
            • 372
              ProductMenu.gotoPortlet( category = "Site Builder", portlet = "Pages");
              • 57
                if (IsElementNotPresent(locator1 = "ProductMenu#TOGGLE")) {
                • 58
                  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");
                }
              • 61
                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");
              • 63
                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");
              • 65
                ProductMenuHelper.gotoPortlet(portlet = "${portlet}");
                • 39
                  AssertClick.assertPartialTextClickAt( key_portlet = "${portlet}", locator1 = "ProductMenu#PORTLET", value1 = "${portlet}");
            }
          • 377
            SitePages.togglePrivacy(privacy = "${privacy}");
            • 512
              WaitForPageLoad();
            • 514
              if (IsElementNotPresent(key_breadcrumbName = "${privacy}", locator1 = "Breadcrumb#BREADCRUMB_ENTRY_EXACT_MATCH")) {
              • 515
                Click( key_itemName = "${privacy}", locator1 = "SitePages#LIST_GROUP_ITEM");
              }
          • 379
            SitePages.gotoPageMenuItem( menuItem = "Configure", pageName = "${pageName}");
            • 475
              WaitForPageLoad();
            • 477
              if (isSet(parentPagesHierarchy)) {
              • 478
                for (var parentPage : list "${parentPagesHierarchy}") {
                • 479
                  Click( key_itemName = "${parentPage}", locator1 = "SitePages#LIST_GROUP_ITEM");
                }
              }
            • 485
              Click( key_pageName = "${pageName}", locator1 = "SitePages#LIST_GROUP_ITEM_ELLIPSIS_ICON");
            • 489
              MenuItem.click(menuItem = "${menuItem}");
              • 4
                Click( key_menuItem = "${menuItem}", locator1 = "MenuItem#ANY_MENU_ITEM");
          • 383
            SitePages._configurePage( columnName = "${columnName}", componentName = "${componentName}", layoutPageTemplateName = "${layoutPageTemplateName}", pageTypeURL = "${pageTypeURL}", portlet = "${portlet}", sitePageType = "${sitePageType}");
            • 130
              if ("${sitePageType}" == "Embedded") {
              • 131
                Page._addPageTypeEmbedded(pageTypeURL = "${pageTypeURL}");
                • 4
                  Type( locator1 = "TextInput#URL", value1 = "${pageTypeURL}");
                • 8
                  AssertTextEquals.assertPartialText( locator1 = "SitePagesEditPage#PAGE_TYPE_DESCRIPTION", value1 = "Show content from another website.");
              }
            • 133
              else if ("${sitePageType}" == "Panel") {
              • 134
                Page._addPageTypePanel(componentName = "${componentName}");
                • 20
                  var key_componentOrPortletName = "${componentName}";
                • 22
                  Click(locator1 = "SitePagesEditPage#PAGE_TYPE_PANEL_CHECKBOX");
                • 24
                  var key_componentOrPortletName = StringUtil.lowerCase("${componentName}");
                • 26
                  AssertElementPresent(locator1 = "SitePagesEditPage#PAGE_TYPE_PANEL_CHECKBOX_INPUT");
              }
            • 136
              else if ("${sitePageType}" == "Widget Page") {
              • 137
                var key_columnName = "${columnName}";
              • 139
                Click(locator1 = "SitePagesEditPage#LAYOUT_CARD");
              }
            • 141
              else if ("${sitePageType}" == "Content Page") {
              • 142
                Select( locator1 = "SitePagesEditPage#LAYOUT_PAGE_TEMPLATE_SELECT", value1 = "${layoutPageTemplateName}");
              }
            • 146
              else if ("${sitePageType}" == "Full Page Application") {
              • 147
                Page._addPageTypeFullPageApplication(portlet = "${portlet}");
                • 14
                  Select( locator1 = "SitePagesEditPage#PAGE_TYPE_FULL_PAGE_APPLICATION_SELECT", value1 = "${portlet}");
              }
          • 391
            PortletEntry.save();
            • 153
              Button.clickSave();
              • 98
                Button.click(button = "Save");
                • 4
                  Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
              • 100
                WaitForLiferayEvent.initializeLiferayEventLog();
            • 155
              Alert.viewSuccessMessage();
              • 117
                VerifyElementPresent(locator1 = "Message#SUCCESS_DISMISSIBLE");
            • 157
              WaitForLiferayEvent.initializeLiferayEventLog();
        }
      • 606
        task ("Add a Profile and Asset Publisher widget to page") {
        • 607
          for (var widgetName : list "Profile,Asset Publisher") {
          • 608
            JSONLayout.addWidgetToPublicLayout( column = "1", groupName = "Test Site Name", layoutName = "Test Page Name", widgetName = "${widgetName}");
            • 107
              Variables.assertDefined(parameterList = "${groupName},${layoutName},${widgetName}");
              • 5
                if (contains("${parameterList}", "{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}'");
                  }
                }
            • 109
              if (!(isSet(site))) {
              • 110
                var site = "true";
              }
            • 113
              var groupId = JSONLayoutSetter.setGroupId( grandParentGroupName = "${grandParentGroupName}", groupName = "${groupName}", parentGroupName = "${parentGroupName}", site = "${site}");
              • 20
                if (!(isSet(site))) {
                • 21
                  var site = "true";
                }
              • 24
                var groupId = JSONGroupAPI._getGroupIdByName( grandParentGroupName = "${grandParentGroupName}", groupName = "${groupName}", parentGroupName = "${parentGroupName}", portalURL = "${portalURL}", site = "${site}");
                • 207
                  Variables.assertDefined(parameterList = "${groupName},${site}");
                  • 5
                    if (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                      }
                    }
                  • 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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                            }
                          }
                        • 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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                                  }
                                }
                              • 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 [email protected]: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 [email protected]: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 [email protected]: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}";
              • 31
                return "${groupId}";
            • 119
              var layoutId = JSONLayoutSetter.setLayoutId( groupId = "${groupId}", layoutName = "${layoutName}", privateLayout = "false");
              • 35
                Variables.assertDefined(parameterList = "${groupId},${layoutName},${privateLayout}");
                • 5
                  if (contains("${parameterList}", "{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}'");
                    }
                  }
              • 37
                var layoutId = JSONLayoutAPI._getLayoutIdByName( groupId = "${groupId}", layoutName = "${layoutName}", privateLayout = "${privateLayout}");
                • 70
                  Variables.assertDefined(parameterList = "${groupId},${layoutName},${privateLayout}");
                  • 5
                    if (contains("${parameterList}", "{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 portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                • 74
                  var curl = ''' ${portalURL}/api/jsonws/layout/get-layouts \ -u [email protected]:test \ -d groupId=${groupId} \ -d privateLayout=${privateLayout} ''';
                • 80
                  var layoutId = JSONCurlUtil.post("${curl}", "$.[?(@['nameCurrentValue'] == '${layoutName}')]['layoutId']");
                • 82
                  if ("${layoutId}" == "") {
                  • 83
                    fail("FAIL. Cannot find layout.");
                  }
                • 86
                  return "${layoutId}";
              • 42
                return "${layoutId}";
            • 124
              var typeSettings = JSONLayoutSetter.setTypeSettings( column = "${column}", groupId = "${groupId}", layoutName = "${layoutName}", privateLayout = "false", widgetName = "${widgetName}");
              • 101
                Variables.assertDefined(parameterList = "${groupId},${layoutName},${privateLayout}");
                • 5
                  if (contains("${parameterList}", "{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}'");
                    }
                  }
              • 103
                var typeSettings = JSONLayoutAPI._getTypeSettingsByName( groupId = "${groupId}", layoutName = "${layoutName}", privateLayout = "${privateLayout}");
                • 114
                  Variables.assertDefined(parameterList = "${groupId},${layoutName},${privateLayout}");
                  • 5
                    if (contains("${parameterList}", "{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}'");
                      }
                    }
                • 116
                  var portalURL = JSONCompany.getPortalURL();
                  • 66
                    var portalURL = PropsUtil.get("portal.url");
                  • 68
                    return "${portalURL}";
                • 118
                  var curl = ''' ${portalURL}/api/jsonws/layout/get-layouts \ -u [email protected]:test \ -d groupId=${groupId} \ -d privateLayout=${privateLayout} ''';
                • 124
                  var typeSettings = JSONCurlUtil.post("${curl}", "$.[?(@['nameCurrentValue'] == '${layoutName}')]['typeSettings']");
                • 126
                  if ("${typeSettings}" == "") {
                  • 127
                    fail("FAIL. Cannot find layout.");
                  }
                • 130
                  return "${typeSettings}";
              • 108
                if (isSet(layoutTemplate)) {
                • 109
                  var typeSettings = JSONLayoutUtil._updateLayoutTemplateId( layoutTemplate = "${layoutTemplate}", typeSettings = "${typeSettings}");
                  • 265
                    if (!(isSet(layoutTemplate))) {
                    • 266
                      fail("layoutTemplate not set.");
                    }
                  • 269
                    if (!(isSet(typeSettings))) {
                    • 270
                      fail("layoutTemplateId not set.");
                    }
                  • 273
                    var layoutTemplateId = JSONLayoutUtil._getLayoutTemplateId(layoutTemplate = "${layoutTemplate}");
                    • 211
                      if (!(isSet(layoutTemplate))) {
                      • 212
                        fail("layoutTemplate not set.");
                      }
                    • 215
                      if ("${layoutTemplate}" == "1 Column") {
                      • 216
                        var layoutTemplateId = "1_column";
                      }
                    • 218
                      else if ("${layoutTemplate}" == "2 Columns (50/50)") {
                      • 219
                        var layoutTemplateId = "2_columns_i";
                      }
                    • 221
                      else if ("${layoutTemplate}" == "2 Columns (30/70)") {
                      • 222
                        var layoutTemplateId = "2_columns_ii";
                      }
                    • 224
                      else if ("${layoutTemplate}" == "2 Columns (70/30)") {
                      • 225
                        var layoutTemplateId = "2_columns_iii";
                      }
                    • 227
                      else if ("${layoutTemplate}" == "3 Columns") {
                      • 228
                        var layoutTemplateId = "3_columns";
                      }
                    • 230
                      else if ("${layoutTemplate}" == "1-2 Columns (30/70)") {
                      • 231
                        var layoutTemplateId = "1_2_columns_i";
                      }
                    • 233
                      else if ("${layoutTemplate}" == "1-2 Columns (70/30)") {
                      • 234
                        var layoutTemplateId = "1_2_columns_ii";
                      }
                    • 236
                      else if ("${layoutTemplate}" == "1-2-1 Columns (50/50)") {
                      • 237
                        var layoutTemplateId = "1_2_1_columns_i";
                      }
                    • 239
                      else if ("${layoutTemplate}" == "1-2-1 Columns (70/30)") {
                      • 240
                        var layoutTemplateId = "1_2_1_columns_ii";
                      }
                    • 242
                      else if ("${layoutTemplate}" == "1-3-1 Columns") {
                      • 243
                        var layoutTemplateId = "1_3_1_columns";
                      }
                    • 245
                      else if ("${layoutTemplate}" == "1-3-2 Columns") {
                      • 246
                        var layoutTemplateId = "1_3_2_columns";
                      }
                    • 248
                      else if ("${layoutTemplate}" == "2-1-2 Columns") {
                      • 249
                        var layoutTemplateId = "2_1_2_columns";
                      }
                    • 251
                      else if ("${layoutTemplate}" == "2-2 Columns") {
                      • 252
                        var layoutTemplateId = "2_2_columns";
                      }
                    • 254
                      else if ("${layoutTemplate}" == "3-2-3 Columns") {
                      • 255
                        var layoutTemplateId = "3_2_3_columns";
                      }
                    • 257
                      else {
                      • 258
                        fail("'layoutTemplate' could not find a valid layoutTemplateId");
                      }
                    • 261
                      return "${layoutTemplateId}";
                  • 275
                    var typeSettings = StringUtil.regexReplaceFirst("${typeSettings}", "(layout-template-id=).*", "$1${layoutTemplateId}");
                  • 277
                    return "${typeSettings}";
                }
              • 114
                if (isSet(widgetName)) {
                • 115
                  var typeSettings = JSONLayoutUtil._addWidgetToTypeSettings( column = "${column}", typeSettings = "${typeSettings}", widgetName = "${widgetName}");
                  • 7
                    if (!(isSet(column))) {
                    • 8
                      var column = "1";
                    }
                  • 11
                    Variables.assertDefined(parameterList = "${typeSettings}");
                    • 5
                      if (contains("${parameterList}", "{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}'");
                        }
                      }
                  • 13
                    var widget = JSONLayoutUtil._generateWidget(widgetName = "${widgetName}");
                    • 29
                      Variables.assertDefined(parameterList = "${widgetName}");
                      • 5
                        if (contains("${parameterList}", "{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
                      if ("${widgetName}" == "Alerts") {
                      • 32
                        var portletId = "com_liferay_announcements_web_portlet_AlertsPortlet";
                      }
                    • 34
                      else if ("${widgetName}" == "Account Management") {
                      • 35
                        var portletId = "com_liferay_account_admin_web_internal_portlet_AccountEntriesManagementPortlet";
                      }
                    • 37
                      else if ("${widgetName}" == "Announcements") {
                      • 38
                        var portletId = "com_liferay_announcements_web_portlet_AnnouncementsPortlet";
                      }
                    • 40
                      else if ("${widgetName}" == "Asset Publisher") {
                      • 41
                        var portletId = "com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet";
                      }
                    • 43
                      else if ("${widgetName}" == "Blogs") {
                      • 44
                        var portletId = "com_liferay_blogs_web_portlet_BlogsPortlet";
                      }
                    • 46
                      else if ("${widgetName}" == "Blogs Aggregator") {
                      • 47
                        var portletId = "com_liferay_blogs_web_portlet_BlogsAgreggatorPortlet";
                      }
                    • 49
                      else if ("${widgetName}" == "Bookmarks") {
                      • 50
                        var portletId = "com_liferay_bookmarks_web_portlet_BookmarksPortlet";
                      }
                    • 52
                      else if ("${widgetName}" == "Breadcrumb") {
                      • 53
                        var portletId = "com_liferay_site_navigation_breadcrumb_web_portlet_SiteNavigationBreadcrumbPortlet";
                      }
                    • 55
                      else if ("${widgetName}" == "Categories Navigation") {
                      • 56
                        var portletId = "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet";
                      }
                    • 58
                      else if ("${widgetName}" == "Clay Sample") {
                      • 59
                        var portletId = "com_liferay_clay_sample_web_portlet_ClaySamplePortlet";
                      }
                    • 61
                      else if ("${widgetName}" == "Contacts Center") {
                      • 62
                        var portletId = "com_liferay_contacts_web_portlet_ContactsCenterPortlet";
                      }
                    • 64
                      else if ("${widgetName}" == "Custom Filter") {
                      • 65
                        var portletId = "com_liferay_portal_search_web_internal_custom_filter_portlet_CustomFilterPortlet";
                      }
                    • 67
                      else if ("${widgetName}" == "Documents and Media") {
                      • 68
                        var portletId = "com_liferay_document_library_web_portlet_DLPortlet";
                      }
                    • 70
                      else if ("${widgetName}" == "Dynamic Data Lists Display") {
                      • 71
                        var portletId = "com_liferay_dynamic_data_lists_web_portlet_DDLDisplayPortlet";
                      }
                    • 73
                      else if ("${widgetName}" == "Form") {
                      • 74
                        var portletId = "com_liferay_dynamic_data_mapping_form_web_portlet_DDMFormPortlet";
                      }
                    • 76
                      else if ("${widgetName}" == "Highest Rated Assets") {
                      • 77
                        var portletId = "com_liferay_asset_publisher_web_portlet_HighestRatedAssetsPortlet";
                      }
                    • 79
                      else if ("${widgetName}" == "IFrame") {
                      • 80
                        var portletId = "com_liferay_iframe_web_portlet_IFramePortlet";
                      }
                    • 82
                      else if ("${widgetName}" == "Invite Members") {
                      • 83
                        var portletId = "com_liferay_invitation_invite_members_web_portlet_InviteMembersPortlet";
                      }
                    • 85
                      else if ("${widgetName}" == "JS A11y Sample Web") {
                      • 86
                        var portletId = "com_liferay_frontend_js_a11y_sample_web_internal_portlet_FrontendJSA11ySampleWebPortlet";
                      }
                    • 88
                      else if ("${widgetName}" == "JS Clay Sample Web") {
                      • 89
                        var portletId = "com_liferay_frontend_js_clay_sample_web_internal_portlet_FrontendJSClaySampleWebPortlet";
                      }
                    • 91
                      else if ("${widgetName}" == "Knowledge Base Article") {
                      • 92
                        var portletId = "com_liferay_knowledge_base_web_portlet_ArticlePortlet";
                      }
                    • 94
                      else if ("${widgetName}" == "Knowledge Base Display") {
                      • 95
                        var portletId = "com_liferay_knowledge_base_web_portlet_DisplayPortlet";
                      }
                    • 97
                      else if ("${widgetName}" == "Knowledge Base Search") {
                      • 98
                        var portletId = "com_liferay_knowledge_base_web_portlet_SearchPortlet";
                      }
                    • 100
                      else if ("${widgetName}" == "Knowledge Base Section") {
                      • 101
                        var portletId = "com_liferay_knowledge_base_web_portlet_SectionPortlet";
                      }
                    • 103
                      else if ("${widgetName}" == "Language Selector") {
                      • 104
                        var portletId = "com_liferay_site_navigation_language_web_portlet_SiteNavigationLanguagePortlet";
                      }
                    • 106
                      else if ("${widgetName}" == "Low Level Search Options") {
                      • 107
                        var portletId = "com_liferay_portal_search_web_low_level_search_options_portlet_LowLevelSearchOptionsPortlet";
                      }
                    • 109
                      else if ("${widgetName}" == "Media Gallery") {
                      • 110
                        var portletId = "com_liferay_document_library_web_portlet_IGDisplayPortlet";
                      }
                    • 112
                      else if ("${widgetName}" == "Message Boards") {
                      • 113
                        var portletId = "com_liferay_message_boards_web_portlet_MBPortlet";
                      }
                    • 115
                      else if ("${widgetName}" == "Microblogs") {
                      • 116
                        var portletId = "com_liferay_microblogs_web_portlet_MicroblogsPortlet";
                      }
                    • 118
                      else if ("${widgetName}" == "Microblogs Status Update") {
                      • 119
                        var portletId = "com_liferay_microblogs_web_portlet_MicroblogsStatusUpdatePortlet";
                      }
                    • 121
                      else if ("${widgetName}" == "Most Viewed Assets") {
                      • 122
                        var portletId = "com_liferay_asset_publisher_web_portlet_MostViewedAssetsPortlet";
                      }
                    • 124
                      else if ("${widgetName}" == "My Sites") {
                      • 125
                        var portletId = "com_liferay_site_my_sites_web_portlet_MySitesPortlet";
                      }
                    • 127
                      else if ("${widgetName}" == "Navigation Menu") {
                      • 128
                        var portletId = "com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet";
                      }
                    • 130
                      else if ("${widgetName}" == "Nested Applications") {
                      • 131
                        var portletId = "com_liferay_nested_portlets_web_portlet_NestedPortletsPortlet";
                      }
                    • 133
                      else if ("${widgetName}" == "Profile") {
                      • 134
                        var portletId = "com_liferay_contacts_web_portlet_ProfilePortlet";
                      }
                    • 136
                      else if ("${widgetName}" == "Questions") {
                      • 137
                        var portletId = "com_liferay_questions_web_internal_portlet_QuestionsPortlet";
                      }
                    • 139
                      else if ("${widgetName}" == "Recent Bloggers") {
                      • 140
                        var portletId = "com_liferay_blogs_recent_bloggers_web_portlet_RecentBloggersPortlet";
                      }
                    • 142
                      else if ("${widgetName}" == "Related Assets") {
                      • 143
                        var portletId = "com_liferay_asset_publisher_web_portlet_RelatedAssetsPortlet";
                      }
                    • 145
                      else if ("${widgetName}" == "RSS Publisher") {
                      • 146
                        var portletId = "com_liferay_rss_web_portlet_RSSPortlet";
                      }
                    • 148
                      else if ("${widgetName}" == "Search Bar") {
                      • 149
                        var portletId = "com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet";
                      }
                    • 151
                      else if ("${widgetName}" == "Search Options") {
                      • 152
                        var portletId = "com_liferay_portal_search_web_search_options_portlet_SearchOptionsPortlet";
                      }
                    • 154
                      else if ("${widgetName}" == "Search Results") {
                      • 155
                        var portletId = "com_liferay_portal_search_web_search_results_portlet_SearchResultsPortlet";
                      }
                    • 157
                      else if ("${widgetName}" == "Sign In") {
                      • 158
                        var portletId = "com_liferay_login_web_portlet_LoginPortlet";
                      }
                    • 160
                      else if ("${widgetName}" == "Similar Results") {
                      • 161
                        var portletId = "com_liferay_portal_search_similar_results_web_portlet_SimilarResultsPortlet";
                      }
                    • 163
                      else if ("${widgetName}" == "Site Map") {
                      • 164
                        var portletId = "com_liferay_site_navigation_site_map_web_portlet_SiteNavigationSiteMapPortlet";
                      }
                    • 166
                      else if ("${widgetName}" == "Sites Directory") {
                      • 167
                        var portletId = "com_liferay_site_navigation_directory_web_portlet_SitesDirectoryPortlet";
                      }
                    • 169
                      else if ("${widgetName}" == "Tags Navigation") {
                      • 170
                        var portletId = "com_liferay_asset_tags_navigation_web_portlet_AssetTagsNavigationPortlet";
                      }
                    • 172
                      else if ("${widgetName}" == "Type Facet") {
                      • 173
                        var portletId = "com_liferay_portal_search_web_type_facet_portlet_TypeFacetPortlet";
                      }
                    • 175
                      else if ("${widgetName}" == "User Statistics") {
                      • 176
                        var portletId = "com_liferay_social_user_statistics_web_portlet_SocialUserStatisticsPortlet";
                      }
                    • 178
                      else if ("${widgetName}" == "Web Content Display") {
                      • 179
                        var portletId = "com_liferay_journal_content_web_portlet_JournalContentPortlet";
                      }
                    • 181
                      else if ("${widgetName}" == "Web Content Search") {
                      • 182
                        var portletId = "com_liferay_journal_content_search_web_portlet_JournalContentSearchPortlet";
                      }
                    • 184
                      else if ("${widgetName}" == "Wiki") {
                      • 185
                        var portletId = "com_liferay_wiki_web_portlet_WikiPortlet";
                      }
                    • 187
                      else if ("${widgetName}" == "Wiki Display") {
                      • 188
                        var portletId = "com_liferay_wiki_web_portlet_WikiDisplayPortlet";
                      }
                    • 190
                      else if ("${widgetName}" == "CKEditor Sample") {
                      • 191
                        var portletId = "com_liferay_editor_ckeditor_sample_web_internal_portlet_CKEditorSamplePortlet";
                      }
                    • 193
                      else {
                      • 194
                        fail("'widgetName' is either invalid or its 'portletId' is not yet set.");
                      }
                    • 197
                      var instanceId = StringUtil.randomString("12");
                    • 198
                      var nonRepeatableWidgets = "Blogs,Bookmarks,Knowledge Base Display,Language Selector,Message Boards,My Sites,Sign In,Web Content Search,Wiki";
                    • 200
                      if (contains("${nonRepeatableWidgets}", "${widgetName}")) {
                      • 201
                        var widget = "${portletId}";
                      }
                    • 203
                      else {
                      • 204
                        var widget = "${portletId}_INSTANCE_${instanceId}";
                      }
                    • 207
                      return "${widget}";
                  • 15
                    if (contains("${typeSettings}", "column-${column}=")) {
                    • 16
                      var typeSettings = StringUtil.regexReplaceFirst("${typeSettings}", "(column-${column}=[^%]*)", "$1,${widget}");
                    }
                  • 18
                    else {
                    • 19
                      var typeSettings = '''${typeSettings}column-${column}''';
                    • 21
                      var typeSettings = '''${typeSettings}=${widget}''';
                    }
                  • 24
                    return "${typeSettings}";
                }
              • 121
                if (!(isSet(layoutTemplate)) && !(isSet(widgetName))) {
                • 122
                  fail("typeSettings will not be updated.");
                }
              • 125
                return "${typeSettings}";
            • 131
              JSONLayoutAPI._updateTypeSettings( groupId = "${groupId}", layoutId = "${layoutId}", privateLayout = "false", typeSettings = "${typeSettings}");
              • 171
                Variables.assertDefined(parameterList = "${groupId},${privateLayout},${layoutId},${typeSettings}");
                • 5
                  if (contains("${parameterList}", "{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}'");
                    }
                  }
              • 173
                var portalURL = JSONCompany.getPortalURL();
                • 66
                  var portalURL = PropsUtil.get("portal.url");
                • 68
                  return "${portalURL}";
              • 175
                var curl = ''' ${portalURL}/api/jsonws/layout/update-layout \ -u [email protected]:test \ -d groupId=${groupId} \ -d privateLayout=${privateLayout} \ -d layoutId=${layoutId} \ -d typeSettings=${typeSettings} ''';
              • 184
                com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
          }
        }
      • 616
        task ("Drop the Profile widget to second page column") {
        • 617
          Navigator.gotoSitePage( pageName = "Test Page Name", siteName = "Test Site Name");
          • 172
            Navigator.openSiteURL( baseURL = "${baseURL}", siteName = "${siteName}");
            • 283
              var siteNameURL = StringUtil.replace("${siteName}", " ", "-");
            • 284
              var siteNameURL = StringUtil.lowerCase("${siteNameURL}");
            • 285
              var baseURL = "${baseURL}";
            • 287
              if (contains("${baseURL}", "{baseURL}")) {
              • 288
                var baseURL = PropsUtil.get("portal.url");
              }
            • 291
              Open(locator1 = "${baseURL}/web/${siteNameURL}");
          • 176
            Navigator._gotoPage(pageName = "${pageName}");
            • 4
              var key_pageName = "${pageName}";
            • 5
              var count = "0";
            • 7
              while (("${count}" != "3") && (IsElementNotPresent(locator1 = "Home#PAGE_ACTIVE"))) {
              • 8
                AssertClick.assertPartialTextClickAt( locator1 = "Home#PAGE", value1 = "${pageName}");
              • 12
                var count = ${count} + 1;
              }
            • 15
              AssertVisible(locator1 = "Home#PAGE_ACTIVE");
        • 621
          Portlet.dragAndDropPortletToColumnPG( columnNumberFrom = "1", columnNumberTo = "2", portletName = "Profile");
          • 337
            var key_portletName = "${portletName}";
          • 339
            AssertTextEquals( key_pageColumnNumber = "${columnNumberFrom}", locator1 = "Portlet#PORTLET_TITLE_INSIDE_PAGE_COLUMN", value1 = "${portletName}");
          • 344
            DragAndDrop.dragAndDropPortletToObject( key_pageColumnId = "${columnNumberTo}", key_pageColumnNumber = "${columnNumberFrom}", locator1 = "Portlet#HEADER_INSIDE_PAGE_COLUMN", locator2 = "Home#PAGE_COLUMN", value1 = "${portletName}");
          • 351
            AssertTextEquals( key_pageColumnNumber = "${columnNumberTo}", locator1 = "Portlet#PORTLET_TITLE_INSIDE_PAGE_COLUMN", value1 = "${portletName}");
        }
      • 627
        task ("View both widgets are in the respective page column") {
        • 628
          var i = "1";
        • 630
          for (var portletName : list "Asset Publisher,Profile") {
          • 631
            Portlet.viewSpecificPG( pageColumnNumber = "${i}", portletName = "${portletName}");
            • 713
              if (isSet(pageColumnNumber)) {
              • 714
                AssertTextEquals( key_pageColumnNumber = "${pageColumnNumber}", key_portletName = "${portletName}", locator1 = "Portlet#PORTLET_TITLE_INSIDE_PAGE_COLUMN", value1 = "${portletName}");
              }
            • 720
              else {
              • 721
                AssertTextEquals( key_portletTitleName = "${portletName}", locator1 = "Portlet#SPECIFIC_TITLE", value1 = "${portletName}");
              }
          • 635
            var i = ${i} + 1;
          }
        }
      • 639
        task ("Convert widget page to content page") {
        • 640
          SitePages.openPagesAdmin(siteURLKey = "Test Site Name");
          • 503
            var siteURLKey = StringUtil.replace("${siteURLKey}", " ", "-");
          • 504
            var siteURLKey = StringUtil.lowerCase("${siteURLKey}");
          • 506
            Navigator.openWithAppendToBaseURL( baseURL = "${baseURL}", urlAppend = "group/${siteURLKey}/~/control_panel/manage?p_p_id=com_liferay_layout_admin_web_portlet_GroupPagesPortlet");
            • 358
              if (!(isSet(baseURL))) {
              • 359
                var baseURL = PropsUtil.get("portal.url");
              }
            • 362
              Open(locator1 = "${baseURL}/${urlAppend}");
        • 642
          SitePages.gotoPageMenuItem( menuItem = "Convert to content page...", pageName = "Test Page Name");
          • 475
            WaitForPageLoad();
          • 477
            if (isSet(parentPagesHierarchy)) {
            • 478
              for (var parentPage : list "${parentPagesHierarchy}") {
              • 479
                Click( key_itemName = "${parentPage}", locator1 = "SitePages#LIST_GROUP_ITEM");
              }
            }
          • 485
            Click( key_pageName = "${pageName}", locator1 = "SitePages#LIST_GROUP_ITEM_ELLIPSIS_ICON");
          • 489
            MenuItem.click(menuItem = "${menuItem}");
            • 4
              Click( key_menuItem = "${menuItem}", locator1 = "MenuItem#ANY_MENU_ITEM");
        • 646
          PageEditor.assertFragmentSidebarLoaded();
          • 888
            WaitForPageLoad();
          • 890
            AssertVisible(locator1 = "PageEditor#FRAGMENT_SIDEBAR_LOADED");
        }
      • 649
        task ("View conversion alert message is shown") {
        • 650
          Alert.viewConversionMessage( alertMessage = "This page uses a custom page layout. A best-effort conversion has been performed. Verify the conversion draft before publishing it.", alertType = "warning");
          • 30
            AssertVisible( key_alertMessage = "${alertMessage}", key_type = "${alertType}", locator1 = "Message#CONVERSION_ALERT_MESSAGE");
        }
      • 655
        task ("View widgets are shown in conversion then publish") {
        • 656
          var i = "1";
        • 658
          for (var widgetName : list "Asset Publisher,Profile") {
          • 659
            PageEditor.viewElementInsideModule( elementName = "${widgetName}", moduleNumber = "${i}");
            • 3547
              if (!(isSet(position))) {
              • 3548
                var position = "1";
              }
            • 3551
              AssertElementPresent( key_columnNumber = "${moduleNumber}", key_elementHeader = "//div[contains(@class,'page-editor')]//li[contains(.,'${elementName}')]", key_position = "${position}", locator1 = "PageEditor#GRID_COLUMN_NESTED_ELEMENT");
          • 663
            var i = ${i} + 1;
          }
        • 666
          PageEditor.clickPublish();
          • 1039
            Button.click(button = "Publish");
            • 4
              Click.mouseDownMouseUp( key_text = "${button}", locator1 = "Button#ANY");
          • 1041
            Alert.viewSuccessMessage();
            • 117
              VerifyElementPresent(locator1 = "Message#SUCCESS_DISMISSIBLE");
        }
      • 669
        task ("View widgets are shown at edit mode") {
        • 670
          ContentPagesNavigator.openEditContentPage( pageName = "Test Page Name", siteName = "Test Site Name");
          • 19
            if (!(isSet(siteURLKey))) {
            • 20
              var siteURLKey = ContentPagesNavigator._convertNameToKey(name = "${siteName}");
              • 4
                Variables.assertDefined(parameterList = "${name}");
                • 5
                  if (contains("${parameterList}", "{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 key = StringUtil.replace("${name}", " ", "-");
              • 7
                var key = StringUtil.lowerCase("${key}");
              • 9
                return "${key}";
            }
          • 23
            if (!(isSet(pageFriendlyUrl))) {
            • 24
              var pageFriendlyUrl = ContentPagesNavigator._convertNameToKey(name = "${pageName}");
              • 4
                Variables.assertDefined(parameterList = "${name}");
                • 5
                  if (contains("${parameterList}", "{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 key = StringUtil.replace("${name}", " ", "-");
              • 7
                var key = StringUtil.lowerCase("${key}");
              • 9
                return "${key}";
            }
          • 27
            if ("${privateLayout}" == "true") {
            • 28
              var type = "group";
            }
          • 30
            else {
            • 31
              var type = "web";
            }
          • 34
            Navigator.openWithAppendToBaseURL(urlAppend = "${type}/${siteURLKey}/${pageFriendlyUrl}?p_l_mode=edit");
            • 358
              if (!(isSet(baseURL))) {
              • 359
                var baseURL = PropsUtil.get("portal.url");
              }
            • 362
              Open(locator1 = "${baseURL}/${urlAppend}");
          • 36
            PageEditor.assertFragmentSidebarLoaded();
            • 888
              WaitForPageLoad();
            • 890
              AssertVisible(locator1 = "PageEditor#FRAGMENT_SIDEBAR_LOADED");
        • 674
          var i = "1";
        • 676
          for (var widgetName : list "Asset Publisher,Profile") {
          • 677
            PageEditor.viewElementInsideModule( elementName = "${widgetName}", moduleNumber = "${i}");
            • 3547
              if (!(isSet(position))) {
              • 3548
                var position = "1";
              }
            • 3551
              AssertElementPresent( key_columnNumber = "${moduleNumber}", key_elementHeader = "//div[contains(@class,'page-editor')]//li[contains(.,'${elementName}')]", key_position = "${position}", locator1 = "PageEditor#GRID_COLUMN_NESTED_ELEMENT");
          • 681
            var i = ${i} + 1;
          }
        }
      }
    • 20
      tearDown {
      • 21
        var testPortalInstance = PropsUtil.get("test.portal.instance");
      • 23
        if ("${testPortalInstance}" == "true") {
        • 24
          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 (contains("${parameterList}", "{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 = "[email protected]";
                    }
                  }
                • 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 = "[email protected]";
                }
              • 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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                        }
                      }
                    • 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 = "[email protected]";
                    }
                  • 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}" != "[email protected]") {
                • 273
                  JSONUser.deleteUserByUserId( authenticationMethod = "${authenticationMethod}", userId = "${userId}");
                  • 205
                    Variables.assertDefined(parameterList = "${userId}");
                    • 5
                      if (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                      }
                    • 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 = "[email protected]";
                }
              • 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 (contains("${parameterList}", "{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 = "[email protected]";
                    }
                  • 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}");
                }
              }
        }
      • 26
        else {
        • 27
          JSONUser.tearDownNonAdminUsers();
          • 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 (contains("${parameterList}", "{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 = "[email protected]";
                  }
                }
              • 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 = "[email protected]";
              }
            • 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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                      }
                    }
                  • 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 = "[email protected]";
                  }
                • 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}" != "[email protected]") {
              • 273
                JSONUser.deleteUserByUserId( authenticationMethod = "${authenticationMethod}", userId = "${userId}");
                • 205
                  Variables.assertDefined(parameterList = "${userId}");
                  • 5
                    if (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                    }
                  • 155
                    var curl = ''' ${portalURL}/api/jsonws/user/delete-user \ -u ${userName}:test \ -d userId=${userId} ''';
                  • 161
                    com.liferay.poshi.runner.util.JSONCurlUtil.post("${curl}");
              }
            }
        • 29
          JSONGroup.deleteGroupByName(groupName = "Test Site Name");
          • 95
            Variables.assertDefined(parameterList = "${groupName}");
            • 5
              if (contains("${parameterList}", "{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
            var groupId = JSONGroupSetter.setGroupId( groupName = "${groupName}", portalURL = "${portalURL}");
            • 45
              Variables.assertDefined(parameterList = "${groupName}");
              • 5
                if (contains("${parameterList}", "{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}", parentGroupName = "${parentGroupName}", portalURL = "${portalURL}", site = "${site}");
              • 207
                Variables.assertDefined(parameterList = "${groupName},${site}");
                • 5
                  if (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                    }
                  }
                • 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 (contains("${parameterList}", "{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 (contains("${parameterList}", "{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 = "[email protected]";
                          }
                        }
                      • 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 (contains("${parameterList}", "{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}";