From 5d8b1862b63d32070b4084d7e49cae1f4bc66953 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 18 Mar 2013 13:56:56 +0200 Subject: [PATCH] Unified all portal integration tests to be based on JSR286Portlet (#8013, #9566, #11314) All portal tests are now based on the same test script. Portal tests avoid Vaadin locators to avoid random problems with the portlet id changing between test runs. * eXo 3 test must be run on Firefox, does not work in Chrome * Liferay theme test is now a separate test which does not depend on the Liferay integration test * Changing to maximized state using an action URL does not work with GateIn or eXo * The edit mode link does not work in WebLogic Portal as WebLogic feels it is not an allowed mode for the portlet Change-Id: I7a683688d8ffc611e211f8a60889a34b233b81c9 --- WebContent/WEB-INF/portlet.xml | 6 +- ...ntegration-test-GateIn-3.1.0-portlet2.html | 131 ++++++++- ...tegration-test-liferay-5.2.3-portlet2.html | 118 +++++--- .../Liferay6-and-6EE-theme-deploy.html | 146 ++++++++++ .../Liferay-6/Liferay6-theme.html | 18 +- .../integration-test-liferay-6.0.5.html | 133 ++++++++- .../Liferay-6EE/Liferay6EE-theme.html | 19 +- .../common/portlet_test.tpl | 134 +++++++++ .../integration-test-eXo-3.0.3-portlet2.html | 254 +++++++++++++----- ...-test-WebLogic-Portal-10.3.2-portlet2.html | 139 ++++++++-- uitest/integration_tests.xml | 29 +- .../tests/integration/JSR286Portlet.java | 214 +++++++++++++++ .../integration/JSR286PortletApplication.java | 195 -------------- 13 files changed, 1168 insertions(+), 368 deletions(-) create mode 100644 uitest/integration-testscripts/Liferay-6/Liferay6-and-6EE-theme-deploy.html create mode 100644 uitest/integration-testscripts/common/portlet_test.tpl create mode 100644 uitest/src/com/vaadin/tests/integration/JSR286Portlet.java delete mode 100644 uitest/src/com/vaadin/tests/integration/JSR286PortletApplication.java diff --git a/WebContent/WEB-INF/portlet.xml b/WebContent/WEB-INF/portlet.xml index 195269eb61..45ce1eee83 100644 --- a/WebContent/WEB-INF/portlet.xml +++ b/WebContent/WEB-INF/portlet.xml @@ -6,10 +6,10 @@ JSR286TestPortlet Vaadin Portlet 2.0 Test - com.vaadin.server.LegacyVaadinPortlet + com.vaadin.server.VaadinPortlet - application - com.vaadin.tests.integration.JSR286PortletApplication + ui + com.vaadin.tests.integration.JSR286Portlet widgetset diff --git a/uitest/integration-testscripts/GateIn-3/integration-test-GateIn-3.1.0-portlet2.html b/uitest/integration-testscripts/GateIn-3/integration-test-GateIn-3.1.0-portlet2.html index 5d2d4c3445..7df5894f15 100644 --- a/uitest/integration-testscripts/GateIn-3/integration-test-GateIn-3.1.0-portlet2.html +++ b/uitest/integration-testscripts/GateIn-3/integration-test-GateIn-3.1.0-portlet2.html @@ -172,21 +172,146 @@ Vaadin Portlet 2.0 Test - + mouseClickAndWait //a[@onclick='eXo.core.DOMUtil.disableOnClick(this);'] 13,5 + waitForElementPresent - //div[2]/div/div[2]/img + //div[2]/div/div/div/span + + assertText + //div[2]/div/div/div/span + Test of ApplicationResources with full path + + + assertText + //body/div[2]/div//p + exact:Mode: view State: normal + + + screenCapture + + initial + + + closeNotification + //body/div[2]/div + 0,0 + + + assertTextNotPresent + Action * received + + + + assertText + //div[@class="v-link v-widget"]/a/span + Edit + + + + mouseClickAndWait + //div[8]/div/a/span + 32,9 + + + assertTextPresent + Action 'someAction' received + + + + assertText + //body/div[2]/div//p + exact:Mode: view State: normal + + + assertText + //div[@class="v-link v-widget"]/a/span + Edit + + + closeNotification + //body/div[2]/div + 0,0 + + + + mouseClickAndWait + //div[5]/div/a/span + 12,3 + + + assertText + //body/div[2]/div//p + exact:Mode: edit State: normal + + + closeNotification + //body/div[2]/div + 0,0 + + + assertText + //div[@class="v-link v-widget"]/a/span + Done + + + + mouseClickAndWait + //div[6]/div/a/span + 16,7 + + + assertText + //body/div[2]/div//p + exact:Mode: edit State: normal + + + closeNotification + //body/div[2]/div + 0,0 + + + assertText + //div[6]/div/a/span + Maximize + + + + mouseClickAndWait + //div[6]/div/a/span + 71,8 + + + assertText + //body/div[2]/div//p + exact:Mode: edit State: normal + + + closeNotification + //body/div[2]/div + 0,0 + + + assertText + //div[@class="v-link v-widget"]/a/span + Done + + + assertText + //div[6]/div/a/span + Maximize + screenCapture - view + final diff --git a/uitest/integration-testscripts/Liferay-5/integration-test-liferay-5.2.3-portlet2.html b/uitest/integration-testscripts/Liferay-5/integration-test-liferay-5.2.3-portlet2.html index 55c9d18eb8..e1ceca0f1b 100644 --- a/uitest/integration-testscripts/Liferay-5/integration-test-liferay-5.2.3-portlet2.html +++ b/uitest/integration-testscripts/Liferay-5/integration-test-liferay-5.2.3-portlet2.html @@ -81,90 +81,140 @@ //div[@id='Vaadin-VaadinPortlet20Test']/p/a 16,11 + - pause - 1000 + waitForElementPresent + //div[2]/div/div/div/span - waitForVaadin - + assertText + //div[2]/div/div/div/span + Test of ApplicationResources with full path + + + assertText + //body/div[2]/div//p + exact:Mode: view State: normal + + + screenCapture + initial closeNotification - //body/div[2] - + //body/div[2]/div + 0,0 - verifyTextNotPresent - Action received + assertTextNotPresent + Action * received - mouseClickAndWait - vaadin=v-JSR286TestPortlet_WAR_demo_LAYOUT_10706::/VVerticalLayout[0]/ChildComponentContainer[4]/VLink[0]/domChild[0]/domChild[0] - 8,7 + assertText + //div[@class="v-link v-widget"]/a/span + Edit + - closeNotification - //body/div[2] - 0,0 + mouseClickAndWait + //div[8]/div/a/span + 32,9 - verifyTextPresent - Done + assertTextPresent + Action 'someAction' received - verifyTextPresent - Action received - + assertText + //body/div[2]/div//p + exact:Mode: view State: normal + + assertText + //div[@class="v-link v-widget"]/a/span + Edit + + + closeNotification + //body/div[2]/div + 0,0 + + mouseClickAndWait - vaadin=v-JSR286TestPortlet_WAR_demo_LAYOUT_10706::/VVerticalLayout[0]/ChildComponentContainer[7]/VLink[0]/domChild[0]/domChild[0] - 28,7 + //div[5]/div/a/span + 12,3 + + + assertText + //body/div[2]/div//p + exact:Mode: edit State: normal closeNotification - //body/div[2] + //body/div[2]/div 0,0 + + assertText + //div[@class="v-link v-widget"]/a/span + Done + + mouseClickAndWait - vaadin=v-JSR286TestPortlet_WAR_demo_LAYOUT_10706::/VVerticalLayout[0]/ChildComponentContainer[5]/VLink[0]/domChild[0]/domChild[0] - 37,-41 + //div[6]/div/a/span + 16,7 + + + assertText + //body/div[2]/div//p + exact:Mode: edit State: maximized closeNotification - //body/div[2] + //body/div[2]/div 0,0 - verifyTextPresent + assertText + //div[6]/div/a/span Back to normal - + mouseClickAndWait - vaadin=v-JSR286TestPortlet_WAR_demo_LAYOUT_10706::/VVerticalLayout[0]/ChildComponentContainer[5]/VLink[0]/domChild[0]/domChild[0] - 46,-57 + //div[6]/div/a/span + 71,8 + + + assertText + //body/div[2]/div//p + exact:Mode: edit State: normal closeNotification - //body/div[2] + //body/div[2]/div 0,0 - verifyTextPresent - Edit - + assertText + //div[@class="v-link v-widget"]/a/span + Done - verifyTextPresent + assertText + //div[6]/div/a/span Maximize + + + screenCapture + final diff --git a/uitest/integration-testscripts/Liferay-6/Liferay6-and-6EE-theme-deploy.html b/uitest/integration-testscripts/Liferay-6/Liferay6-and-6EE-theme-deploy.html new file mode 100644 index 0000000000..50f71d992c --- /dev/null +++ b/uitest/integration-testscripts/Liferay-6/Liferay6-and-6EE-theme-deploy.html @@ -0,0 +1,146 @@ + + + + + + +integration-test-liferay-6.0.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
integration-test-liferay-6.0.5
open/web/guest/
mouseClickAndWaitsign-in49,17
enterCharacter_58_logintest@liferay.com
enterCharacter_58_passwordtest
mouseClickAndWait//input[@value='Sign In']43,18
mouseClickAndWait//input[@type='submit']16,-1321
typereminderQueryAnswer-
mouseClickAndWait//input[@value='Save']86,13
draglink=Add
mouseOverlink=Add60,15
mouseClickaddPage45,11
enterCharacter//div/span[1]/span/inputVaadin Liferay Theme
mouseClicksave10,12
waitForElementPresent//nav/ul/li[2]/a/span
mouseClickAndWait//nav/ul/li[2]/a/span26,7
draglink=Add
mouseOverlink=Manage32,4
mouseClicklink=Page Layout78,17
waitForElementPresent//form/div/div
mouseClick//div[2]/img47,73
mouseClickAndWait//div[5]/span/span/input32,14
draglink=Add
mouseOverlink=Add56,23
mouseClicklink=More…50,13
waitForElementPresent//div[@title='Vaadin Liferay Theme']/p/a
mouseClick//div[@title='Vaadin Liferay Theme']/p/a10,10
+ + \ No newline at end of file diff --git a/uitest/integration-testscripts/Liferay-6/Liferay6-theme.html b/uitest/integration-testscripts/Liferay-6/Liferay6-theme.html index c61adb0dd7..03f2d25120 100644 --- a/uitest/integration-testscripts/Liferay-6/Liferay6-theme.html +++ b/uitest/integration-testscripts/Liferay-6/Liferay6-theme.html @@ -4,21 +4,19 @@ -test-liferay6-theme +integration-test-liferay-6.0.5 - - + - + + @@ -356,13 +354,6 @@ - @@ -388,7 +379,6 @@ -
LiferayTheme
integration-test-liferay-6.0.5
open/web/guest/vaadin-liferay-theme//web/guest/vaadin-liferay-theme
screenCapture vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::Root/VNotification[0] 0,0
click vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[3]/domChild[0]/domChild[0] openedmenu
\ No newline at end of file diff --git a/uitest/integration-testscripts/Liferay-6/integration-test-liferay-6.0.5.html b/uitest/integration-testscripts/Liferay-6/integration-test-liferay-6.0.5.html index 037ce23865..656f2352e5 100644 --- a/uitest/integration-testscripts/Liferay-6/integration-test-liferay-6.0.5.html +++ b/uitest/integration-testscripts/Liferay-6/integration-test-liferay-6.0.5.html @@ -69,7 +69,7 @@ enterCharacter //div/span[1]/span/input - Vaadin Liferay Theme + portlet2 mouseClick @@ -133,43 +133,148 @@ waitForElementPresent - //div[@title='Vaadin Liferay Theme']/p/a + //div[@title='Vaadin Portlet 2.0 Test']/p/a mouseClick - //div[@title='Vaadin Liferay Theme']/p/a + //div[@title='Vaadin Portlet 2.0 Test']/p/a 10,10 + - waitForTextPresent - Normal Label + waitForElementPresent + //div[2]/div/div/div/span + + assertText + //div[2]/div/div/div/span + Test of ApplicationResources with full path + + + assertText + //body/div[3]/div//p + exact:Mode: view State: normal + screenCapture - theme + initial - mouseClick - //td[3]/div/div/div - 22,7 + closeNotification + //body/div[3]/div + 0,0 - assertTextPresent - Normal TextField + assertTextNotPresent + Action * received + + assertText + //div[@class="v-link v-widget"]/a/span + Edit + + + + mouseClickAndWait + //div[8]/div/a/span + 32,9 + assertTextPresent - Normal TextArea + Action 'someAction' received - assertTextNotPresent - Normal Label + assertText + //body/div[3]/div//p + exact:Mode: view State: normal + + + assertText + //div[@class="v-link v-widget"]/a/span + Edit + + + closeNotification + //body/div[3]/div + 0,0 + + + + mouseClickAndWait + //div[5]/div/a/span + 12,3 + + + assertText + //body/div[3]/div//p + exact:Mode: edit State: normal + + + closeNotification + //body/div[3]/div + 0,0 + + + assertText + //div[@class="v-link v-widget"]/a/span + Done + + + + mouseClickAndWait + //div[6]/div/a/span + 16,7 + + + assertText + //body/div[3]/div//p + exact:Mode: edit State: maximized + + + closeNotification + //body/div[3]/div + 0,0 + + + assertText + //div[6]/div/a/span + Back to normal + + + + mouseClickAndWait + //div[6]/div/a/span + 71,8 + + + assertText + //body/div[3]/div//p + exact:Mode: edit State: normal + + + closeNotification + //body/div[3]/div + 0,0 + + + assertText + //div[@class="v-link v-widget"]/a/span + Done + + + assertText + //div[6]/div/a/span + Maximize + + + screenCapture + final diff --git a/uitest/integration-testscripts/Liferay-6EE/Liferay6EE-theme.html b/uitest/integration-testscripts/Liferay-6EE/Liferay6EE-theme.html index f4772ef7ad..15d9571bad 100644 --- a/uitest/integration-testscripts/Liferay-6EE/Liferay6EE-theme.html +++ b/uitest/integration-testscripts/Liferay-6EE/Liferay6EE-theme.html @@ -4,22 +4,19 @@ -test-liferay6ee-theme +integration-test-liferay-6.0.5 - - + - + + @@ -357,13 +354,6 @@ - @@ -389,7 +379,6 @@ -
LiferayTheme
integration-test-liferay-6.0.5
open/web/guest/vaadin-liferay-theme//web/guest/vaadin-liferay-theme
screenCapture vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::Root/VNotification[0] 0,0
click vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[3]/domChild[0]/domChild[0] openedmenu
\ No newline at end of file diff --git a/uitest/integration-testscripts/common/portlet_test.tpl b/uitest/integration-testscripts/common/portlet_test.tpl new file mode 100644 index 0000000000..e4b83ef805 --- /dev/null +++ b/uitest/integration-testscripts/common/portlet_test.tpl @@ -0,0 +1,134 @@ + + waitForElementPresent + //div[2]/div/div/div/span + + + + assertText + //div[2]/div/div/div/span + Test of ApplicationResources with full path + + + assertText + //body/div[2]/div//p + exact:Mode: view State: normal + + + screenCapture + + initial + + + closeNotification + //body/div[2]/div + 0,0 + + + assertTextNotPresent + Action * received + + + + assertText + //div[@class="v-link v-widget"]/a/span + Edit + + + + mouseClickAndWait + //div[8]/div/a/span + 32,9 + + + assertTextPresent + Action 'someAction' received + + + + assertText + //body/div[2]/div//p + exact:Mode: view State: normal + + + assertText + //div[@class="v-link v-widget"]/a/span + Edit + + + closeNotification + //body/div[2]/div + 0,0 + + + + mouseClickAndWait + //div[5]/div/a/span + 12,3 + + + assertText + //body/div[2]/div//p + exact:Mode: edit State: normal + + + closeNotification + //body/div[2]/div + 0,0 + + + assertText + //div[@class="v-link v-widget"]/a/span + Done + + + + mouseClickAndWait + //div[6]/div/a/span + 16,7 + + + assertText + //body/div[2]/div//p + exact:Mode: edit State: maximized + + + closeNotification + //body/div[2]/div + 0,0 + + + assertText + //div[6]/div/a/span + Back to normal + + + + mouseClickAndWait + //div[6]/div/a/span + 71,8 + + + assertText + //body/div[2]/div//p + exact:Mode: edit State: normal + + + closeNotification + //body/div[2]/div + 0,0 + + + assertText + //div[@class="v-link v-widget"]/a/span + Done + + + assertText + //div[6]/div/a/span + Maximize + + + screenCapture + + final + \ No newline at end of file diff --git a/uitest/integration-testscripts/eXo-3/integration-test-eXo-3.0.3-portlet2.html b/uitest/integration-testscripts/eXo-3/integration-test-eXo-3.0.3-portlet2.html index af85dfd161..8813f7fe23 100644 --- a/uitest/integration-testscripts/eXo-3/integration-test-eXo-3.0.3-portlet2.html +++ b/uitest/integration-testscripts/eXo-3/integration-test-eXo-3.0.3-portlet2.html @@ -3,13 +3,13 @@ - -integration-test-eXo-3.0.3-portlet2 + +integration-test-eXo-3.1.0-portlet2 - + @@ -32,164 +32,296 @@ - - + + - + - - - + + + + + + + + + + + + + - + - - - + + + - + + + + + + + + + + + + + + + + - + - - + + - + - - + + - - - + + + - - - + + + + + + + + - - + + + + + + + + + + + + - + + + + + + + + + + + - + - + - - + + + - + - - + + - + - + - - - + + + + - + + + + + + + + + + + + + + + + + - + - - + + + + + + + + - - + + + + + + + + + + + + + + + + + - + + - - - + + + - - - + + + + + + + + + + + + + + - - + + + + + + + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - +
integration-test-eXo-3.0.3-portlet2
integration-test-eXo-3.1.0-portlet2
open37,4
setTimeout60000waitForElementPresentlink=Applications Registry
waitForElementPresentmouseClickAndWait link=Applications Registry
open/portal/private/intranet/administration/registry138,17mouseClicklink=Portlet33,11
waitForElementPresentlink=Vaadin Portlet 2.0 Test59,9
mouseClicklink=Vaadin Portlet 2.0 Test59,9
waitForElementPresent//div[@id='UIApplicationOrganizer']/div[1]/div[2]link=Click here to add into categories
expectDialog//div[@id='UIApplicationOrganizer']/div[1]/div[2]36,15mouseClicklink=Click here to add into categories48,3
getConfirmationwaitForElementPresentname=category_Gadgets
mouseClickname=category_Gadgets10,16
waitForElementPresentlink=Save
mouseClicklink=Save4,6
waitForElementPresentlink=demolink=Vaadin Liferay Theme
mouseClicklink=Add New Page64,16link=Vaadin Liferay Theme64,13
waitForElementPresent//form[@id='UIWizardPageSetInfo']/div[2]/div[2]/div/div[2]/div[1]link=Click here to add into categories
mouseClickpageName98,10link=Click here to add into categories96,9
enterCharacterpageNameApplication_testwaitForElementPresentname=category_Gadgets7,12
enterCharacterpageDisplayNameVaadin testmouseClickname=category_Gadgets7,12
waitForElementPresentlink=Save4,6
mouseClick//div[@id='UIPageCreationWizard']/div/div[3]/div/div/div/div[2]/div/table/tbody/tr/td/div[2]/div/div/div24,16link=Save4,6
waitForElementPresentlink=Add New Page55,11
mouseClicklink=Add New Page55,11
waitForElementPresent//form[@id='UIWizardPageSelectLayoutForm']/div[2]/div/div[1]/div[2]/div[1]/div[1]/div/divpageName
mouseClickpageName33,16
enterCharacterpageNamePortlet2
mouseClick //div[@id='UIPageCreationWizard']/div/div[3]/div/div/div/div[2]/div/table/tbody/tr/td/div[2]/div/div/div20,1236,12
waitForElementPresentlink=demo//div[@id='UIDropDownPageTemp']/div[1]/div/div/div/div/div/div
mouseClicklink=demo24,7//div[@id='UIPageCreationWizard']/div/div[3]/div/div/div/div[2]/div/table/tbody/tr/td/div[2]/div/div/div21,13
waitForElementPresent//div[@id='demo/JSR286TestPortlet']/div/div/div[1]/div[1]//div[@id='Gadgets/JSR286TestPortlet']/div/div/div/div
drag//div[@id='demo/JSR286TestPortlet']/div/div/div[1]/div[2]147,6//div[@id='Gadgets/JSR286TestPortlet']/div/div/div/div
mouseMoveAtdrop //div[2]/div/div/div[1]/div/div[2]/div/div/div/div20,20113,9
drop//div[@id='UIPortalApplication']/div[4]760,138waitForTextPresentVaadin Portlet 2.0 Test
mouseClickAndWait //a[@onclick='eXo.core.DOMUtil.disableOnClick(this);']10,713,5
waitForText//div[2]/div/div/div/spanTest of ApplicationResources with full path
assertText//body/div[4]/div//pexact:Mode: view State: normal
screenCaptureinitial
closeNotification//body/div[4]//body/div[4]/div 0,0
setTimeout60000assertTextNotPresentAction * received
assertText//div[@class="v-link v-widget"]/a/spanEdit
mouseClickAndWait//div[@id='UIPage']/div/div/div[2]/div/div/div/div/div/div/div[2]/div[5]/div/a10,10//div[8]/div/a/span32,9
assertTextPresentAction 'someAction' received
assertText//body/div[4]/div//pexact:Mode: view State: normal
assertText//div[@class="v-link v-widget"]/a/spanEdit
closeNotification//body/div[4]//body/div[4]/div 0,0
pause1000mouseClickAndWait//div[5]/div/a/span12,3
screenCaptureEdit_modeassertText//body/div[4]/div//pexact:Mode: edit State: normal
closeNotification//body/div[4]/div0,0
assertText//div[@class="v-link v-widget"]/a/spanDone
mouseClickAndWait//div[@id='UIPage']/div/div/div[2]/div/div/div/div/div/div/div[2]/div[5]/div/a15,8//div[6]/div/a/span16,7
assertText//body/div[3]/div//pexact:Mode: edit State: normal
closeNotification//body/div[4]//body/div[3]/div 0,0
pause1000assertText//div[6]/div/a/spanMaximize
mouseClickAndWait//div[6]/div/a/span71,8
assertText//body/div[3]/div//pexact:Mode: edit State: normal
closeNotification//body/div[3]/div0,0
assertText//div[@class="v-link v-widget"]/a/spanDone
assertText//div[6]/div/a/spanMaximize
screenCapture donefinal
diff --git a/uitest/integration-testscripts/weblogic-portal/integration-test-WebLogic-Portal-10.3.2-portlet2.html b/uitest/integration-testscripts/weblogic-portal/integration-test-WebLogic-Portal-10.3.2-portlet2.html index 98256862aa..f9f1d316c9 100644 --- a/uitest/integration-testscripts/weblogic-portal/integration-test-WebLogic-Portal-10.3.2-portlet2.html +++ b/uitest/integration-testscripts/weblogic-portal/integration-test-WebLogic-Portal-10.3.2-portlet2.html @@ -1,57 +1,140 @@ - - - - - - -integration-test-WebLogic-Portal-10.3.2-portlet2 - - - - - - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + - + + + + + + + + + + + - + - -
integration-test-WebLogic-Portal-10.3.2-portlet2
open /VaadinTest/TestPortal.portal
waitForElementPresent//div[2]/div/div/div/span
assertText//div[2]/div/div/div/spanTest of ApplicationResources with full path
assertText//body/div[4]/div//pexact:Mode: view State: normal
screenCaptureinitial
closeNotification//body/div[4]//body/div[4]/div 0,0
assertTextNotPresentAction * received
assertText//div[@class="v-link v-disabled v-widget"]/a/span
mouseClickAndWaitedit31,9//div[8]/div/a/span32,9
assertTextPresentAction 'someAction' received
assertText//body/div[4]/div//pexact:Mode: view State: normal
assertText//div[@class="v-link v-disabled v-widget"]/a/span
closeNotification//body/div[4]//body/div[4]/div 0,0
screenCaptureEdit_modemouseClickAndWaitname=edit3,5
assertText//body/div[4]/div//pexact:Mode: edit State: normal
closeNotification//body/div[4]/div0,0
assertText//div[@class="v-link v-widget"]/a/spanDone
mouseClickAndWait//div[6]/div/a/span16,7
assertText//body/div[4]/div//pexact:Mode: edit State: maximized
closeNotification//body/div[4]/div0,0
assertText//div[6]/div/a/spanBack to normal
mouseClickAndWaitvaadin=v-JSR286TestPortlet_1::/VVerticalLayout[0]/ChildComponentContainer[4]/VLink[0]/domChild[0]/domChild[0]44,2//div[6]/div/a/span71,8
assertText//body/div[4]/div//pexact:Mode: edit State: normal
closeNotification//body/div[4]//body/div[4]/div 0,0
assertText//div[@class="v-link v-widget"]/a/spanDone
assertText//div[6]/div/a/spanMaximize
screenCapture donefinal
- - diff --git a/uitest/integration_tests.xml b/uitest/integration_tests.xml index 9eab2d563c..f8d250554c 100644 --- a/uitest/integration_tests.xml +++ b/uitest/integration_tests.xml @@ -183,12 +183,24 @@ + + + + + + + + + + + + @@ -199,6 +211,7 @@ + @@ -207,11 +220,23 @@ + + + + + + + + + + + + @@ -231,7 +256,7 @@ - + @@ -306,6 +331,8 @@ + + diff --git a/uitest/src/com/vaadin/tests/integration/JSR286Portlet.java b/uitest/src/com/vaadin/tests/integration/JSR286Portlet.java new file mode 100644 index 0000000000..859175394d --- /dev/null +++ b/uitest/src/com/vaadin/tests/integration/JSR286Portlet.java @@ -0,0 +1,214 @@ +package com.vaadin.tests.integration; + +import java.io.ByteArrayOutputStream; +import java.io.OutputStream; +import java.util.Iterator; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javax.portlet.ActionRequest; +import javax.portlet.ActionResponse; +import javax.portlet.EventRequest; +import javax.portlet.EventResponse; +import javax.portlet.PortletMode; +import javax.portlet.PortletRequest; +import javax.portlet.PortletURL; +import javax.portlet.RenderRequest; +import javax.portlet.RenderResponse; +import javax.portlet.ResourceRequest; +import javax.portlet.ResourceResponse; +import javax.portlet.WindowState; + +import com.vaadin.annotations.StyleSheet; +import com.vaadin.server.ExternalResource; +import com.vaadin.server.VaadinPortletRequest; +import com.vaadin.server.VaadinPortletService; +import com.vaadin.server.VaadinPortletSession; +import com.vaadin.server.VaadinPortletSession.PortletListener; +import com.vaadin.server.VaadinRequest; +import com.vaadin.shared.ui.label.ContentMode; +import com.vaadin.ui.Embedded; +import com.vaadin.ui.Label; +import com.vaadin.ui.Link; +import com.vaadin.ui.Notification; +import com.vaadin.ui.Notification.Type; +import com.vaadin.ui.TextField; +import com.vaadin.ui.UI; +import com.vaadin.ui.Upload; +import com.vaadin.ui.Upload.Receiver; +import com.vaadin.ui.VerticalLayout; + +/** + * Adapted from old PortletDemo to support integration testing. + */ +@StyleSheet("PortletConnectorResource.css") +public class JSR286Portlet extends UI { + + TextField tf = new TextField("Some value"); + Label userInfo = new Label(); + Link portletEdit = new Link(); + Link portletMax = new Link(); + Link someAction = null; + private VerticalLayout main = new VerticalLayout(); + + @Override + protected void init(VaadinRequest request) { + setContent(main); + Embedded appResourceTest = new Embedded( + "Test of ApplicationResources with full path", + new FlagSeResource()); + main.addComponent(appResourceTest); + Embedded specialNameResourceTest = new Embedded( + "Test ApplicationResources with special names", + new SpecialNameResource()); + specialNameResourceTest.addStyleName("hugeBorder"); + main.addComponent(specialNameResourceTest); + + userInfo.setCaption("User info"); + userInfo.setContentMode(ContentMode.PREFORMATTED); + main.addComponent(userInfo); + + tf.setEnabled(false); + tf.setImmediate(true); + main.addComponent(tf); + + portletEdit.setEnabled(false); + main.addComponent(portletEdit); + portletMax.setEnabled(false); + main.addComponent(portletMax); + + Upload upload = new Upload("Upload a file", new Receiver() { + + @Override + public OutputStream receiveUpload(String filename, String mimeType) { + return new ByteArrayOutputStream(); + } + }); + main.addComponent(upload); + + possiblyChangedModeOrState(); + getSession().addPortletListener(new DemoPortletListener()); + } + + @Override + public VaadinPortletSession getSession() { + return (VaadinPortletSession) super.getSession(); + } + + private void possiblyChangedModeOrState() { + VaadinPortletRequest request = (VaadinPortletRequest) VaadinPortletService + .getCurrentRequest(); + + boolean inViewMode = (request.getPortletMode() == PortletMode.VIEW); + boolean inNormalState = (request.getWindowState() == WindowState.NORMAL); + // Portlet up-and-running, enable stuff + portletEdit.setEnabled(true); + portletMax.setEnabled(true); + + // Editable if we're in editmode + tf.setEnabled(!inViewMode); + + // Show notification about current mode and state + getPage().showNotification( + new Notification("Portlet status", "Mode: " + + request.getPortletMode() + " State: " + + request.getWindowState(), Type.WARNING_MESSAGE)); + + // Display current user info + Map uinfo = (Map) request + .getAttribute(PortletRequest.USER_INFO); + if (uinfo != null) { + String s = ""; + for (Iterator it = uinfo.keySet().iterator(); it.hasNext();) { + Object key = it.next(); + Object val = uinfo.get(key); + s += key + ": " + val + "\n"; + } + if (request.isUserInRole("administrator")) { + s += "(administrator)"; + } + userInfo.setValue(s); + } else { + userInfo.setValue("-"); + } + + // Create Edit/Done link (actionUrl) + PortletURL url = getSession().generateActionURL("changeMode"); + try { + if (inViewMode) { + url.setPortletMode(PortletMode.EDIT); + portletEdit.setCaption("Edit"); + } else { + url.setPortletMode(PortletMode.VIEW); + portletEdit.setCaption("Done"); + } + portletEdit.setResource(new ExternalResource(url.toString())); + } catch (Exception e) { + portletEdit.setEnabled(false); + Logger.getLogger(getClass().getName()).log(Level.SEVERE, + "Error creating edit mode link", e); + } + + // Create Maximize/Normal link (actionUrl) + url = getSession().generateActionURL("changeState"); + try { + if (inNormalState) { + url.setWindowState(WindowState.MAXIMIZED); + portletMax.setCaption("Maximize"); + } else { + url.setWindowState(WindowState.NORMAL); + portletMax.setCaption("Back to normal"); + + } + portletMax.setResource(new ExternalResource(url.toString())); + } catch (Exception e) { + portletMax.setEnabled(false); + Logger.getLogger(getClass().getName()).log(Level.SEVERE, + "Error creating state change link", e); + } + + if (someAction == null) { + url = getSession().generateActionURL("someAction"); + try { + someAction = new Link("An action", new ExternalResource( + url.toString())); + main.addComponent(someAction); + } catch (Exception e) { + // Oops + System.err.println("Could not create someAction: " + e); + } + + } + } + + private class DemoPortletListener implements PortletListener { + + @Override + public void handleActionRequest(ActionRequest request, + ActionResponse response, UI window) { + main.addComponent(new Label("Action '" + + request.getParameter("javax.portlet.action") + + "' received")); + } + + @Override + public void handleRenderRequest(RenderRequest request, + RenderResponse response, UI window) { + possiblyChangedModeOrState(); + } + + @Override + public void handleEventRequest(EventRequest request, + EventResponse response, UI window) { + // events not used by this test + } + + @Override + public void handleResourceRequest(ResourceRequest request, + ResourceResponse response, UI window) { + // nothing special to do here + } + } + +} diff --git a/uitest/src/com/vaadin/tests/integration/JSR286PortletApplication.java b/uitest/src/com/vaadin/tests/integration/JSR286PortletApplication.java deleted file mode 100644 index 81b7ebb653..0000000000 --- a/uitest/src/com/vaadin/tests/integration/JSR286PortletApplication.java +++ /dev/null @@ -1,195 +0,0 @@ -package com.vaadin.tests.integration; - -import java.io.ByteArrayOutputStream; -import java.io.OutputStream; -import java.util.Iterator; -import java.util.Map; - -import javax.portlet.ActionRequest; -import javax.portlet.ActionResponse; -import javax.portlet.EventRequest; -import javax.portlet.EventResponse; -import javax.portlet.PortletMode; -import javax.portlet.PortletRequest; -import javax.portlet.PortletURL; -import javax.portlet.RenderRequest; -import javax.portlet.RenderResponse; -import javax.portlet.ResourceRequest; -import javax.portlet.ResourceResponse; -import javax.portlet.WindowState; - -import com.vaadin.annotations.StyleSheet; -import com.vaadin.server.ExternalResource; -import com.vaadin.server.LegacyApplication; -import com.vaadin.server.VaadinPortletSession; -import com.vaadin.server.VaadinPortletSession.PortletListener; -import com.vaadin.shared.ui.label.ContentMode; -import com.vaadin.ui.Embedded; -import com.vaadin.ui.Label; -import com.vaadin.ui.LegacyWindow; -import com.vaadin.ui.Link; -import com.vaadin.ui.Notification; -import com.vaadin.ui.TextField; -import com.vaadin.ui.UI; -import com.vaadin.ui.Upload; -import com.vaadin.ui.Upload.Receiver; - -/** - * Adapted from old PortletDemo to support integration testing. - */ -public class JSR286PortletApplication extends LegacyApplication { - - @StyleSheet("PortletConnectorResource.css") - public final class LegacyWindowWithStylesheet extends LegacyWindow { - - } - - LegacyWindow main = new LegacyWindowWithStylesheet(); - TextField tf = new TextField("Some value"); - Label userInfo = new Label(); - Link portletEdit = new Link(); - Link portletMax = new Link(); - Link someAction = null; - - @Override - public void init() { - setMainWindow(main); - - Embedded appResourceTest = new Embedded( - "Test of ApplicationResources with full path", - new FlagSeResource()); - main.addComponent(appResourceTest); - Embedded specialNameResourceTest = new Embedded( - "Test ApplicationResources with special names", - new SpecialNameResource()); - specialNameResourceTest.addStyleName("hugeBorder"); - main.addComponent(specialNameResourceTest); - - userInfo.setCaption("User info"); - userInfo.setContentMode(ContentMode.PREFORMATTED); - main.addComponent(userInfo); - - tf.setEnabled(false); - tf.setImmediate(true); - main.addComponent(tf); - - portletEdit.setEnabled(false); - main.addComponent(portletEdit); - portletMax.setEnabled(false); - main.addComponent(portletMax); - - Upload upload = new Upload("Upload a file", new Receiver() { - - @Override - public OutputStream receiveUpload(String filename, String mimeType) { - return new ByteArrayOutputStream(); - } - }); - main.addComponent(upload); - - if (getContext() instanceof VaadinPortletSession) { - VaadinPortletSession ctx = (VaadinPortletSession) getContext(); - ctx.addPortletListener(new DemoPortletListener()); - } else { - getMainWindow().showNotification("Not inited via Portal!", - Notification.TYPE_ERROR_MESSAGE); - } - - } - - private class DemoPortletListener implements PortletListener { - - @Override - public void handleActionRequest(ActionRequest request, - ActionResponse response, UI window) { - main.addComponent(new Label("Action received")); - } - - @Override - public void handleRenderRequest(RenderRequest request, - RenderResponse response, UI window) { - // Portlet up-and-running, enable stuff - portletEdit.setEnabled(true); - portletMax.setEnabled(true); - - // Editable if we're in editmode - tf.setEnabled((request.getPortletMode() == PortletMode.EDIT)); - - // Show notification about current mode and state - getMainWindow().showNotification( - "Portlet status", - "Mode: " + request.getPortletMode() + " State: " - + request.getWindowState(), - Notification.TYPE_WARNING_MESSAGE); - - // Display current user info - Map uinfo = (Map) request - .getAttribute(PortletRequest.USER_INFO); - if (uinfo != null) { - String s = ""; - for (Iterator it = uinfo.keySet().iterator(); it.hasNext();) { - Object key = it.next(); - Object val = uinfo.get(key); - s += key + ": " + val + "\n"; - } - if (request.isUserInRole("administrator")) { - s += "(administrator)"; - } - userInfo.setValue(s); - } else { - userInfo.setValue("-"); - } - - // Create Edit/Done link (actionUrl) - PortletURL url = response.createActionURL(); - try { - url.setPortletMode((request.getPortletMode() == PortletMode.VIEW ? PortletMode.EDIT - : PortletMode.VIEW)); - portletEdit.setResource(new ExternalResource(url.toString())); - portletEdit - .setCaption((request.getPortletMode() == PortletMode.VIEW ? "Edit" - : "Done")); - } catch (Exception e) { - portletEdit.setEnabled(false); - } - // Create Maximize/Normal link (actionUrl) - url = response.createActionURL(); - try { - url.setWindowState((request.getWindowState() == WindowState.NORMAL ? WindowState.MAXIMIZED - : WindowState.NORMAL)); - portletMax.setResource(new ExternalResource(url.toString())); - portletMax - .setCaption((request.getWindowState() == WindowState.NORMAL ? "Maximize" - : "Back to normal")); - } catch (Exception e) { - portletMax.setEnabled(false); - } - - if (someAction == null) { - url = response.createActionURL(); - try { - someAction = new Link("An action", new ExternalResource( - url.toString())); - main.addComponent(someAction); - } catch (Exception e) { - // Oops - System.err.println("Could not create someAction: " + e); - } - - } - } - - @Override - public void handleEventRequest(EventRequest request, - EventResponse response, UI window) { - // events not used by this test - } - - @Override - public void handleResourceRequest(ResourceRequest request, - ResourceResponse response, UI window) { - // nothing special to do here - } - } - -} -- 2.39.5