@sapui5/sap.fe.test 1.109.0 → 1.110.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/package.json +8 -6
- package/src/sap/fe/test/.library +17 -18
- package/src/sap/fe/test/BaseActions.js +3 -2
- package/src/sap/fe/test/BaseArrangements.js +3 -2
- package/src/sap/fe/test/BaseAssertions.js +3 -2
- package/src/sap/fe/test/CollaborationClient.js +12 -5
- package/src/sap/fe/test/CollaborationClient.ts +12 -1
- package/src/sap/fe/test/ConfirmDialog.js +12 -11
- package/src/sap/fe/test/FCLView.js +16 -15
- package/src/sap/fe/test/FeMocks.js +1 -11
- package/src/sap/fe/test/Flexibility.js +12 -7
- package/src/sap/fe/test/FlexibleColumnLayout.js +12 -11
- package/src/sap/fe/test/JestFlexibilityHelper.js +113 -102
- package/src/sap/fe/test/JestFlexibilityHelper.ts +112 -99
- package/src/sap/fe/test/JestTemplatingHelper.js +73 -170
- package/src/sap/fe/test/JestTemplatingHelper.ts +53 -39
- package/src/sap/fe/test/JourneyRunner.js +3 -2
- package/src/sap/fe/test/ListReport.js +3 -2
- package/src/sap/fe/test/LocationUtil.js +3 -2
- package/src/sap/fe/test/ObjectPage.js +121 -17
- package/src/sap/fe/test/Shell.js +9 -4
- package/src/sap/fe/test/Stubs.js +18 -17
- package/src/sap/fe/test/TemplatePage.js +3 -2
- package/src/sap/fe/test/TemplatingTestUtils.js +3 -2
- package/src/sap/fe/test/UI5MockHelper.js +39 -72
- package/src/sap/fe/test/UI5MockHelper.ts +3 -0
- package/src/sap/fe/test/Utils.js +4 -3
- package/src/sap/fe/test/api/APIHelper.js +3 -2
- package/src/sap/fe/test/api/BaseAPI.js +3 -2
- package/src/sap/fe/test/api/ChartActions.js +3 -2
- package/src/sap/fe/test/api/ChartAssertions.js +3 -2
- package/src/sap/fe/test/api/CollaborationAPI.js +2 -30
- package/src/sap/fe/test/api/DialogAPI.js +3 -2
- package/src/sap/fe/test/api/DialogActions.js +3 -2
- package/src/sap/fe/test/api/DialogAssertions.js +4 -3
- package/src/sap/fe/test/api/DialogCreateActions.js +6 -5
- package/src/sap/fe/test/api/DialogCreateAssertions.js +48 -49
- package/src/sap/fe/test/api/DialogHelper.js +4 -3
- package/src/sap/fe/test/api/DialogMassEditActions.js +3 -2
- package/src/sap/fe/test/api/DialogMassEditAssertions.js +3 -2
- package/src/sap/fe/test/api/DialogMessageActions.js +3 -2
- package/src/sap/fe/test/api/DialogMessageAssertions.js +82 -79
- package/src/sap/fe/test/api/DialogType.js +3 -2
- package/src/sap/fe/test/api/DialogValueHelpActions.js +3 -2
- package/src/sap/fe/test/api/DialogValueHelpAssertions.js +3 -2
- package/src/sap/fe/test/api/EditState.js +4 -3
- package/src/sap/fe/test/api/FilterBarAPI.js +3 -2
- package/src/sap/fe/test/api/FilterBarActions.js +3 -2
- package/src/sap/fe/test/api/FilterBarAssertions.js +3 -2
- package/src/sap/fe/test/api/FooterAPI.js +5 -4
- package/src/sap/fe/test/api/FooterActionsBase.js +3 -2
- package/src/sap/fe/test/api/FooterActionsOP.js +3 -2
- package/src/sap/fe/test/api/FooterAssertionsBase.js +3 -2
- package/src/sap/fe/test/api/FooterAssertionsOP.js +3 -2
- package/src/sap/fe/test/api/FormAPI.js +3 -2
- package/src/sap/fe/test/api/FormActions.js +3 -2
- package/src/sap/fe/test/api/FormAssertions.js +3 -2
- package/src/sap/fe/test/api/HeaderAPI.js +3 -2
- package/src/sap/fe/test/api/HeaderActions.js +3 -2
- package/src/sap/fe/test/api/HeaderActionsLR.js +3 -2
- package/src/sap/fe/test/api/HeaderAssertions.js +3 -2
- package/src/sap/fe/test/api/HeaderAssertionsLR.js +3 -2
- package/src/sap/fe/test/api/HeaderLR.js +3 -2
- package/src/sap/fe/test/api/KPICardAPI.js +5 -4
- package/src/sap/fe/test/api/KPICardActions.js +7 -11
- package/src/sap/fe/test/api/KPICardAssertions.js +3 -2
- package/src/sap/fe/test/api/TableAPI.js +5 -4
- package/src/sap/fe/test/api/TableActions.js +16 -9
- package/src/sap/fe/test/api/TableAssertions.js +8 -7
- package/src/sap/fe/test/builder/DialogBuilder.js +99 -102
- package/src/sap/fe/test/builder/FEBuilder.js +3 -2
- package/src/sap/fe/test/builder/KPIBuilder.js +16 -25
- package/src/sap/fe/test/builder/MacroFieldBuilder.js +4 -2
- package/src/sap/fe/test/builder/MdcFieldBuilder.js +3 -2
- package/src/sap/fe/test/builder/MdcFilterBarBuilder.js +3 -2
- package/src/sap/fe/test/builder/MdcFilterFieldBuilder.js +3 -2
- package/src/sap/fe/test/builder/MdcTableBuilder.js +186 -95
- package/src/sap/fe/test/builder/OverflowToolbarBuilder.js +3 -2
- package/src/sap/fe/test/builder/VMBuilder.js +3 -2
- package/src/sap/fe/test/internal/ConsoleErrorChecker.js +13 -48
- package/src/sap/fe/test/internal/FEArrangements.js +3 -2
- package/src/sap/fe/test/internal/FEJourneyRunner.js +5 -3
- package/src/sap/fe/test/library.js +3 -2
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* !
|
|
2
|
+
* !
|
|
3
|
+
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
4
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
*/
|
|
6
7
|
sap.ui.define(
|
|
7
8
|
[
|
|
@@ -15,7 +16,8 @@ sap.ui.define(
|
|
|
15
16
|
"sap/fe/test/api/APIHelper",
|
|
16
17
|
"sap/ui/test/matchers/Interactable",
|
|
17
18
|
"sap/ui/core/SortOrder",
|
|
18
|
-
"sap/ui/test/actions/EnterText"
|
|
19
|
+
"sap/ui/test/actions/EnterText",
|
|
20
|
+
"sap/ui/core/Core"
|
|
19
21
|
],
|
|
20
22
|
function (
|
|
21
23
|
Opa5,
|
|
@@ -28,10 +30,13 @@ sap.ui.define(
|
|
|
28
30
|
APIHelper,
|
|
29
31
|
Interactable,
|
|
30
32
|
SortOrder,
|
|
31
|
-
EnterText
|
|
33
|
+
EnterText,
|
|
34
|
+
Core
|
|
32
35
|
) {
|
|
33
36
|
"use strict";
|
|
34
37
|
|
|
38
|
+
var oSAPMResourceBundle = Core.getLibraryResourceBundle("sap.m");
|
|
39
|
+
|
|
35
40
|
// depending on the sap.ui.table creates now extra request which are not optimal for test execution
|
|
36
41
|
var RowActionType = {
|
|
37
42
|
/**
|
|
@@ -272,6 +277,15 @@ sap.ui.define(
|
|
|
272
277
|
);
|
|
273
278
|
}
|
|
274
279
|
|
|
280
|
+
function _getColumnContextToggleBuilder(ToggleButtonLabel, ToggleType) {
|
|
281
|
+
return OpaBuilder.create()
|
|
282
|
+
.isDialogElement()
|
|
283
|
+
.hasType("sap.m.ToggleButton")
|
|
284
|
+
.hasProperties({ text: ToggleButtonLabel })
|
|
285
|
+
.doPress()
|
|
286
|
+
.description(Utils.formatMessage(ToggleType + " column '{0}'", ToggleButtonLabel));
|
|
287
|
+
}
|
|
288
|
+
|
|
275
289
|
TableBuilder.create = function (oOpaInstance) {
|
|
276
290
|
return new TableBuilder(oOpaInstance);
|
|
277
291
|
};
|
|
@@ -432,35 +446,126 @@ sap.ui.define(
|
|
|
432
446
|
return this.has(TableBuilder.Matchers.columnControl(vColumn)).has(FEBuilder.Matchers.singleElement()).doPress();
|
|
433
447
|
};
|
|
434
448
|
|
|
435
|
-
TableBuilder.prototype.
|
|
436
|
-
var
|
|
449
|
+
TableBuilder.prototype.doColumnHeaderSorting = function (vColumn, sFieldName, sSortOrder, sIcon, bClearFirst) {
|
|
450
|
+
var SortingIcon = sSortOrder === SortOrder.Ascending ? "sap-icon://sort-ascending" : "sap-icon://sort-descending";
|
|
451
|
+
|
|
452
|
+
var TriggerSortOK = OpaBuilder.create()
|
|
437
453
|
.isDialogElement()
|
|
438
|
-
.hasType(
|
|
439
|
-
.hasProperties({
|
|
440
|
-
.doPress()
|
|
454
|
+
.hasType("sap.m.Button")
|
|
455
|
+
.hasProperties({ text: "OK" })
|
|
456
|
+
.doPress()
|
|
457
|
+
.description("Confirming the Sorting dialog");
|
|
441
458
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
)
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
459
|
+
// Builder to clear existing sorting entries
|
|
460
|
+
var DeclineSortingBuilder = OpaBuilder.create()
|
|
461
|
+
.isDialogElement()
|
|
462
|
+
.hasType("sap.m.Button")
|
|
463
|
+
.hasProperties({ icon: "sap-icon://decline" })
|
|
464
|
+
.doPress()
|
|
465
|
+
.description("Removing all previous sortings");
|
|
449
466
|
|
|
450
|
-
|
|
451
|
-
var
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
467
|
+
// Builder to check for a specific sorting entry
|
|
468
|
+
var CheckSortingFieldBuilder = OpaBuilder.create(this)
|
|
469
|
+
.isDialogElement()
|
|
470
|
+
.hasType("sap.m.ComboBox")
|
|
471
|
+
.hasProperties({ value: sFieldName });
|
|
472
|
+
|
|
473
|
+
// Builder for changing existing sorting entries
|
|
474
|
+
var ExistingSortingFieldBuilder = OpaBuilder.create(this)
|
|
475
|
+
.isDialogElement()
|
|
476
|
+
.hasType("sap.m.CustomListItem")
|
|
477
|
+
.hasChildren(OpaBuilder.create(this).hasType("sap.m.ComboBox").hasProperties({ value: sFieldName }))
|
|
478
|
+
.doOnChildren(OpaBuilder.create(this).hasType("sap.m.Button").hasProperties({ icon: SortingIcon }).doPress())
|
|
479
|
+
.description(Utils.formatMessage("Change existing sorting field '{0}': {1}", sFieldName, sSortOrder))
|
|
480
|
+
.success(TriggerSortOK);
|
|
481
|
+
|
|
482
|
+
// Builder for new sorting entries
|
|
483
|
+
var NewSortingFieldBuilder = OpaBuilder.create(this)
|
|
484
|
+
.isDialogElement()
|
|
485
|
+
.hasType("sap.m.CustomListItem")
|
|
486
|
+
.hasChildren(
|
|
487
|
+
OpaBuilder.create(this).hasType("sap.m.ComboBox").hasProperties({ placeholder: "Sort by" }).hasProperties({ value: "" })
|
|
488
|
+
)
|
|
489
|
+
.doOnChildren(
|
|
490
|
+
OpaBuilder.create(this)
|
|
491
|
+
.hasType("sap.m.ComboBox")
|
|
492
|
+
.hasProperties({ placeholder: "Sort by" })
|
|
493
|
+
.hasProperties({ value: "" })
|
|
494
|
+
.doEnterText(sFieldName, true, false, true)
|
|
495
|
+
)
|
|
496
|
+
.doOnChildren(OpaBuilder.create(this).hasType("sap.m.Button").hasProperties({ icon: SortingIcon }).doPress())
|
|
497
|
+
.description(Utils.formatMessage("Insert new sorting field '{0}': {1}", sFieldName, sSortOrder))
|
|
498
|
+
.success(TriggerSortOK);
|
|
499
|
+
|
|
500
|
+
// Builder to distinguish between inserting a new entry or changing an existing entry
|
|
501
|
+
var CheckSortingPanelBuilder = OpaBuilder.create()
|
|
502
|
+
.isDialogElement()
|
|
503
|
+
.hasType("sap.m.p13n.SortPanel")
|
|
504
|
+
.do(function () {
|
|
505
|
+
if (bClearFirst) {
|
|
506
|
+
DeclineSortingBuilder.execute();
|
|
507
|
+
}
|
|
508
|
+
if (!FEBuilder.controlsExist(CheckSortingFieldBuilder) || bClearFirst) {
|
|
509
|
+
return NewSortingFieldBuilder.execute();
|
|
510
|
+
} else {
|
|
511
|
+
return ExistingSortingFieldBuilder.execute();
|
|
512
|
+
}
|
|
513
|
+
});
|
|
514
|
+
|
|
515
|
+
// Opens the Sorting panel within the table column header context menu
|
|
516
|
+
var TriggerSortingPanelBuilder = OpaBuilder.create()
|
|
517
|
+
.isDialogElement()
|
|
518
|
+
.hasType("sap.m.StandardListItem")
|
|
519
|
+
.hasProperties({ icon: sIcon })
|
|
520
|
+
.doPress()
|
|
521
|
+
.description("Opening the Sorting dialog")
|
|
522
|
+
.success(CheckSortingPanelBuilder);
|
|
523
|
+
|
|
524
|
+
// Triggers the sorting by using the toggle buttons on the context menu
|
|
525
|
+
var TriggerToggleBuilder = OpaBuilder.create()
|
|
526
|
+
.isDialogElement()
|
|
527
|
+
.hasType("sap.m.ToggleButton")
|
|
528
|
+
.hasProperties({ text: sSortOrder })
|
|
529
|
+
.has(function (oButton) {
|
|
530
|
+
if (typeof oButton.getParent().getLabel === "function") {
|
|
531
|
+
return (
|
|
532
|
+
oButton.getParent().getLabel() ===
|
|
533
|
+
Utils.formatMessage(oSAPMResourceBundle.getText("table.COLUMNMENU_QUICK_SORT"), sFieldName)
|
|
534
|
+
);
|
|
535
|
+
}
|
|
536
|
+
return false;
|
|
537
|
+
})
|
|
538
|
+
.doPress()
|
|
539
|
+
.description(Utils.formatMessage("Sorting column '{0}': {1}", vColumn, sSortOrder));
|
|
540
|
+
|
|
541
|
+
// return this.doPressColumnHeader(vColumn).success(!sFieldName ? TriggerToggleBuilder : TriggerSortingPanelBuilder);
|
|
542
|
+
return this.doPressColumnHeader(vColumn).success(bClearFirst ? TriggerToggleBuilder : TriggerSortingPanelBuilder);
|
|
456
543
|
};
|
|
544
|
+
TableBuilder.prototype.doSortByColumn = function (vColumn, sFieldName, sSortOrder, bClearFirst) {
|
|
545
|
+
var sIcon = "sap-icon://sort";
|
|
546
|
+
return this.doColumnHeaderSorting(vColumn, sFieldName, sSortOrder, sIcon, bClearFirst);
|
|
547
|
+
};
|
|
548
|
+
|
|
549
|
+
TableBuilder.prototype.doColumnHeaderGrouping = function (vColumn, sFieldName) {
|
|
550
|
+
var sGroupingField = !sFieldName ? vColumn : sFieldName,
|
|
551
|
+
// Triggers the grouping by using the toggle buttons on the context menu
|
|
552
|
+
TriggerToggleBuilder = _getColumnContextToggleBuilder(sGroupingField, "Grouping");
|
|
457
553
|
|
|
554
|
+
return this.doPressColumnHeader(vColumn).success(TriggerToggleBuilder);
|
|
555
|
+
};
|
|
458
556
|
TableBuilder.prototype.doGroupByColumn = function (vColumn, sFieldName) {
|
|
459
|
-
return this.
|
|
557
|
+
return this.doColumnHeaderGrouping(vColumn, sFieldName);
|
|
460
558
|
};
|
|
461
559
|
|
|
560
|
+
TableBuilder.prototype.doColumnHeaderAggregating = function (vColumn, sFieldName) {
|
|
561
|
+
var sAggregationField = !sFieldName ? vColumn : sFieldName,
|
|
562
|
+
// Triggers the grouping by using the toggle buttons on the context menu
|
|
563
|
+
TriggerToggleBuilder = _getColumnContextToggleBuilder(sAggregationField, "Aggregating");
|
|
564
|
+
|
|
565
|
+
return this.doPressColumnHeader(vColumn).success(TriggerToggleBuilder);
|
|
566
|
+
};
|
|
462
567
|
TableBuilder.prototype.doAggregateByColumn = function (vColumn, sFieldName) {
|
|
463
|
-
return this.
|
|
568
|
+
return this.doColumnHeaderAggregating(vColumn, sFieldName);
|
|
464
569
|
};
|
|
465
570
|
|
|
466
571
|
TableBuilder.prototype.doChangeSearch = function (sSearchText) {
|
|
@@ -483,81 +588,67 @@ sap.ui.define(
|
|
|
483
588
|
return this.doOpenOverflow().success(oSuccessBuilder);
|
|
484
589
|
};
|
|
485
590
|
|
|
486
|
-
TableBuilder.prototype.checkColumnHeaderAction = function (vColumn, sActionIconName, sFieldName, iExpectedNumber) {
|
|
487
|
-
var
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
.isDialogElement()
|
|
494
|
-
.hasProperties({ icon: sActionIconName })
|
|
495
|
-
.checkNumberOfMatches(1);
|
|
496
|
-
} else if (iExpectedNumber === 1) {
|
|
497
|
-
// Only 1 action expected --> we check that this is a simple button (no sub-menu)
|
|
498
|
-
oHeaderPopoverBuilder = OpaBuilder.create()
|
|
499
|
-
.isDialogElement()
|
|
500
|
-
.hasType("sap.m.Button")
|
|
501
|
-
.hasProperties({ icon: sActionIconName })
|
|
502
|
-
.checkNumberOfMatches(1);
|
|
503
|
-
} else {
|
|
504
|
-
// More than 1 action --> check the number of items in the sub-menu
|
|
505
|
-
oHeaderPopoverBuilder = OpaBuilder.create()
|
|
506
|
-
.isDialogElement()
|
|
507
|
-
.hasType("sap.m.ToggleButton")
|
|
508
|
-
.hasProperties({ icon: sActionIconName })
|
|
509
|
-
.doPress();
|
|
510
|
-
|
|
511
|
-
oHeaderPopoverBuilder.success(
|
|
512
|
-
OpaBuilder.create()
|
|
513
|
-
.isDialogElement()
|
|
514
|
-
.hasType("sap.m.StandardListItem")
|
|
515
|
-
.checkNumberOfMatches(iExpectedNumber)
|
|
516
|
-
.success(
|
|
517
|
-
OpaBuilder.create()
|
|
518
|
-
.isDialogElement()
|
|
519
|
-
.hasType("sap.m.Button")
|
|
520
|
-
.hasProperties({ icon: "sap-icon://decline" })
|
|
521
|
-
.doPress()
|
|
522
|
-
)
|
|
523
|
-
);
|
|
524
|
-
}
|
|
525
|
-
} else {
|
|
526
|
-
if (iExpectedNumber === undefined) {
|
|
527
|
-
iExpectedNumber = 1;
|
|
528
|
-
}
|
|
591
|
+
TableBuilder.prototype.checkColumnHeaderAction = function (vColumn, sActionIconName, sFieldName, iExpectedNumber, sGroupTotals) {
|
|
592
|
+
var TriggerGroupingCancel = OpaBuilder.create()
|
|
593
|
+
.isDialogElement()
|
|
594
|
+
.hasType("sap.m.Button")
|
|
595
|
+
.hasProperties({ text: "Cancel" })
|
|
596
|
+
.doPress()
|
|
597
|
+
.description("Cancelling the dialog");
|
|
529
598
|
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
OpaBuilder.create()
|
|
538
|
-
.isDialogElement()
|
|
539
|
-
.hasType("sap.m.StandardListItem")
|
|
540
|
-
.hasProperties({ title: sFieldName })
|
|
541
|
-
.checkNumberOfMatches(iExpectedNumber)
|
|
542
|
-
.success(
|
|
543
|
-
OpaBuilder.create()
|
|
544
|
-
.isDialogElement()
|
|
545
|
-
.hasType("sap.m.Button")
|
|
546
|
-
.hasProperties({ icon: "sap-icon://decline" })
|
|
547
|
-
.doPress()
|
|
548
|
-
)
|
|
549
|
-
);
|
|
550
|
-
}
|
|
599
|
+
// Opens the Grouping panel within the table column header context menu to successfully leave the context dialog with cancel button
|
|
600
|
+
var TriggerGroupingPanelBuilder = OpaBuilder.create()
|
|
601
|
+
.isDialogElement()
|
|
602
|
+
.hasType("sap.m.StandardListItem")
|
|
603
|
+
.hasProperties({ icon: sActionIconName })
|
|
604
|
+
.doPress()
|
|
605
|
+
.success(TriggerGroupingCancel);
|
|
551
606
|
|
|
552
|
-
|
|
553
|
-
|
|
607
|
+
var CheckMultipleGroupingBuilder = OpaBuilder.create()
|
|
608
|
+
.isDialogElement()
|
|
609
|
+
.hasType("sap.m.ToggleButton")
|
|
610
|
+
.has(function (oButton) {
|
|
611
|
+
if (typeof oButton.getParent().getLabel === "function") {
|
|
612
|
+
return oButton.getParent().getLabel() === sGroupTotals;
|
|
613
|
+
}
|
|
614
|
+
return false;
|
|
615
|
+
})
|
|
616
|
+
.checkNumberOfMatches(iExpectedNumber)
|
|
617
|
+
.success(TriggerGroupingPanelBuilder);
|
|
554
618
|
|
|
619
|
+
var CheckSingleGroupingBuilder = OpaBuilder.create()
|
|
620
|
+
.isDialogElement()
|
|
621
|
+
.hasType("sap.m.ToggleButton")
|
|
622
|
+
.hasProperties({ text: sFieldName })
|
|
623
|
+
.has(function (oButton) {
|
|
624
|
+
if (typeof oButton.getParent().getLabel === "function") {
|
|
625
|
+
return oButton.getParent().getLabel() === sGroupTotals;
|
|
626
|
+
}
|
|
627
|
+
return false;
|
|
628
|
+
})
|
|
629
|
+
.checkNumberOfMatches(iExpectedNumber)
|
|
630
|
+
.success(TriggerGroupingPanelBuilder);
|
|
631
|
+
|
|
632
|
+
return this.doPressColumnHeader(vColumn).success(sFieldName ? CheckSingleGroupingBuilder : CheckMultipleGroupingBuilder);
|
|
633
|
+
};
|
|
555
634
|
TableBuilder.prototype.hasGroupByColumn = function (vColumn, sFieldName, iExpectedNumber) {
|
|
556
|
-
return this.checkColumnHeaderAction(
|
|
635
|
+
return this.checkColumnHeaderAction(
|
|
636
|
+
vColumn,
|
|
637
|
+
"sap-icon://group-2",
|
|
638
|
+
sFieldName,
|
|
639
|
+
iExpectedNumber,
|
|
640
|
+
oSAPMResourceBundle.getText("table.COLUMNMENU_QUICK_GROUP")
|
|
641
|
+
);
|
|
557
642
|
};
|
|
558
643
|
|
|
559
644
|
TableBuilder.prototype.hasAggregationColumn = function (vColumn, sFieldName, iExpectedNumber) {
|
|
560
|
-
return this.checkColumnHeaderAction(
|
|
645
|
+
return this.checkColumnHeaderAction(
|
|
646
|
+
vColumn,
|
|
647
|
+
"sap-icon://table-column",
|
|
648
|
+
sFieldName,
|
|
649
|
+
iExpectedNumber,
|
|
650
|
+
oSAPMResourceBundle.getText("table.COLUMNMENU_QUICK_TOTAL")
|
|
651
|
+
);
|
|
561
652
|
};
|
|
562
653
|
|
|
563
654
|
TableBuilder.prototype.doExpand = function (vRowMatcher) {
|
|
@@ -927,7 +1018,7 @@ sap.ui.define(
|
|
|
927
1018
|
})
|
|
928
1019
|
);
|
|
929
1020
|
},
|
|
930
|
-
|
|
1021
|
+
hiddenCell: function (sColumnName) {
|
|
931
1022
|
return function (oRow) {
|
|
932
1023
|
var oCellField = TableBuilder.Row.Matchers.cell(sColumnName)(oRow);
|
|
933
1024
|
while (oCellField.isA("sap.fe.macros.MacroAPI")) {
|
|
@@ -937,13 +1028,13 @@ sap.ui.define(
|
|
|
937
1028
|
return MacroFieldBuilder.Matchers.empty(oCellField);
|
|
938
1029
|
};
|
|
939
1030
|
},
|
|
940
|
-
|
|
1031
|
+
hiddenCells: function (vColumn) {
|
|
941
1032
|
if (!vColumn || vColumn.length === 0) {
|
|
942
1033
|
return OpaBuilder.Matchers.TRUE;
|
|
943
1034
|
}
|
|
944
1035
|
return FEBuilder.Matchers.match(
|
|
945
1036
|
vColumn.map(function (sColumnName) {
|
|
946
|
-
return TableBuilder.Row.Matchers.
|
|
1037
|
+
return TableBuilder.Row.Matchers.hiddenCell(sColumnName);
|
|
947
1038
|
})
|
|
948
1039
|
);
|
|
949
1040
|
},
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* !
|
|
2
|
+
* !
|
|
3
|
+
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
4
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
*/
|
|
6
7
|
sap.ui.define(
|
|
7
8
|
["sap/ui/test/OpaBuilder", "./FEBuilder", "sap/fe/test/Utils", "sap/ui/test/matchers/Interactable"],
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* !
|
|
2
|
+
* !
|
|
3
|
+
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
4
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
*/
|
|
6
7
|
sap.ui.define(["./FEBuilder", "sap/ui/test/OpaBuilder", "sap/fe/test/Utils"], function (FEBuilder, OpaBuilder, Utils) {
|
|
7
8
|
"use strict";
|