49 questionDialogValues({value}) {
54 questionDialogValues(values) {
59 fixSolution(solution) {
94 if (function ==
"setupAndStart") {
96 }
else if ((function ==
"leftClick") || (function ==
"leftClickData")) {
98 }
else if (function ==
"leftClickControl") {
100 }
else if (function ==
"leftClickShift") {
102 }
else if (function ==
"rightClick") {
104 }
else if (function ==
"rightClickControl") {
106 }
else if (function ==
"rightClickShift") {
108 }
else if (function ==
"leftClickOffset") {
110 }
else if (function ==
"typeKey") {
112 }
else if (function ==
"moveElementHorizontal") {
114 }
else if (function ==
"moveElementVertical") {
116 }
else if (function ==
"moveElement") {
118 }
else if (function ==
"contextualMenuOperation") {
120 }
else if (function ==
"protectElements") {
122 }
else if (function ==
"waitDeleteWarning") {
124 }
else if (function ==
"modifyAttribute") {
126 }
else if (function ==
"modifyAttributeOverlapped") {
128 }
else if (function ==
"modifyBoolAttribute") {
130 }
else if (function ==
"modifyBoolAttributeOverlapped") {
132 }
else if (function ==
"modifyColorAttribute") {
134 }
else if (function ==
"modifyColorAttributeOverlapped") {
136 }
else if (function ==
"modifyVClassDialog_NoDisallowAll") {
138 }
else if (function ==
"modifyVClassDialogOverlapped_NoDisallowAll") {
140 }
else if (function ==
"modifyVClassDialog_DisallowAll") {
142 }
else if (function ==
"modifyVClassDialogOverlapped_DisallowAll") {
144 }
else if (function ==
"modifyVClassDialog_Cancel") {
146 }
else if (function ==
"modifyVClassDialogOverlapped_Cancel") {
148 }
else if (function ==
"modifyVClassDialog_Reset") {
150 }
else if (function ==
"modifyVClassDialogOverlapped_Reset") {
152 }
else if (function ==
"modifyVTypeDialogAttribute") {
154 }
else if (function ==
"createConnection") {
156 }
else if (function ==
"createCrossing") {
158 }
else if (function ==
"modifyCrossingDefaultValue") {
160 }
else if (function ==
"modifyCrossingDefaultBoolValue") {
162 }
else if (function ==
"crossingClearEdges") {
164 }
else if (function ==
"crossingInvertEdges") {
166 }
else if (function ==
"createConnectionConflict") {
168 }
else if (function ==
"createConnectionYield") {
170 }
else if (function ==
"saveConnectionEdit") {
172 }
else if (function ==
"fixCrossings") {
174 }
else if (function ==
"fixStoppingPlace") {
176 }
else if (function ==
"fixRoute") {
178 }
else if (function ==
"createTLS") {
180 }
else if (function ==
"createTLSOverlapped") {
182 }
else if (function ==
"copyTLS") {
184 }
else if (function ==
"joinTSL") {
186 }
else if (function ==
"disJoinTLS") {
188 }
else if (function ==
"deleteTLS") {
190 }
else if (function ==
"modifyTLSTable") {
192 }
else if (function ==
"resetSingleTLSPhases") {
194 }
else if (function ==
"resetAllTLSPhases") {
196 }
else if (function ==
"pressTLSPhaseButton") {
198 }
else if (function ==
"addDefaultPhase") {
200 }
else if (function ==
"addDuplicatePhase") {
202 }
else if (function ==
"addRedPhase") {
204 }
else if (function ==
"addYellowPhase") {
206 }
else if (function ==
"addGreenPhase") {
208 }
else if (function ==
"addGreenPriorityPhase") {
210 }
else if (function ==
"tlsDeletePhase") {
212 }
else if (function ==
"tlsMoveUp") {
214 }
else if (function ==
"tlsMoveDown") {
216 }
else if (function ==
"tlsCleanStates") {
218 }
else if (function ==
"tlsAddStates") {
220 }
else if (function ==
"tlsGroupSignal") {
222 }
else if (function ==
"tlsUngroupSignal") {
224 }
else if (function ==
"checkParameters") {
226 }
else if (function ==
"checkParametersOverlapped") {
228 }
else if (function ==
"checkDoubleParameters") {
230 }
else if (function ==
"checkDoubleParametersOverlapped") {
232 }
else if (function ==
"changeEditMode") {
234 }
else if (function ==
"changeSupermode") {
236 }
else if (function ==
"changeMode") {
238 }
else if (function ==
"changeElement") {
240 }
else if (function ==
"changePlan") {
242 }
else if (function ==
"computeJunctions") {
244 }
else if (function ==
"computeJunctionsVolatileOptions") {
246 }
else if (function ==
"selectAdditionalChild") {
248 }
else if (function ==
"createRectangledShape") {
250 }
else if (function ==
"createSquaredShape") {
252 }
else if (function ==
"createLineShape") {
254 }
else if (function ==
"createMeanData") {
256 }
else if (function ==
"deleteMeanData") {
258 }
else if (function ==
"copyMeanData") {
260 }
else if (function ==
"saveExistentShortcut") {
262 }
else if (function ==
"checkUndoRedo") {
264 }
else if (function ==
"delete") {
266 }
else if (function ==
"selection") {
268 }
else if (function ==
"selectNetworkItems") {
270 }
else if (function ==
"lockSelection") {
272 }
else if (function ==
"selectionRectangle") {
274 }
else if (function ==
"createDataSet") {
276 }
else if (function ==
"createDataInterval") {
278 }
else if (function ==
"undo") {
280 }
else if (function ==
"redo") {
282 }
else if (function ==
"quit") {
284 }
else if (function.size() > 0) {
285 std::cout <<
"Function " + function +
" not implemented in InternalTestStep" << std::endl;
292 FXSelector messageID,
Category category,
const std::string description) :
293 myTestSystem(testSystem),
294 myMessageType(messageType),
295 myMessageID(messageID),
296 myCategory(category),
297 myDescription(description) {
304 Category category, FXEvent* event,
const bool updateView,
305 const std::string description) :
306 myTestSystem(testSystem),
307 myMessageType(messageType),
308 myCategory(category),
309 myUpdateView(updateView),
310 myDescription(description),
318 const std::string description) :
319 myTestSystem(parent->myTestSystem),
321 myDescription(description) {
330 const std::string description) :
331 myTestSystem(parent->myTestSystem),
332 myMessageType(messageType),
333 myDescription(description),
352 delete modalDialogTestStep;
406const std::vector<const InternalTestStep*>&
421 if (rowText.find(
"netedit.setupAndStart") != std::string::npos) {
422 return "setupAndStart";
423 }
else if (rowText.compare(0, 8,
"netedit.") != 0) {
427 std::string functionName;
429 std::string rowStr = rowText;
431 if (rowText.empty() || (rowText.front() ==
'(') || (rowText.back() !=
')')) {
432 writeError(
"parseStep", 0,
"function(arguments)");
436 while (rowStr.size() > 0) {
437 if (rowStr.front() ==
'(') {
440 functionName.push_back(rowStr.front());
441 rowStr.erase(rowStr.begin());
445 functionName = functionName.substr(8);
447 if (rowStr.size() < 2) {
448 writeError(
"parseStep", 0,
"function(arguments)");
452 rowStr.erase(rowStr.begin());
465 bool inQuotes =
false;
466 for (
size_t i = 0; i < arguments.length(); ++i) {
467 char c = arguments[i];
468 if (c ==
'\"' || c ==
'\'') {
470 inQuotes = !inQuotes;
471 current.push_back(c);
472 }
else if (c ==
',' && !inQuotes) {
474 if (!current.empty()) {
476 size_t start = current.find_first_not_of(
" \t");
477 size_t end = current.find_last_not_of(
" \t");
478 myArguments.push_back(current.substr(start, end - start + 1));
486 if (!current.empty()) {
487 size_t start = current.find_first_not_of(
" \t");
488 size_t end = current.find_last_not_of(
" \t");
489 myArguments.push_back(current.substr(start, end - start + 1));
493 writeError(
"parseArguments", 0,
"<\"argument\", \"argument\">");
503 std::cout <<
"TestFunctions: Netedit opened successfully" << std::endl;
504 std::cout <<
"Finding reference" << std::endl;
505 std::cout <<
"TestFunctions: 'reference.png' found. Position: " <<
516 writeError(
"leftClick", 0,
"<reference, position>");
532 writeError(
"leftClickOffset", 0,
"<reference, position, int, int>");
550 writeError(
"moveElementHorizontal", 0,
"<reference, position, radius>");
560 buildMouseDragDrop(position, radius.getRight(), 0, position, radius.getLeft(), 0,
"");
571 writeError(
"moveElementVertical", 0,
"<reference, position, radius>");
581 buildMouseDragDrop(position, radius.getRight(), 0, position, 0, radius.getDown(),
"");
592 writeError(
"moveElement", 0,
"<reference, position, radius>");
602 buildMouseDragDrop(position, radius.getRight(), 0, position, radius.getRight(), radius.getDown(),
"");
604 buildMouseDragDrop(position, radius.getRight(), radius.getDown(), position, radius.getLeft(), radius.getDown(),
"");
605 buildMouseDragDrop(position, radius.getLeft(), radius.getDown(), position, radius.getLeft(), radius.getUp(),
"");
624 writeError(
"contextualMenuOperation", 0,
"<reference, position, contextualMenuOperations>");
632 for (
int i = 0; i < contextualMenu.getMainMenuPosition(); i++) {
638 if (contextualMenu.getSubMenuAPosition() > 0) {
639 for (
int i = 0; i < contextualMenu.getSubMenuAPosition(); i++) {
646 if (contextualMenu.getSubMenuBPosition() > 0) {
647 for (
int i = 0; i < contextualMenu.getSubMenuBPosition(); i++) {
690 writeError(
"modifyAttribute", overlappedTabs,
"<int/attributeEnum, \"string\">");
701 writeError(
"modifyBoolAttribute", overlappedTabs,
"<int/attributeEnum>");
712 writeError(
"modifyColorAttribute", overlappedTabs,
"<int/attributeEnum>");
719 for (
int i = 0; i < 2; i++) {
723 for (
int i = 0; i < 6; i++) {
738 writeError(
"modifyVClassDialog_NoDisallowAll", overlappedTabs,
"<int/attributeEnum, int/attributeEnum>");
747 for (
int i = 0; i < vClass; i++) {
766 writeError(
"modifyVClassDialog_DisallowAll", overlappedTabs,
"<int/attributeEnum, int/attributeEnum>");
801 writeError(
"modifyVClassDialog_Cancel", overlappedTabs,
"<int/attributeEnum, int/attributeEnum>");
835 writeError(
"modifyVClassDialog_Reset", overlappedTabs,
"<int/attributeEnum, int/attributeEnum>");
862 for (
int i = 0; i < 2; i++) {
875 writeError(
"modifyVTypeDialogAttribute", 0,
"<str, int/attributeEnum, str>");
882 if (operation ==
"open") {
888 std::cout << value << std::endl;
892 for (
int i = 0; i < tabs; i++) {
899 for (
const char c : value) {
906 if (operation ==
"close") {
919 writeError(
"createConnection", 0,
"<reference, position, position>");
951 writeError(
"modifyCrossingDefaultValue", 0,
"<int, value>");
963 writeError(
"modifyCrossingDefaultBoolValue", 0,
"<int>");
1046 writeError(
"createTLS", overlappedTabs,
"<>");
1105 writeError(
"modifyTLSTable", 0,
"<row, int/attributeEnum, \"string\">");
1115 std::cout << text << std::endl;
1123 writeError(
"resetSingleTLSPhases", 0,
"<bool>");
1137 writeError(
"resetAllTLSPhases", 0,
"<bool>");
1151 writeError(
"pressTLSPhaseButton", 0,
"<int/attributeEnum>");
1161 writeError(
"addPhase" + type, 0,
"<int/attributeEnum>");
1167 if (type ==
"default") {
1169 }
else if (type ==
"duplicate") {
1171 }
else if (type ==
"red") {
1173 }
else if (type ==
"yellow") {
1175 }
else if (type ==
"green") {
1177 }
else if (type ==
"priorityGreen") {
1179 }
else if (type ==
"deletePhase") {
1181 }
else if (type ==
"moveUp") {
1183 }
else if (type ==
"moveDown") {
1193 writeError(
"pressTLSButton" + type, 0,
"<>");
1197 if (type ==
"cleanStates") {
1199 }
else if (type ==
"addStates") {
1201 }
else if (type ==
"groupSignal") {
1203 }
else if (type ==
"ungroupSignal") {
1213 writeError(
"checkParameters", overlappedTabs,
"<int/attributeEnum>");
1222 modifyStringAttribute(tabs, overlappedTabs,
"key1duplicated=value1|key1duplicated=value2|key3=value3");
1223 modifyStringAttribute(tabs, overlappedTabs,
"key1=valueDuplicated|key2=valueDuplicated|key3=valueDuplicated");
1237 writeError(
"checkDoubleParameters", overlappedTabs,
"<int/attributeEnum>");
1261 writeError(
"changeEditMode", 0,
"<int/attributeEnum>");
1265 if (
myArguments[0] ==
"netedit.attrs.modes.network.grid") {
1267 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.junctionShape") {
1269 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.spreadVehicle") {
1271 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.showDemandElements") {
1273 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.selectLane") {
1275 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.showConnections") {
1277 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.hideConnetions") {
1279 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.showSubAdditionals") {
1281 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.showTAZElements") {
1283 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.automaticSelectJunctions") {
1285 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.applyAllPhases") {
1287 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.mergingJunction") {
1289 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.showBubbles") {
1291 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.moveElevation") {
1293 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.chainMode") {
1295 }
else if (
myArguments[0] ==
"netedit.attrs.modes.network.twoWayMode") {
1298 }
else if (
myArguments[0] ==
"netedit.attrs.modes.demand.grid") {
1300 }
else if (
myArguments[0] ==
"netedit.attrs.modes.demand.junctionShape") {
1302 }
else if (
myArguments[0] ==
"netedit.attrs.modes.demand.spreadVehicle") {
1304 }
else if (
myArguments[0] ==
"netedit.attrs.modes.demand.showNonInspected") {
1306 }
else if (
myArguments[0] ==
"netedit.attrs.modes.demand.showShapes") {
1308 }
else if (
myArguments[0] ==
"netedit.attrs.modes.demand.showAllTrips") {
1310 }
else if (
myArguments[0] ==
"netedit.attrs.modes.demand.showPersonPlans") {
1312 }
else if (
myArguments[0] ==
"netedit.attrs.modes.demand.lockPerson") {
1314 }
else if (
myArguments[0] ==
"netedit.attrs.modes.demand.showContainerPlans") {
1316 }
else if (
myArguments[0] ==
"netedit.attrs.modes.demand.lockContainer") {
1318 }
else if (
myArguments[0] ==
"netedit.attrs.modes.demand.showOverlappedRoutes") {
1321 }
else if (
myArguments[0] ==
"netedit.attrs.modes.data.junctionShape") {
1323 }
else if (
myArguments[0] ==
"netedit.attrs.modes.data.showAdditionals") {
1325 }
else if (
myArguments[0] ==
"netedit.attrs.modes.data.showShapes") {
1327 }
else if (
myArguments[0] ==
"netedit.attrs.modes.data.showDemandElements") {
1329 }
else if (
myArguments[0] ==
"netedit.attrs.modes.data.TAZRelDrawingMode") {
1331 }
else if (
myArguments[0] ==
"netedit.attrs.modes.data.TAZFill") {
1333 }
else if (
myArguments[0] ==
"netedit.attrs.modes.data.TAZRelOnlyFrom") {
1335 }
else if (
myArguments[0] ==
"netedit.attrs.modes.data.TAZRelOnlyTo") {
1352 if (savingType ==
"network") {
1354 }
else if (savingType ==
"additionals") {
1356 }
else if (savingType ==
"demands") {
1358 }
else if (savingType ==
"datas") {
1360 }
else if (savingType ==
"meanDatas") {
1362 }
else if (savingType ==
"sumoConfig") {
1364 }
else if (savingType ==
"neteditConfig") {
1376 writeError(
"checkUndoRedo", 0,
"<referencePosition>");
1378 const int numUndoRedos = 9;
1398 writeError(
"selection", 0,
"<selection operation>");
1403 if (selectionType ==
"default") {
1405 }
else if (selectionType ==
"save") {
1407 }
else if (selectionType ==
"load") {
1409 }
else if (selectionType ==
"add") {
1411 }
else if (selectionType ==
"remove") {
1413 }
else if (selectionType ==
"keep") {
1415 }
else if (selectionType ==
"replace") {
1417 }
else if (selectionType ==
"clear") {
1419 }
else if (selectionType ==
"invert") {
1421 }
else if (selectionType ==
"invertData") {
1423 }
else if (selectionType ==
"delete") {
1429 for (
int i = 0; i < numTabs; i++) {
1432 if (selectionType ==
"save") {
1435 }
else if (selectionType ==
"load") {
1449 writeError(
"selectNetworkItems", 0,
"<element/int, \"attribute\", \"value\">");
1461 for (
const char c :
"Network elements") {
1465 std::cout <<
"Network elements" << std::endl;
1471 for (
const char c : element) {
1475 std::cout << element << std::endl;
1481 for (
const char c : attribute) {
1485 std::cout << attribute << std::endl;
1491 for (
const char c : value) {
1495 std::cout << value << std::endl;
1505 writeError(
"lockSelection", 0,
"<element/int, \"attribute\", \"value\">");
1551 writeError(
"selectionRectangle", 0,
"<viewPosition, viewPosition>");
1567 writeError(
"createDataSet", 0,
"<dataSetId>");
1572 std::cout << dataSetId << std::endl;
1576 for (
int i = 0; i < 2; i++) {
1582 for (
const char c : dataSetId) {
1596 writeError(
"createDataInterval", 0,
"<begin, end>");
1602 std::cout << begin << std::endl;
1603 std::cout << end << std::endl;
1607 for (
int i = 0; i < 6; i++) {
1615 for (
const char c : begin) {
1621 for (
const char c : end) {
1635 writeError(
"undo", 0,
"<referencePosition, int>");
1646 writeError(
"redo", 0,
"<referencePosition, int>");
1662 if (supermode ==
"network") {
1664 }
else if (supermode ==
"demand") {
1666 }
else if (supermode ==
"data") {
1669 writeError(
"supermode", 0,
"<network/demand/data>");
1689 if (mode ==
"inspect") {
1691 }
else if (mode ==
"delete") {
1693 }
else if (mode ==
"select") {
1695 }
else if (mode ==
"move") {
1697 }
else if ((mode ==
"createEdge") || (mode ==
"edgeData")) {
1699 }
else if ((mode ==
"trafficLight") || (mode ==
"type") || (mode ==
"TLS")) {
1701 }
else if ((mode ==
"connection") || (mode ==
"container")) {
1703 }
else if ((mode ==
"prohibition") || (mode ==
"containerPlan")) {
1705 }
else if ((mode ==
"crossing") || (mode ==
"route") || (mode ==
"edgeRelData")) {
1707 }
else if ((mode ==
"additional") || (mode ==
"stop")) {
1709 }
else if ((mode ==
"wire") || (mode ==
"routeDistribution")) {
1711 }
else if ((mode ==
"taz") || (mode ==
"TAZ") || (mode ==
"TAZRelData")) {
1713 }
else if ((mode ==
"shape") || (mode ==
"person")) {
1715 }
else if ((mode ==
"decal") || (mode ==
"typeDistribution")) {
1717 }
else if (mode ==
"personPlan") {
1719 }
else if (mode ==
"vehicle") {
1721 }
else if (mode ==
"meanData") {
1724 writeError(
"changeMode", 0,
"<inspect/delete/select/move...>");
1734 writeError(
"changeElement", 0,
"<\"frame\", \"string\">");
1740 if (frame ==
"additionalFrame") {
1742 }
else if (frame ==
"shapeFrame") {
1744 }
else if (frame ==
"vehicleFrame") {
1746 }
else if (frame ==
"routeFrame") {
1748 }
else if (frame ==
"personFrame") {
1750 }
else if (frame ==
"containerFrame") {
1752 }
else if (frame ==
"personPlanFrame") {
1754 }
else if (frame ==
"containerPlanFrame") {
1756 }
else if (frame ==
"stopFrame") {
1758 }
else if (frame ==
"meanDataFrame") {
1761 WRITE_ERRORF(
"Invalid frame '%' used in function changeElement", frame);
1765 std::cout << element << std::endl;
1769 for (
int i = 0; i < numTabs; i++) {
1773 for (
const char c : element) {
1789 writeError(
"changePlan", 0,
"<\"type\", \"plan\", true/false>");
1796 if ((type !=
"person") && (type !=
"container")) {
1797 WRITE_ERRORF(
"invalid plan type '%' used in changePlan()", type);
1809 for (
int i = 0; i < numTabs; i++) {
1813 for (
const char c : plan) {
1817 std::cout << plan << std::endl;
1839 writeError(
"computeJunctionsVolatileOptions", 0,
"<True/False>");
1858 writeError(
"selectAdditionalChild", 0,
"<int, int>");
1865 for (
int i = 0; i < tabs; i++) {
1869 for (
int i = 0; i < downs; i++) {
1887 writeError(
"createRectangledShape", 0,
"<viewPosition, sizeX, sizeY, true/false>");
1905 writeError(
"createSquaredShape", 0,
"<viewPosition, size, true/false>");
1924 writeError(
"createLineShape", 0,
"<viewPosition, sizeX, sizeY, true/false>");
2003 if (argument ==
"True") {
2005 }
else if (argument ==
"False") {
2015 if (argument ==
"True") {
2025 if (argument.size() < 2) {
2027 }
else if ((argument.front() != argument.back()) || ((argument.front() !=
'\'') && ((argument.front() !=
'\"')))) {
2037 std::string argumentParsed;
2038 for (
int i = 1; i < ((int)argument.size() - 1); i++) {
2039 argumentParsed.push_back(argument[i]);
2041 return argumentParsed;
2047 auto start = std::find_if_not(str.begin(), str.end(), isspace);
2048 auto end = std::find_if_not(str.rbegin(), str.rend(), isspace).base();
2050 return std::string(start, end);
2059 if (overlapping > 0) {
2060 WRITE_ERRORF(
"Invalid internal testStep function '%Ovelapped', requires '%' arguments ", function, expected);
2062 WRITE_ERRORF(
"Invalid internal testStep function '%', requires '%' arguments ", function, expected);
2076 const int sizeX,
const int sizeY,
const bool close,
2077 const bool line)
const {
2079 const int halfSizeX = int(sizeX * -0.5);
2080 const int halfSizeY = int(sizeY * -0.5);
2114 std::cout << value << std::endl;
2118 for (
int i = 0; i < (tabs + overlappedTabs); i++) {
2122 if (value.empty()) {
2125 for (
const char c : value) {
2139 for (
int i = 0; i < (tabs + overlappedTabs); i++) {
2156 std::cout <<
"TestFunctions: Clicked over position " <<
2162 for (
int i = 0; i < number; i++) {
2177 std::cout <<
"TestFunctions: Clicked over position " <<
2183 for (
int i = 0; i < number; i++) {
2189std::pair<FXint, FXString>
2191 std::pair<FXint, FXString> solution;
2193 if (key.size() == 1) {
2194 solution.first = FXint(key.front());
2195 solution.second.append(key.front());
2198 if (key ==
"backspace") {
2199 solution.first = KEY_BackSpace;
2200 solution.second =
"\b";
2201 }
else if (key ==
"space") {
2202 solution.first = KEY_space;
2203 }
else if (key ==
"tab") {
2204 solution.first = KEY_Tab;
2205 solution.second =
"\t";
2206 }
else if (key ==
"clear") {
2207 solution.first = KEY_Clear;
2208 }
else if (key ==
"enter" || key ==
"return") {
2209 solution.first = KEY_Return;
2210 solution.second =
"\n";
2211 }
else if (key ==
"pause") {
2212 solution.first = KEY_Pause;
2213 }
else if (key ==
"sys_req") {
2214 solution.first = KEY_Sys_Req;
2215 }
else if (key ==
"esc" || key ==
"escape") {
2216 solution.first = KEY_Escape;
2217 solution.second =
"\x1B";
2218 }
else if (key ==
"delete") {
2219 solution.first = KEY_Delete;
2220 solution.second =
"\x7F";
2221 }
else if (key ==
"multi_key") {
2222 solution.first = KEY_Multi_key;
2224 }
else if (key ==
"shift") {
2225 solution.first = KEY_Shift_L;
2226 }
else if (key ==
"control") {
2227 solution.first = KEY_Control_L;
2229 }
else if (key ==
"home") {
2230 solution.first = KEY_Home;
2231 }
else if (key ==
"left") {
2232 solution.first = KEY_Left;
2233 }
else if (key ==
"up") {
2234 solution.first = KEY_Up;
2235 }
else if (key ==
"right") {
2236 solution.first = KEY_Right;
2237 }
else if (key ==
"down") {
2238 solution.first = KEY_Down;
2239 }
else if (key ==
"prior" || key ==
"page_up") {
2240 solution.first = KEY_Page_Up;
2241 }
else if (key ==
"next" || key ==
"page_down") {
2242 solution.first = KEY_Page_Down;
2243 }
else if (key ==
"end") {
2244 solution.first = KEY_End;
2245 }
else if (key ==
"begin") {
2246 solution.first = KEY_Begin;
2248 }
else if (key ==
"f1") {
2250 }
else if (key ==
"f2") {
2252 }
else if (key ==
"f3") {
2254 }
else if (key ==
"f4") {
2256 }
else if (key ==
"f5") {
2258 }
else if (key ==
"f6") {
2260 }
else if (key ==
"f7") {
2262 }
else if (key ==
"f8") {
2264 }
else if (key ==
"f9") {
2266 }
else if (key ==
"f10") {
2268 }
else if (key ==
"f11" || key ==
"l1") {
2270 }
else if (key ==
"f12" || key ==
"l2") {
2274 solution.first = KEY_VoidSymbol;
2284 FXEvent* keyPressEvent =
new FXEvent();
2287 keyPressEvent->synthetic =
true;
2288 keyPressEvent->type = SEL_KEYPRESS;
2289 keyPressEvent->code = keyValues.first;
2290 keyPressEvent->text = keyValues.second;
2291 return keyPressEvent;
2298 FXEvent* keyPressEvent =
new FXEvent();
2301 keyPressEvent->synthetic =
true;
2302 keyPressEvent->type = SEL_KEYPRESS;
2303 keyPressEvent->code = keyValues.first;
2304 keyPressEvent->text = keyValues.second;
2306 return keyPressEvent;
2330 if (keyA ==
"shift") {
2331 pressEvent->state = SHIFTMASK;
2332 releaseEvent->state = SHIFTMASK;
2333 }
else if (keyA ==
"control") {
2334 pressEvent->state = CONTROLMASK;
2335 releaseEvent->state = CONTROLMASK;
2336 }
else if (keyA ==
"alt") {
2337 pressEvent->state = ALTMASK;
2338 releaseEvent->state = ALTMASK;
2351 if (keyA ==
"shift") {
2352 pressEvent->state = SHIFTMASK;
2353 releaseEvent->state = SHIFTMASK;
2354 }
else if (keyA ==
"control") {
2355 pressEvent->state = CONTROLMASK;
2356 releaseEvent->state = CONTROLMASK;
2357 }
else if (keyA ==
"alt") {
2358 pressEvent->state = ALTMASK;
2359 releaseEvent->state = ALTMASK;
2361 new InternalTestStep(parent, SEL_KEYPRESS, pressEvent,
"keys '" + keyA +
"' + '" + keyB +
"' pressed in dialog");
2362 new InternalTestStep(parent, SEL_KEYRELEASE, releaseEvent,
"keys '" + keyA +
"' + '" + keyB +
" pressed in dialog");
2368 const int offsetX,
const int offsetY,
2369 const std::string& button,
const std::string& keyModifier)
const {
2373 true,
"mouse moved to click position");
2375 if (button ==
"left") {
2378 true,
"mouse button " + button +
" pressed");
2381 true,
"mouse button " + button +
" released");
2382 }
else if (button ==
"center") {
2385 true,
"mouse button " + button +
" pressed");
2388 true,
"mouse button " + button +
" released");
2389 }
else if (button ==
"right") {
2392 true,
"mouse button " + button +
" pressed");
2395 true,
"mouse button " + button +
" released");
2402 const int offsetStartX,
const int offsetStartY,
2404 const int offsetEndX,
const int offsetEndY,
2405 const std::string& keyModifier)
const {
2411 true,
"mouse moved to click position (dragDrop)");
2414 buildMouseClickEvent(SEL_LEFTBUTTONPRESS, viewStartPosition, offsetStartX, offsetStartY, keyModifier, 1),
2415 true,
"mouse button left pressed (dragDrop)");
2417 for (
const auto& position : interpolationSteps) {
2420 true,
"mouse moved (dragDrop)");
2424 buildMouseClickEvent(SEL_LEFTBUTTONRELEASE, viewEndPosition, offsetEndX, offsetEndY, keyModifier, 1),
2425 true,
"mouse button left released (dragDrop)");
2431 const int offsetX,
const int offsetY,
const int clickedButton,
2432 const std::string& keyModifier,
const int numberOfClicks)
const {
2433 FXEvent* moveEvent =
new FXEvent();
2436 moveEvent->type = SEL_MOTION;
2437 moveEvent->synthetic =
true;
2442 moveEvent->click_x = 0;
2443 moveEvent->click_y = 0;
2444 moveEvent->moved =
true;
2445 moveEvent->rect = FXRectangle(0, 0, 0, 0);
2446 moveEvent->click_button = clickedButton;
2447 moveEvent->click_count = numberOfClicks;
2448 moveEvent->code = 0;
2450 if (keyModifier ==
"control") {
2451 moveEvent->state = CONTROLMASK;
2452 }
else if (keyModifier ==
"shift") {
2453 moveEvent->state = SHIFTMASK;
2454 }
else if (keyModifier ==
"leftButton") {
2455 moveEvent->state = LEFTBUTTONMASK;
2457 moveEvent->state = 0;
2467 const int offsetX,
const int offsetY,
const std::string& keyModifier,
2468 const int numberOfClicks)
const {
2469 FXEvent* clickEvent =
new FXEvent();
2472 clickEvent->type = type;
2473 clickEvent->synthetic =
true;
2480 clickEvent->click_count = numberOfClicks;
2481 clickEvent->moved =
false;
2482 clickEvent->rect = FXRectangle(0, 0, 0, 0);
2484 if ((type == SEL_LEFTBUTTONPRESS) || (type == SEL_LEFTBUTTONRELEASE)) {
2485 clickEvent->click_button = LEFTBUTTON;
2486 clickEvent->code = LEFTBUTTON;
2487 }
else if ((type == SEL_MIDDLEBUTTONPRESS) || (type == SEL_MIDDLEBUTTONRELEASE)) {
2488 clickEvent->click_button = MIDDLEBUTTON;
2489 clickEvent->code = MIDDLEBUTTON;
2490 }
else if ((type == SEL_RIGHTBUTTONPRESS) || (type == SEL_RIGHTBUTTONRELEASE)) {
2491 clickEvent->click_button = RIGHTBUTTON;
2492 clickEvent->code = RIGHTBUTTON;
2494 clickEvent->click_button = 0;
2495 clickEvent->code = 0;
2498 if (keyModifier ==
"control") {
2499 clickEvent->state = CONTROLMASK;
2500 }
else if (keyModifier ==
"shift") {
2501 clickEvent->state = SHIFTMASK;
2503 clickEvent->state = 0;
2511 const int offsetX,
const int offsetY,
2512 const std::string modifier)
const {
2513 if (modifier ==
"control") {
2514 std::cout <<
"TestFunctions: Clicked with Control key pressed over position " <<
2517 }
else if (modifier ==
"shift") {
2518 std::cout <<
"TestFunctions: Clicked with Shift key pressed over position " <<
2522 std::cout <<
"TestFunctions: Clicked over position " <<
@ MID_GNE_NETWORKVIEWOPTIONS_AUTOOPPOSITEEDGES
automatically create opposite edge
@ MID_GNE_LOCK_POLYGON
lock polygons
@ MID_HOTKEY_CTRL_Q_CLOSE
Main window closes.
@ MID_HOTKEY_SHIFT_F5_COMPUTEJUNCTIONS_VOLATILE
compute junctions with volatile options
@ MID_HOTKEY_CTRL_SHIFT_B_SAVEDATAELEMENTS
save Data Elements
@ MID_HOTKEY_F3_SUPERMODE_DEMAND
select demand supermode in netedit
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLPERSONPLANS
show all person plans
@ MID_GNE_UNLOCK_ALLELEMENTS
unlock all element
@ MID_GNE_DATAVIEWOPTIONS_TAZRELDRAWING
toggle TAZRel drawing
@ MID_HOTKEY_U_MODE_DECAL_TYPEDISTRIBUTION
hotkey for mode decal AND type distribution
@ MID_GNE_NETWORKVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_GNE_TLSFRAME_PHASES_ADDUNUSED
add unused states
@ MID_HOTKEY_CTRL_Y_REDO
Undo.
@ MID_GNE_NETWORKVIEWOPTIONS_MOVEELEVATION
move elevation instead of x,y
@ MID_GNE_LOCK_WIRE
lock wires
@ MID_GNE_NETWORKVIEWOPTIONS_HIDECONNECTIONS
hide connections
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWCONNECTIONS
show connections
@ MID_GNE_TLSTABLE_ADDPHASE
TLSTable button for add phase.
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYTO
toggle draw TAZRel only to
@ MID_GNE_LOCK_ALLELEMENTS
lock all element
@ MID_HOTKEY_F5_COMPUTE_NETWORK_DEMAND
compute Network in network mode and Demand elements in demand mode
@ MID_GNE_DATAVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_GNE_TLSTABLE_COPYPHASE
TLSTable button for copy phase.
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWTAZELEMENTS
show TAZ elements
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKPERSON
lock person
@ MID_GNE_LOCK_JPS_WALKABLEAREA
lock walkableAreas
@ MID_HOTKEY_Z_MODE_TAZ_TAZREL
hotkey for mode editing TAZ and TAZRel
@ MID_GNE_TLSTABLE_ADDPHASEALLGREENPRIORITY
TLSTable button for add phase green priority.
@ MID_GNE_DEMANDVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_GNE_LOCK_SELECTEDELEMENTS
lock selected element
@ MID_GNE_TLSFRAME_PHASES_CLEANUP
cleanup unused states
@ MID_GNE_TLSFRAME_PHASES_GROUPSTATES
group states
@ MID_HOTKEY_DEL
hot key delete selections or elements
@ MID_HOTKEY_A_MODE_STARTSIMULATION_ADDITIONALS_STOPS
hotkey for start simulation in SUMO and set editing mode additionals AND stops in netedit
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWGRID
show grid
@ MID_HOTKEY_CTRL_SHIFT_D_SAVEDEMANDELEMENTS
Save Demand Elements.
@ MID_HOTKEY_CTRL_S_STOPSIMULATION_SAVENETWORK
Stop the simulation in SUMO and save network in netedit.
@ MID_INTERNALTEST
execute internal test in modal dialog
@ MID_HOTKEY_D_MODE_SINGLESIMULATIONSTEP_DELETE
hotkey for perform a single simulation step in SUMO and set delete mode in netedit
@ MID_GNE_NETWORKVIEWOPTIONS_CHAINEDGES
create edges in chain mode
@ MID_GNE_DATAVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_GNE_LOCK_WALKINGAREA
lock walkingareas
@ MID_HOTKEY_C_MODE_CONNECT_CONTAINER
hotkey for mode connecting lanes AND container
@ MID_HOTKEY_H_MODE_PROHIBITION_CONTAINERPLAN
hotkey for mode prohibition AND container plan
@ MID_HOTKEY_W_MODE_WIRE_ROUTEDISTRIBUTION
hotkey for mode editing overhead wires AND route distributions
@ MID_HOTKEY_T_MODE_TLS_TYPE
hotkey for mode editing TLS AND Vehicle Types
@ MID_GNE_DEMANDVIEWOPTIONS_HIDESHAPES
hide shapes
@ MID_GNE_TLSFRAME_PHASES_UNGROUPSTATES
ungroup states
@ MID_GNE_LOCK_JPS_OBSTACLE
lock obstacles
@ MID_GNE_TLSTABLE_ADDPHASEALLYELLOW
TLSTable button for add phase yelllow.
@ MID_GNE_DATAVIEWOPTIONS_SHOWADDITIONALS
show additionals
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWBUBBLES
show junctions as bubbles
@ MID_GNE_TLSTABLE_TEXTFIELD
TLSTable textField.
@ MID_GNE_NETWORKVIEWOPTIONS_EXTENDSELECTION
extend selection
@ MID_GNE_TLSTABLE_ADDPHASEALLRED
TLSTable button for add phase red.
@ MID_HOTKEY_S_MODE_STOPSIMULATION_SELECT
hotkey for stop simulation in SUMO and set select mode in netedit
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWSUBADDITIONALS
show sub-additionals
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLCONTAINERPLANS
show all container plans
@ MID_GNE_LOCK_ADDITIONALELEMENT
lock additional elements
@ MID_GNE_TLSTABLE_MOVEDOWNPHASE
TLSTable button for move down phase.
@ MID_HOTKEY_F4_SUPERMODE_DATA
select data supermode in netedit
@ MID_GNE_LOCK_EDGE
lock edges
@ MID_HOTKEY_R_MODE_CROSSING_ROUTE_EDGERELDATA
hotkey for mode editing crossing, routes and edge rel datas
@ MID_GNE_DATAVIEWOPTIONS_TAZDRAWFILL
toggle draw TAZ fill
@ MID_HOTKEY_L_MODE_PERSONPLAN
hotkey for mode person plan
@ MID_HOTKEY_V_MODE_VEHICLE
hotkey for mode create vehicles
@ MID_HOTKEY_I_MODE_INSPECT
hotkey for mode inspecting object attributes
@ MID_GNE_TLSTABLE_ADDPHASEALLGREEN
TLSTable button for add phase green.
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_GNE_TLSTABLE_REMOVEPHASE
TLSTable button for remove phase.
@ MID_HOTKEY_CTRL_SHIFT_E_SAVENETEDITCONFIG
save netedit Config
@ MID_GNE_DEMANDVIEWOPTIONS_HIDENONINSPECTED
hide non-inspected demand element
@ MID_GNE_LOCK_CONNECTION
lock connections
@ MID_GNE_NETWORKVIEWOPTIONS_MERGEAUTOMATICALLY
don't ask before merging junctions
@ MID_HOTKEY_CTRL_SHIFT_M_SAVEMEANDATAELEMENTS
save Mean Datas
@ MID_GNE_NETWORKVIEWOPTIONS_CHANGEALLPHASES
change all phases
@ MID_GNE_TLSTABLE_MOVEUPPHASE
TLSTable button for move up phase.
@ MID_GNE_DATAVIEWOPTIONS_SHOWSHAPES
show shapes
@ MID_HOTKEY_E_MODE_EDGE_EDGEDATA
hotkey for mode adding edges AND edgeDatas
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYFROM
toggle draw TAZRel only from
@ MID_GNE_LOCK_LANE
lock lanes
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_GNE_DEMANDVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWOVERLAPPEDROUTES
show overlapped routes
@ MID_HOTKEY_CTRL_Z_UNDO
Redo.
@ MID_HOTKEY_CTRL_SHIFT_S_SAVESUMOCONFIG
save SUMOConfig (SUMO AND netedit)
@ MID_GNE_LOCK_CROSSING
lock crossings
@ MID_HOTKEY_M_MODE_MOVE_MEANDATA
hotkey for mode moving element AND mean data
@ MID_HOTKEY_F2_SUPERMODE_NETWORK
select network supermode in netedit
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKCONTAINER
lock container
@ MID_HOTKEY_SHIFT_F12_FOCUSUPPERELEMENT
focus upper element of current frame (only used in netedit)
@ MID_GNE_NETWORKVIEWOPTIONS_SELECTEDGES
select edges
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWTRIPS
show all trips
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEGRID
show grid
@ MID_GNE_LOCK_JUNCTION
lock junctions
@ MID_GNE_LOCK_POI
lock POIs
@ MID_HOTKEY_P_MODE_POLYGON_PERSON
hotkey for mode creating polygons
@ MID_GNE_LOCK_TAZ
lock TAZs
@ MID_HOTKEY_CTRL_SHIFT_A_SAVEADDITIONALELEMENTS
Save Additional Elements.
constexpr int MOUSE_OFFSET_X
constexpr int MOUSE_REFERENCE_Y
constexpr int MOUSE_REFERENCE_X
constexpr int MOUSE_OFFSET_Y
#define WRITE_ERRORF(...)
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
int getY() const
get y value
int getX() const
get x value
std::vector< InternalTest::ViewPosition > interpolateViewPositions(const InternalTest::ViewPosition &viewStartPosition, const int offsetStartX, const int offsetStartY, const InternalTest::ViewPosition &viewEndPosition, const int offsetEndX, const int offsetEndY) const
interpolate view positions
void addTestSteps(InternalTestStep *internalTestStep)
add test steps
const std::map< std::string, InternalTest::ContextualMenu > & getContextualMenuOperations() const
get map with contextual menu operation jump steps
const std::map< std::string, int > & getAttributesEnum() const
get map with attributesEnum jump steps
const std::map< std::string, InternalTest::ViewPosition > & getViewPositions() const
get map with view position pairs
FXint getTime() const
get currentTime
void updateLastMovedPosition(const int x, const int y)
update last moved position
const InternalTest::ViewPosition & getLastMovedPosition() const
get last moved position
InternalTestStep * getLastTestStep() const
get last test step
const std::map< std::string, InternalTest::Movement > & getMovements() const
get map with movement pairs
dialog arguments (used for certain functions that opens modal dialogs)
static const FXuint no
no value
DialogTest()=delete
invalidated default constructor
static const std::string colorValue
color dialog value
static const FXuint yes
yes value
struct used for test TLS Tables
TLSTableTest()=delete
invalidated default constructor
void modifyStringAttribute(const int tabs, const int overlappedTabs, const std::string &value) const
modify attribute
void changeSupermode()
process supermode function
DialogTest * getDialogTest() const
get dialog arguments
const std::string & getDescription() const
get description
void contextualMenuOperation() const
process contextualMenuOperation function
FXEvent * buildKeyPressEvent(const std::string &key) const
build key press event
std::pair< FXint, FXString > translateKey(const std::string &key) const
translate key
void modifyVTypeDialogAttribute() const
process modifyVTypeDialogAttribute function
void createSquaredShape()
process create squared shape function
void * getEvent() const
get event associated with this step
std::string stripSpaces(const std::string &str) const
strip spaces
void fixStoppingPlace()
process fixStoppingPlace function
void modifyVClassDialog_DisallowAll(const int overlappedTabs) const
process modifyVClassDialog_DisallowAll function
Category myCategory
step category
void joinTSL() const
process join TLS function
void modifyCrossingDefaultBoolValue() const
process modifyCrossingDefaultBoolValue function
FXEvent * myEvent
list of events associated with this step
void modifyVClassDialog_Reset(const int overlappedTabs) const
process modifyVClassDialog_Reset function
InternalTestStep()=delete
invalidate default constructor
void buildMouseDragDrop(const InternalTest::ViewPosition &viewStartPosition, const int offsetStartX, const int offsetStartY, const InternalTest::ViewPosition &viewEndPosition, const int offsetEndX, const int offsetEndY, const std::string &keyModifier) const
build mouse dragdrop
void disJoinTLS() const
process disJoin TLS function
void lockSelection() const
process lockSelection function
void modifyTLSTable()
process modifyTLSTable function
std::string getStringArgument(const std::string &argument) const
get string argument
std::string myDescription
description
void setupAndStart()
process setupAndStart function
void crossingInvertEdges() const
process crossingInvertEdges function
void resetSingleTLSPhases() const
process resetSingleTLSPhases function
DialogTest * myDialogTest
dialog test
void checkParameters(const int overlappedTabs) const
process checkParameters function
void selection() const
process selection function
void pressTLSButton(const std::string &type)
process pressTLSButton function
const std::vector< const InternalTestStep * > & getModalDialogTestSteps() const
get key events used in certain dialogs (allowDialog, etc.)
void resetAllTLSPhases() const
process resetAllTLSPhases function
void selectAdditionalChild()
create rectangle shape
FXSelector getSelector() const
get selector (based in messageType and messageID)
void buildTwoPressKeyEvent(const std::string &keyA, const std::string &keyB, const bool updateView) const
build a two key press and key release (used for tabs, spaces, enter, etc)
void buildRedo(const int number) const
process check redo function
void undo() const
process check undo function
void moveElementVertical() const
process moveElementVertical function
void modifyColorAttribute(const int overlappedTabs) const
process modifyColorAttribute function
bool getBoolArgument(const std::string &argument) const
get bool argument
bool updateView() const
check if update view
void protectElements() const
process protect elements function
void createCrossing() const
process createCrossing function
void checkDoubleParameters(const int overlappedTabs) const
process checkDoubleParameters function
void modifyBoolAttribute(const int overlappedTabs) const
process modifyBoolAttribute function
void addPhase(const std::string &type)
process addPhase function
void mouseClick(const std::string &button, const std::string &modifier) const
process click function
void checkUndoRedo() const
process check undo-redo function
void crossingClearEdges() const
process crossingClearEdges function
bool checkBoolArgument(const std::string &argument) const
check bool argument
std::string parseStep(const std::string &rowText)
parse function and arguments
void modifyVClassDialog_NoDisallowAll(const int overlappedTabs) const
process modifyVClassDialog_DisallowAll function
void copyMeanData()
process copyMeanData function
void deleteTLS() const
process delete TLS function
void buildMouseClick(const InternalTest::ViewPosition &viewPosition, const int offsetX, const int offsetY, const std::string &button, const std::string &keyModifier) const
build mouse click event
void buildPressKeyEvent(const std::string &key, const bool updateView) const
build a key press and key release (used for tabs, spaces, enter, etc)
InternalTest * myTestSystem
test system parent
void createShape(const InternalTest::ViewPosition &viewPosition, const int sizeX, const int sizeY, const bool close, const bool line) const
create shape
void saveConnectionEdit() const
process createConnectionEdit function
TLSTableTest * myTLSTableTest
TLS Table test.
void createTLS(const int overlappedTabs) const
process createTLS function
void modifyAttribute(const int overlappedTabs) const
process modifyAttribute function
void selectNetworkItems() const
process selectNetworkItems function
bool checkIntArgument(const std::string &argument) const
check int argument
void copyTLS() const
process Copy TLS function
void writeClickInfo(const InternalTest::ViewPosition &viewPosition, const int offsetX, const int offsetY, const std::string modifier) const
write click info
void changeEditMode()
process changeEditMode function
void createDataSet() const
process createDataSet function
void createMeanData()
process createMeanData function
void waitDeleteWarning() const
process waitDeleteWarning function
void createConnection(const std::string &keyModifier) const
process createConnection function
FXSelector myMessageID
message ID
TLSTableTest * getTLSTableTest() const
get TLS Table test
FXSelector getMessageID() const
get message ID
void createDataInterval() const
process createDataInterval function
void buildUndo(const int number) const
process check undo function
void moveElementHorizontal() const
process moveElementHorizontal function
void computeJunctions()
process compute junctions function
bool myUpdateView
flag to enable or disable view after execute step
void pressTLSPhaseButton() const
process pressTLSPhaseButton function
void parseArguments(const std::string &arguments)
parse arguments
void quit()
process quit function
void changeElement() const
process change element function
std::vector< const InternalTestStep * > myDialogTestSteps
Test steps used in dialog test.
void deleteMeanData()
process deleteMeanData function
void changeMode()
process change mode function
bool checkStringArgument(const std::string &argument) const
check string argument
~InternalTestStep()
destructor
void changePlan() const
@bief process change plan function
void redo() const
process check redo function
void fixCrossings()
process fixCrossings function
FXSelector myMessageType
message type (by default SEL_COMMAND)
void createRectangledShape()
process create rectangle shape function
void createLineShape()
process create line shape function
void saveExistentShortcut()
process save function
void typeKey() const
process typeKey function
std::vector< std::string > myArguments
arguments
void writeError(const std::string &function, const int overlapping, const std::string &expected) const
write error
Category getCategory() const
get category
void fixRoute()
process fixRoutes function
void selectionRectangle() const
process selectionRectangle function
void leftClickOffset(const std::string &button) const
process click function
void computeJunctionsVolatileOptions()
process compute junctions with volatile options function
void modifyVClassDialog_Cancel(const int overlappedTabs) const
process modifyVClassDialog_Cancel function
void moveElement() const
process moveElement function
int getIntArgument(const std::string &argument) const
get int argument
FXEvent * buildKeyReleaseEvent(const std::string &key) const
build key release event
FXSelector getMessageType() const
get message type
void deleteFunction() const
process delete function
FXEvent * buildMouseMoveEvent(const InternalTest::ViewPosition &viewPosition, const int offsetX, const int offsetY, const int clickedButton, const std::string &keyModifier, const int numberOfClicks) const
build mouse move event
void modifyCrossingDefaultValue() const
process modifyCrossingDefaultValue function
FXEvent * buildMouseClickEvent(FXSelType type, const InternalTest::ViewPosition &viewPosition, const int offsetX, const int offsetY, const std::string &keyModifier, const int numberOfClicks) const
build mouse left click press event
static int toInt(const std::string &sData)
converts a string into the integer value described by it by calling the char-type converter,...
static bool isInt(const std::string &sData)
check if the given sData can be converted to int