mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-23 22:19:13 +00:00
Bug 4819: Updates POs and selenium tests to work with the changed
tracking UIs
This commit is contained in:
+3
-1
@@ -136,7 +136,7 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel {
|
||||
SecuredDomainType.TRACKED_RACE);
|
||||
tableAndConfigurationPanel.add(buttonPanel);
|
||||
buttonPanel.addUnsecuredAction(stringMessages.refresh(), () -> connectionsTable.refreshTracTracConnectionList());
|
||||
buttonPanel.addCreateAction(stringMessages.addTracTracConnection(),
|
||||
Button addCreateAction = buttonPanel.addCreateAction(stringMessages.addTracTracConnection(),
|
||||
() -> new EditTracTracConnectionDialog(new TracTracConfigurationWithSecurityDTO(),
|
||||
new DialogCallback<TracTracConfigurationWithSecurityDTO>() {
|
||||
@Override
|
||||
@@ -164,6 +164,7 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel {
|
||||
public void cancel() {
|
||||
}
|
||||
}, userService, errorReporter).show());
|
||||
addCreateAction.ensureDebugId("AddConnectionButton");
|
||||
final Button removeButton = buttonPanel.addRemoveAction(stringMessages.remove(), () -> {
|
||||
sailingService.deleteTracTracConfiguration(connectionsTable.getSelectionModel().getSelectedObject(),
|
||||
new AsyncCallback<Void>() {
|
||||
@@ -185,6 +186,7 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel {
|
||||
loadingMessageLabel.setText(stringMessages.loading());
|
||||
fillRaces(sailingService, showHiddenRacesCheckbox.getValue());
|
||||
});
|
||||
listRacesButton.ensureDebugId("ListRacesButton");
|
||||
listRacesButton.setEnabled(false);
|
||||
removeButton.setEnabled(false);
|
||||
|
||||
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package com.sap.sailing.selenium.pages.adminconsole.tractrac;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
|
||||
import com.sap.sailing.selenium.core.BySeleniumId;
|
||||
import com.sap.sailing.selenium.core.FindBy;
|
||||
import com.sap.sailing.selenium.pages.common.DataEntryDialogPO;
|
||||
|
||||
public class AddTracTracConnectionDialogPO extends DataEntryDialogPO {
|
||||
|
||||
// TODO [D049941]: Prefix the Ids with the component (e.g. "Button")
|
||||
@FindBy(how = BySeleniumId.class, using = "LiveURITextBox")
|
||||
private WebElement liveURITextBox;
|
||||
|
||||
@FindBy(how = BySeleniumId.class, using = "StoredURITextBox")
|
||||
private WebElement storedURITextBox;
|
||||
|
||||
@FindBy(how = BySeleniumId.class, using = "JsonURLTextBox")
|
||||
private WebElement jsonURLTextBox;
|
||||
|
||||
protected AddTracTracConnectionDialogPO(WebDriver driver, WebElement element) {
|
||||
super(driver, element);
|
||||
}
|
||||
|
||||
public void setJsonUrl(String jsonUrl) {
|
||||
jsonURLTextBox.clear();
|
||||
jsonURLTextBox.sendKeys(jsonUrl);
|
||||
}
|
||||
}
|
||||
+25
-39
@@ -74,16 +74,6 @@ public class TracTracEventManagementPanelPO extends PageArea {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO [D049941]: Prefix the Ids with the component (e.g. "Button")
|
||||
@FindBy(how = BySeleniumId.class, using = "LiveURITextBox")
|
||||
private WebElement liveURITextBox;
|
||||
|
||||
@FindBy(how = BySeleniumId.class, using = "StoredURITextBox")
|
||||
private WebElement storedURITextBox;
|
||||
|
||||
@FindBy(how = BySeleniumId.class, using = "JsonURLTextBox")
|
||||
private WebElement jsonURLTextBox;
|
||||
|
||||
@FindBy(how = BySeleniumId.class, using = "ListRacesButton")
|
||||
private WebElement listRacesButton;
|
||||
|
||||
@@ -111,6 +101,12 @@ public class TracTracEventManagementPanelPO extends PageArea {
|
||||
@FindBy(how = BySeleniumId.class, using = "TrackedRacesListComposite")
|
||||
private WebElement trackedRacesListComposite;
|
||||
|
||||
@FindBy(how = BySeleniumId.class, using = "AddConnectionButton")
|
||||
private WebElement addConnectionButton;
|
||||
|
||||
@FindBy(how = BySeleniumId.class, using = "TracTracConfigurationWithSecurityDTOTable")
|
||||
private WebElement configurationTable;
|
||||
|
||||
/**
|
||||
* <p></p>
|
||||
*
|
||||
@@ -123,40 +119,30 @@ public class TracTracEventManagementPanelPO extends PageArea {
|
||||
super(driver, element);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* <p>Lists all available trackable races for the given URL. The list of the races can be obtained via
|
||||
* {@link #getTrackableRaces()}.</p>
|
||||
*
|
||||
* @param url
|
||||
* The URL for which the races are to list.
|
||||
*/
|
||||
public void listTrackableRaces(String url) {
|
||||
listTrackableRaces("", "", url); //$NON-NLS-1$//$NON-NLS-2$
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>Lists all available trackable races for the given URL. The list of the races can be obtained via
|
||||
* {@link #getTrackableRaces()}.</p>
|
||||
*
|
||||
* @param url
|
||||
* The URL for which the races are to list.
|
||||
*/
|
||||
public void listTrackableRaces(String liveURI, String storedURI, String jsonURL) {
|
||||
this.liveURITextBox.clear();
|
||||
this.liveURITextBox.sendKeys(liveURI);
|
||||
|
||||
this.storedURITextBox.clear();
|
||||
this.storedURITextBox.sendKeys(storedURI);
|
||||
|
||||
this.jsonURLTextBox.clear();
|
||||
this.jsonURLTextBox.sendKeys(jsonURL);
|
||||
public void addConnectionAndListTrackableRaces(String url) {
|
||||
AddTracTracConnectionDialogPO dialog = addConnection();
|
||||
dialog.setJsonUrl(url);
|
||||
dialog.pressOk();
|
||||
CellTablePO<DataEntryPO> tablePO = getConfigurationTable();
|
||||
tablePO.waitForTableToShowData();
|
||||
tablePO.selectEntries(entry -> {
|
||||
return url.equals(entry.getColumnContent("JSON URL"));
|
||||
}, () -> false);
|
||||
|
||||
this.listRacesButton.click();
|
||||
|
||||
waitForAjaxRequests();
|
||||
}
|
||||
|
||||
public AddTracTracConnectionDialogPO addConnection() {
|
||||
addConnectionButton.click();
|
||||
final WebElement dialog = findElementBySeleniumId(this.driver, "EditTracTracConnectionDialog");
|
||||
return new AddTracTracConnectionDialogPO(this.driver, dialog);
|
||||
}
|
||||
|
||||
private CellTablePO<DataEntryPO> getConfigurationTable() {
|
||||
return new GenericCellTablePO<>(this.driver, this.configurationTable, DataEntryPO.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>Returns the list of all available trackable races. This list will be empty if no race is available or if no
|
||||
* race was specified before.</p>
|
||||
|
||||
+13
-4
@@ -5,6 +5,8 @@ import org.junit.Test;
|
||||
import static org.hamcrest.core.Is.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import org.junit.Before;
|
||||
|
||||
import com.sap.sailing.selenium.pages.adminconsole.AdminConsolePage;
|
||||
import com.sap.sailing.selenium.pages.adminconsole.tractrac.TracTracEventManagementPanelPO;
|
||||
import com.sap.sailing.selenium.test.AbstractSeleniumTest;
|
||||
@@ -19,6 +21,13 @@ public class TestRaceFilterForTracTracEvents extends AbstractSeleniumTest {
|
||||
private static final String BMW_CUP_JSON_URL =
|
||||
"http://kml.skitrac.traclive.dk/events/event_20120803_BMWCup/jsonservice.php"; //$NON-NLS-1$
|
||||
|
||||
@Override
|
||||
@Before
|
||||
public void setUp() {
|
||||
clearState(getContextRoot());
|
||||
super.setUp();
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>Test with no filter at all, which means we expect all TracTrac races are displayed for a given event.</p>
|
||||
*/
|
||||
@@ -26,7 +35,7 @@ public class TestRaceFilterForTracTracEvents extends AbstractSeleniumTest {
|
||||
public void testNoFilter() {
|
||||
AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot());
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL);
|
||||
assertThat(tracTracEvents.getTrackableRaces().size(), is(12));
|
||||
}
|
||||
|
||||
@@ -37,7 +46,7 @@ public class TestRaceFilterForTracTracEvents extends AbstractSeleniumTest {
|
||||
public void testPartialFilter() {
|
||||
AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot());
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.setFilterForTrackableRaces("BMW Cup Race 1"); //$NON-NLS-1$
|
||||
assertThat(tracTracEvents.getTrackableRaces().size(), is(5));
|
||||
}
|
||||
@@ -49,7 +58,7 @@ public class TestRaceFilterForTracTracEvents extends AbstractSeleniumTest {
|
||||
public void testExactFilter() {
|
||||
AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot());
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.setFilterForTrackableRaces("BMW Cup Race 12"); //$NON-NLS-1$
|
||||
assertThat(tracTracEvents.getTrackableRaces().size(), is(1));
|
||||
}
|
||||
@@ -61,7 +70,7 @@ public class TestRaceFilterForTracTracEvents extends AbstractSeleniumTest {
|
||||
public void testNoneMatchingFilter() {
|
||||
AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot());
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.setFilterForTrackableRaces("BMW Cup Race 18"); //$NON-NLS-1$
|
||||
assertThat(tracTracEvents.getTrackableRaces().size(), is(0));
|
||||
}
|
||||
|
||||
+1
-1
@@ -259,7 +259,7 @@ public class TestRefreshableSelectionModel extends AbstractSeleniumTest {
|
||||
|
||||
// Start the tracking for the races and wait until they are ready to use
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(IDM_5O5_2013_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(IDM_5O5_2013_JSON_URL);
|
||||
tracTracEvents.setReggataForTracking(this.regatta);
|
||||
tracTracEvents.setTrackSettings(false, false, false);
|
||||
tracTracEvents.startTrackingForRaces(this.trackableRaces);
|
||||
|
||||
+1
-1
@@ -129,7 +129,7 @@ public class TestSmartphoneTrackingEventManagementPanel extends AbstractSelenium
|
||||
|
||||
// Start the tracking for the races and wait until they are ready to use
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(IDM_5O5_2013_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(IDM_5O5_2013_JSON_URL);
|
||||
tracTracEvents.setReggataForTracking(this.regatta);
|
||||
tracTracEvents.setTrackSettings(false, false, false);
|
||||
tracTracEvents.startTrackingForRaces(this.trackableRaces);
|
||||
|
||||
+3
-3
@@ -63,7 +63,7 @@ public class TestStartAndStopTrackingForTracTracEvents extends AbstractSeleniumT
|
||||
RegattaStructureManagementPanelPO regattaStructure = adminConsole.goToRegattaStructure();
|
||||
regattaStructure.createRegatta(bmwCupDescriptor);
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.setReggataForTracking(bmwCupDescriptor);
|
||||
tracTracEvents.setTrackSettings(false, false, false);
|
||||
tracTracEvents.startTrackingForRace(this.trackableRace);
|
||||
@@ -81,7 +81,7 @@ public class TestStartAndStopTrackingForTracTracEvents extends AbstractSeleniumT
|
||||
RegattaStructureManagementPanelPO regattaStructure = adminConsole.goToRegattaStructure();
|
||||
regattaStructure.createRegatta(new RegattaDescriptor(BMW_CUP_EVENT, BMW_CUP_BOAT_CLASS));
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.setReggataForTracking(DEFAULT_REGATTA);
|
||||
tracTracEvents.setTrackSettings(false, false, false);
|
||||
tracTracEvents.startTrackingForRacesAndAcceptDefaultRegattaWarning(this.trackableRace);
|
||||
@@ -96,7 +96,7 @@ public class TestStartAndStopTrackingForTracTracEvents extends AbstractSeleniumT
|
||||
regattaStructure.createRegatta(bmwCupDescriptor);
|
||||
regattaStructure.createRegatta(idm2013Descriptor);
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.setReggataForTracking(idm2013Descriptor);
|
||||
tracTracEvents.setTrackSettings(false, false, false);
|
||||
tracTracEvents.startTrackingForRaceAndAwaitBoatClassError(this.trackableRace, IDM_2013_BOAT_CLASS);
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ public class TestAutoPlay extends AbstractSeleniumTest {
|
||||
String.format(BMW_RACE, 1));
|
||||
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL);
|
||||
RegattaDescriptor bmwCupDescriptor = new RegattaDescriptor(BMW_CUP_EVENT, BMW_CUP_BOAT_CLASS);
|
||||
tracTracEvents.setReggataForTracking(bmwCupDescriptor);
|
||||
tracTracEvents.setTrackSettings(true, false, false);
|
||||
|
||||
+1
-1
@@ -140,7 +140,7 @@ public class TestColumnsInLeaderboard extends AbstractSeleniumTest {
|
||||
*/
|
||||
private void startTrackingRaceAndStopWhenFinished(AdminConsolePage adminConsole) {
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(KIELER_WOCHE_2013_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(KIELER_WOCHE_2013_JSON_URL);
|
||||
tracTracEvents.setReggataForTracking(this.regatta);
|
||||
tracTracEvents.setTrackSettings(false, false, false);
|
||||
tracTracEvents.startTrackingForRace(this.trackableRace);
|
||||
|
||||
+1
-1
@@ -204,7 +204,7 @@ public class TestLeaderboardConfiguration extends AbstractSeleniumTest {
|
||||
|
||||
// Start the tracking for the races and wait until they are ready to use
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(IDM_5O5_2013_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(IDM_5O5_2013_JSON_URL);
|
||||
tracTracEvents.setReggataForTracking(this.regatta);
|
||||
tracTracEvents.setTrackSettings(false, false, false);
|
||||
tracTracEvents.startTrackingForRaces(trackableRaces);
|
||||
|
||||
+1
-1
@@ -104,7 +104,7 @@ public class TestSwitchingOffStartOfRaceInference extends AbstractSeleniumTest {
|
||||
regattaDetails.deleteSeries("Default");
|
||||
// Start the tracking for the races and wait until they are ready to use
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.setReggataForTracking(this.regatta);
|
||||
tracTracEvents.setTrackSettings(false, false, false);
|
||||
tracTracEvents.startTrackingForRace(this.trackableRace);
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ public class TestLeaderboardEditing extends AbstractSeleniumTest {
|
||||
private void startTrackingRaceAndWait(AdminConsolePage adminConsole, String jsonUrl, TrackableRaceDescriptor trackableRace,
|
||||
TrackedRaceDescriptor trackedRace, long waitingTime) {
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(jsonUrl);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(jsonUrl);
|
||||
tracTracEvents.setTrackSettings(false, true, false);
|
||||
tracTracEvents.startTrackingForRace(trackableRace);
|
||||
TrackedRacesListPO trackedRacesList = tracTracEvents.getTrackedRacesList();
|
||||
|
||||
+1
-1
@@ -340,7 +340,7 @@ public class SettingsTest extends AbstractSeleniumTest {
|
||||
TrackedRaceDescriptor trackedRace = new TrackedRaceDescriptor(BMW_CUP_REGATTA, BMW_CUP_BOAT_CLASS,
|
||||
String.format(BMW_RACE, 1));
|
||||
TracTracEventManagementPanelPO tracTracEvents = adminConsole.goToTracTracEvents();
|
||||
tracTracEvents.listTrackableRaces(BMW_CUP_JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(BMW_CUP_JSON_URL);
|
||||
RegattaDescriptor bmwCupDescriptor = new RegattaDescriptor(BMW_CUP_EVENT, BMW_CUP_BOAT_CLASS);
|
||||
tracTracEvents.setReggataForTracking(bmwCupDescriptor);
|
||||
tracTracEvents.setTrackSettings(true, false, false);
|
||||
|
||||
+1
-1
@@ -124,7 +124,7 @@ public class SimulatorOverlayTest extends AbstractSeleniumTest {
|
||||
}
|
||||
|
||||
private void trackRacesFor49er(final RegattaDescriptor regattaDescriptor, final TracTracEventManagementPanelPO tracTracEvents) {
|
||||
tracTracEvents.listTrackableRaces(JSON_URL);
|
||||
tracTracEvents.addConnectionAndListTrackableRaces(JSON_URL);
|
||||
tracTracEvents.setReggataForTracking(regattaDescriptor);
|
||||
tracTracEvents.setTrackSettings(true, false, false);
|
||||
tracTracEvents.setFilterForTrackableRaces("(49er)");
|
||||
|
||||
Reference in New Issue
Block a user