@@ -75,13 +75,14 @@ class TestMenuMgrObserver : public MenuManagerObserver {
7575 bool editStartedCalled{};
7676 bool editEndedCalled{};
7777 bool startReturnValue{};
78+ bool originalCommitCalled{};
7879public:
7980 TestMenuMgrObserver () = default ;
8081
8182 void setStartReturn (bool toReturn) { startReturnValue = toReturn; }
8283
8384 void reset () {
84- structureChangedCalled = editStartedCalled = editEndedCalled = false ;
85+ structureChangedCalled = editStartedCalled = editEndedCalled = originalCommitCalled = false ;
8586 }
8687
8788 void structureHasChanged () override {
@@ -97,11 +98,20 @@ class TestMenuMgrObserver : public MenuManagerObserver {
9798 editEndedCalled = true ;
9899 }
99100
101+ void originalCommitWasCalled () {
102+ originalCommitCalled = true ;
103+ }
104+
100105 bool didTriggerStructure () const { return structureChangedCalled; }
101106 bool didTriggerStartEdit () const { return editStartedCalled; }
102107 bool didTriggerEndEdit () const { return editEndedCalled; }
108+ bool didOriginalCommitTrigger () const { return originalCommitCalled; }
103109} menuMgrObserver;
104110
111+ void originalCommitCb (int itemId) {
112+ menuMgrObserver.originalCommitWasCalled ();
113+ }
114+
105115const PROGMEM AnyMenuInfo testActionInfo = { " ActTest" , 2394 , 0xffff , 0 , NO_CALLBACK };
106116ActionMenuItem testActionItem (&testActionInfo, nullptr );
107117
@@ -112,6 +122,7 @@ test(addingItemsAndMenuCallbacks) {
112122 menuMgr.setRootMenu (&textMenuItem1);
113123 menuMgr.initWithoutInput (&noRenderer, &textMenuItem1);
114124 menuMgr.addChangeNotification (&menuMgrObserver);
125+ menuMgr.setItemCommittedHook (originalCommitCb);
115126
116127 // first we add some menu items at the end of the menu and test the structure change call is made
117128 menuMgr.addMenuAfter (&menuNumTwoDp, &testActionItem, true );
@@ -135,6 +146,7 @@ test(addingItemsAndMenuCallbacks) {
135146 menuMgr.onMenuSelect (false );
136147
137148 assertTrue (menuMgrObserver.didTriggerEndEdit ());
149+ assertTrue (menuMgrObserver.didOriginalCommitTrigger ());
138150 assertTrue (menuMgrObserver.didTriggerStartEdit ());
139151 assertTrue (boolItem1.getBoolean () != currentMenuValue);
140152
@@ -157,6 +169,7 @@ test(addingItemsAndMenuCallbacks) {
157169 menuMgr.valueChanged (1 ); // we are now editing, change the actual enum
158170 menuMgr.onMenuSelect (false ); // stop editing
159171 assertTrue (menuMgrObserver.didTriggerEndEdit ());
172+ assertTrue (menuMgrObserver.didOriginalCommitTrigger ());
160173 assertEqual ((uint16_t )1 , menuEnum1.getCurrentValue ());
161174
162175 // lastly try an enum item that does not go into editing because the callback returned false.
@@ -166,6 +179,5 @@ test(addingItemsAndMenuCallbacks) {
166179 menuMgr.onMenuSelect (false );
167180 assertTrue (menuMgrObserver.didTriggerStartEdit ());
168181 assertFalse (menuEnum1.isEditing ());
169-
170182}
171183
0 commit comments