diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaStructureManagementPanelPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaStructureManagementPanelPO.java index 21770f18b9d..1e5f380e196 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaStructureManagementPanelPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaStructureManagementPanelPO.java @@ -44,7 +44,7 @@ public class RegattaStructureManagementPanelPO extends PageArea { * * @param regatta */ - public void createRegatta(RegattaDescriptor regatta) { + public void createRegatta(RegattaDescriptor regatta, boolean withDefaultLeaderboard) { RegattaCreateDialogPO createRegattaDialog = startRegattaCreation(); createRegattaDialog.setRegattaName(regatta.getName()+" ("+regatta.getBoatClass()+")"); createRegattaDialog.setBoatClass(regatta.getBoatClass()); @@ -55,7 +55,12 @@ public class RegattaStructureManagementPanelPO extends PageArea { // QUESTION: How do we handle an error (here or in the dialog)? createRegattaDialog.pressOk(); DefaultRegattaLeaderboardCreateDialogPO createDefaultRegattaLeaderboardDialog = createDefaultRegattaLeaderboard(); - createDefaultRegattaLeaderboardDialog.pressOk(); + if (withDefaultLeaderboard) { + createDefaultRegattaLeaderboardDialog.pressOk(); + } else { + createDefaultRegattaLeaderboardDialog.pressCancel(); + } + } public void createRegattaAndAddToEvent(RegattaDescriptor regatta, String event, String[] courseAreaNames) { diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestLinkCreation.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestLinkCreation.java new file mode 100644 index 00000000000..f55dfc1ae09 --- /dev/null +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestLinkCreation.java @@ -0,0 +1,71 @@ +package com.sap.sailing.selenium.test.adminconsole; + +import java.util.Date; + +import javax.xml.bind.DatatypeConverter; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.sap.sailing.selenium.pages.adminconsole.AdminConsolePage; +import com.sap.sailing.selenium.pages.adminconsole.event.EventConfigurationPanelPO; +import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaDetailsCompositePO; +import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaEditDialogPO; +import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaStructureManagementPanelPO; +import com.sap.sailing.selenium.pages.adminconsole.regatta.RegistrationLinkWithQRCodeDialogPO; +import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaListCompositePO.RegattaDescriptor; +import com.sap.sailing.selenium.test.AbstractSeleniumTest; + +/** + * There are various link creation logic in AdminConsole. This test is to cover them. + */ +public class TestLinkCreation extends AbstractSeleniumTest { + + private static final String BMW_CUP_EVENT = "BMW Cup"; + private static final String BMW_CUP_BOAT_CLASS = "J80"; + private static final String AUDI_CUP_BOAT_CLASS = "J70"; + private static final String BMW_CUP_REGATTA = "BMW Cup (J80)"; //$NON-NLS-1$ + private static final String AUDI_CUP_REGATTA = "Audi Business Cup (J70)"; //$NON-NLS-1$ + private static final String BMW_CUP_EVENTS_DESC = "BMW Cup Description"; + private static final String BMW_VENUE = "Somewhere"; + private static final Date BMW_START_EVENT_TIME = DatatypeConverter.parseDateTime("2012-04-08T10:09:00-05:00") + .getTime(); + private static final Date BMW_STOP_EVENT_TIME = DatatypeConverter.parseDateTime("2017-04-08T10:50:00-05:00") + .getTime(); + private static final String CUSTOM_COURSE_AREA = "Custom X"; + private static final String INVITATION_URL_BASE = "https://sailinsight30-app.sapsailing.com/publicInvite?regatta_name=Audi+Business+Cup+(J70)+(J70)&secret=&server=http%3A%2F%2Flocalhost%3A8888&event_id="; + + @Override + @Before + public void setUp() { + clearState(getContextRoot()); + super.setUp(); + } + + /** + * Test the creation of an invitation link. + */ + @Test + public void testRegattaOverviewInvitationLinkCreation() { + AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot()); + EventConfigurationPanelPO events = adminConsole.goToEvents(); + events.createEventWithDefaultLeaderboardGroupRegattaAndDefaultLeaderboard(BMW_CUP_EVENT, BMW_CUP_EVENTS_DESC, + BMW_VENUE, BMW_START_EVENT_TIME, BMW_STOP_EVENT_TIME, true, BMW_CUP_REGATTA, BMW_CUP_BOAT_CLASS, + BMW_START_EVENT_TIME, BMW_STOP_EVENT_TIME, false, CUSTOM_COURSE_AREA); + RegattaStructureManagementPanelPO regattas = adminConsole.goToRegattaStructure(); + RegattaDescriptor regattaDescriptor = new RegattaDescriptor(AUDI_CUP_REGATTA, AUDI_CUP_BOAT_CLASS); + regattas.createRegattaAndAddToEvent(regattaDescriptor, BMW_CUP_EVENT, new String[] { CUSTOM_COURSE_AREA }); + + RegattaEditDialogPO editRegatta = regattas.getRegattaList().editRegatta(regattaDescriptor); + String secret = editRegatta.getSecret(); + String selectedEventId = editRegatta.getSelectedEventId(); + editRegatta.clickOkButtonOrThrow(); + // regattas.getRegattaList().selectRegatta(regattaDescriptor); + RegattaDetailsCompositePO regattaDetails = regattas.getRegattaDetails(); + RegistrationLinkWithQRCodeDialogPO registrationLinkWithQRCode = regattaDetails.configureRegistrationURL(); + String invitationUrl = INVITATION_URL_BASE.replace("", secret).replace("", selectedEventId); + Assert.assertEquals(invitationUrl, registrationLinkWithQRCode.getRegistrationLinkUrl()); + registrationLinkWithQRCode.clickOkButtonOrThrow(); + } +} diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestOpenRegattaCreation.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestOpenRegattaCreation.java index 7d01aaaa34f..a4fd3cb34e8 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestOpenRegattaCreation.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestOpenRegattaCreation.java @@ -35,6 +35,6 @@ public class TestOpenRegattaCreation extends AbstractSeleniumTest { private void configureRegattaAndLeaderboard() { AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot()); RegattaStructureManagementPanelPO regattaStructure = adminConsole.goToRegattaStructure(); - regattaStructure.createRegatta(this.regatta); + regattaStructure.createRegatta(this.regatta, /* withDefaultLeaderboard */ false); } } diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestRefreshableSelectionModel.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestRefreshableSelectionModel.java index 8d74deb7739..698bb959d35 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestRefreshableSelectionModel.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestRefreshableSelectionModel.java @@ -175,7 +175,7 @@ public class TestRefreshableSelectionModel extends AbstractSeleniumTest { // Create a regatta with 1 series and 5 races as well as a leaderborad RegattaStructureManagementPanelPO regattaStructure = adminConsole.goToRegattaStructure(); - regattaStructure.createRegatta(this.regatta); + regattaStructure.createRegatta(this.regatta, /* withDefaultLeaderboard */ false); RegattaDetailsCompositePO regattaDetails = regattaStructure.getRegattaDetails(this.regatta); SeriesEditDialogPO seriesDialog = regattaDetails.editSeries(RegattaStructureManagementPanelPO.DEFAULT_SERIES_NAME); diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestSmartphoneTrackingEventManagementPanel.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestSmartphoneTrackingEventManagementPanel.java index b1c9346fd08..7bfd1481444 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestSmartphoneTrackingEventManagementPanel.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestSmartphoneTrackingEventManagementPanel.java @@ -117,7 +117,7 @@ public class TestSmartphoneTrackingEventManagementPanel extends AbstractSelenium // Create a regatta with 1 series and 5 races as well as a leaderborad RegattaStructureManagementPanelPO regattaStructure = adminConsole.goToRegattaStructure(); - regattaStructure.createRegatta(this.regatta); + regattaStructure.createRegatta(this.regatta, /* withDefaultLeaderboard */ false); RegattaDetailsCompositePO regattaDetails = regattaStructure.getRegattaDetails(this.regatta); SeriesEditDialogPO seriesDialog = regattaDetails.editSeries(RegattaStructureManagementPanelPO.DEFAULT_SERIES_NAME); diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestStartAndStopTrackingForTracTracEvents.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestStartAndStopTrackingForTracTracEvents.java index f86777576b0..dbb61139d5c 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestStartAndStopTrackingForTracTracEvents.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/adminconsole/TestStartAndStopTrackingForTracTracEvents.java @@ -61,7 +61,7 @@ public class TestStartAndStopTrackingForTracTracEvents extends AbstractSeleniumT RegattaDescriptor bmwCupDescriptor = new RegattaDescriptor(BMW_CUP_EVENT, BMW_CUP_BOAT_CLASS); AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot()); RegattaStructureManagementPanelPO regattaStructure = adminConsole.goToRegattaStructure(); - regattaStructure.createRegatta(bmwCupDescriptor); + regattaStructure.createRegatta(bmwCupDescriptor, /* withDefaultLeaderboard */ false); TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents(); tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL); tracTracEvents.setReggataForTracking(bmwCupDescriptor); @@ -79,7 +79,7 @@ public class TestStartAndStopTrackingForTracTracEvents extends AbstractSeleniumT public void testStartTrackingWithDefaultReggataWhileReggataForBoatClassExists() { AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot()); RegattaStructureManagementPanelPO regattaStructure = adminConsole.goToRegattaStructure(); - regattaStructure.createRegatta(new RegattaDescriptor(BMW_CUP_EVENT, BMW_CUP_BOAT_CLASS)); + regattaStructure.createRegatta(new RegattaDescriptor(BMW_CUP_EVENT, BMW_CUP_BOAT_CLASS), /* withDefaultLeaderboard */ false); TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents(); tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL); tracTracEvents.setReggataForTracking(DEFAULT_REGATTA); @@ -93,8 +93,8 @@ public class TestStartAndStopTrackingForTracTracEvents extends AbstractSeleniumT RegattaDescriptor idm2013Descriptor = new RegattaDescriptor(IDM_2013_EVENT, IDM_2013_BOAT_CLASS); AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot()); RegattaStructureManagementPanelPO regattaStructure = adminConsole.goToRegattaStructure(); - regattaStructure.createRegatta(bmwCupDescriptor); - regattaStructure.createRegatta(idm2013Descriptor); + regattaStructure.createRegatta(bmwCupDescriptor, /* withDefaultLeaderboard */ false); + regattaStructure.createRegatta(idm2013Descriptor, /* withDefaultLeaderboard */ false); TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents(); tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL); tracTracEvents.setReggataForTracking(idm2013Descriptor); diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestColumnsInLeaderboard.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestColumnsInLeaderboard.java index cc13b811548..a50713b87ec 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestColumnsInLeaderboard.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestColumnsInLeaderboard.java @@ -124,7 +124,7 @@ public class TestColumnsInLeaderboard extends AbstractSeleniumTest { AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot()); // Create a regatta with 1 series and 5 races as well as a leaderboard RegattaStructureManagementPanelPO regattaStructure = adminConsole.goToRegattaStructure(); - regattaStructure.createRegatta(this.regatta); + regattaStructure.createRegatta(this.regatta, /* withDefaultLeaderboard */ false); RegattaDetailsCompositePO regattaDetails = regattaStructure.getRegattaDetails(this.regatta); SeriesEditDialogPO seriesDialog = regattaDetails.editSeries(RegattaStructureManagementPanelPO.DEFAULT_SERIES_NAME); seriesDialog.addRaces(1, 1); diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestLeaderboardConfiguration.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestLeaderboardConfiguration.java index 44c8a50d011..961d94f1b8c 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestLeaderboardConfiguration.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestLeaderboardConfiguration.java @@ -187,7 +187,7 @@ public class TestLeaderboardConfiguration extends AbstractSeleniumTest { // Create a regatta with 1 series and 5 races as well as a leaderborad RegattaStructureManagementPanelPO regattaStructure = adminConsole.goToRegattaStructure(); - regattaStructure.createRegatta(this.regatta); + regattaStructure.createRegatta(this.regatta, /* withDefaultLeaderboard */ false); RegattaDetailsCompositePO regattaDetails = regattaStructure.getRegattaDetails(this.regatta); SeriesEditDialogPO seriesDialog = regattaDetails.editSeries(RegattaStructureManagementPanelPO.DEFAULT_SERIES_NAME); diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestSwitchingOffStartOfRaceInference.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestSwitchingOffStartOfRaceInference.java index 7eb75a209af..ce680c79337 100755 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestSwitchingOffStartOfRaceInference.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/leaderboard/TestSwitchingOffStartOfRaceInference.java @@ -96,7 +96,7 @@ public class TestSwitchingOffStartOfRaceInference extends AbstractSeleniumTest { AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot()); // Create a regatta with 1 series and 5 races as well as a leaderboard RegattaStructureManagementPanelPO regattaStructure = adminConsole.goToRegattaStructure(); - regattaStructure.createRegatta(this.regatta); + regattaStructure.createRegatta(this.regatta, /* withDefaultLeaderboard */ false); RegattaDetailsCompositePO regattaDetails = regattaStructure.getRegattaDetails(this.regatta); SeriesEditDialogPO seriesDialog = regattaDetails.editSeries(RegattaStructureManagementPanelPO.DEFAULT_SERIES_NAME); seriesDialog.addRaces(3, 3); diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/raceboard/SettingsTest.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/raceboard/SettingsTest.java index 9dc1417ab5f..4a5be0cfca9 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/raceboard/SettingsTest.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/raceboard/SettingsTest.java @@ -23,10 +23,7 @@ import com.sap.sailing.selenium.pages.adminconsole.leaderboard.LeaderboardDetail import com.sap.sailing.selenium.pages.adminconsole.leaderboard.LeaderboardPageConfigurationPanelPO; import com.sap.sailing.selenium.pages.adminconsole.leaderboard.LeaderboardUrlConfigurationDialogPO; import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaListCompositePO.RegattaDescriptor; -import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaDetailsCompositePO; -import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaEditDialogPO; import com.sap.sailing.selenium.pages.adminconsole.regatta.RegattaStructureManagementPanelPO; -import com.sap.sailing.selenium.pages.adminconsole.regatta.RegistrationLinkWithQRCodeDialogPO; import com.sap.sailing.selenium.pages.adminconsole.tracking.TrackedRacesListPO; import com.sap.sailing.selenium.pages.adminconsole.tracking.TrackedRacesListPO.Status; import com.sap.sailing.selenium.pages.adminconsole.tracking.TrackedRacesListPO.TrackedRaceDescriptor; @@ -73,8 +70,6 @@ public class SettingsTest extends AbstractSeleniumTest { private static final String CUSTOM_COURSE_AREA = "Custom X"; private static final String URL_PARAMETER_IGNORE_LOCAL_SETTINGS = "ignoreLocalSettings=true"; - - private static final String INVITATION_URL_BASE = "https://sailinsight30-app.sapsailing.com/publicInvite?regatta_name=Audi+Business+Cup+(J70)+(J70)&secret=&server=http%3A%2F%2Flocalhost%3A8888&event_id="; @Override @Before @@ -698,35 +693,6 @@ public class SettingsTest extends AbstractSeleniumTest { Assert.assertArrayEquals(newDetails, leaderboardSettingsPanel.getSelectedDetails()); Assert.assertEquals(newRefreshInterval, leaderboardSettingsPanel.getRefreshInterval()); } - - /** - * Test the creation of an invitation link. - */ - @Test - public void testRegattaOverviewInvitationLinkCreation() { - AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot()); - EventConfigurationPanelPO events = adminConsole.goToEvents(); - events.createEventWithDefaultLeaderboardGroupRegattaAndDefaultLeaderboard(BMW_CUP_EVENT, BMW_CUP_EVENTS_DESC, - BMW_VENUE, BMW_START_EVENT_TIME, BMW_STOP_EVENT_TIME, true, BMW_CUP_REGATTA, BMW_CUP_BOAT_CLASS, - BMW_START_EVENT_TIME, BMW_STOP_EVENT_TIME, false, CUSTOM_COURSE_AREA); - RegattaStructureManagementPanelPO regattas = adminConsole.goToRegattaStructure(); - RegattaDescriptor regattaDescriptor = new RegattaDescriptor(AUDI_CUP_REGATTA, AUDI_CUP_BOAT_CLASS); - regattas.createRegattaAndAddToEvent(regattaDescriptor, BMW_CUP_EVENT, - new String[] { CUSTOM_COURSE_AREA }); - - RegattaEditDialogPO editRegatta = regattas.getRegattaList().editRegatta(regattaDescriptor); - String secret = editRegatta.getSecret(); - String selectedEventId = editRegatta.getSelectedEventId(); - editRegatta.clickOkButtonOrThrow(); - //regattas.getRegattaList().selectRegatta(regattaDescriptor); - RegattaDetailsCompositePO regattaDetails = regattas.getRegattaDetails(); - RegistrationLinkWithQRCodeDialogPO registrationLinkWithQRCode = regattaDetails.configureRegistrationURL(); - String invitationUrl = INVITATION_URL_BASE - .replace("", secret) - .replace("", selectedEventId); - Assert.assertEquals(invitationUrl, registrationLinkWithQRCode.getRegistrationLinkUrl()); - registrationLinkWithQRCode.clickOkButtonOrThrow(); - } /** * Verifies settings storage support for regatta overview. Checks the precedences of context specific and global