@@ -81,4 +81,57 @@ final class UIMenuTests: XCTestCase {
81
81
82
82
XCTAssertFalse ( UIMenu . match ( lhs: oldMenu, rhs: updatedMenu) )
83
83
}
84
+
85
+ func testDoMenuActionMatch_whenMenusHaveSameActionsAndActionStates_returnsTrue( ) {
86
+ let action1_ON = UIAction ( title: " Action 1 " , state: . on, handler: { _ in } )
87
+ let action2_OFF = UIAction ( title: " Action 2 " , state: . off, handler: { _ in } )
88
+
89
+ let oldMenu = UIMenu ( title: " Test Menu " , children: [ action1_ON, action2_OFF] )
90
+ let updatedMenu = UIMenu ( title: " Test Menu " , children: [ action1_ON, action2_OFF] )
91
+
92
+ XCTAssertTrue ( UIMenu . match ( lhs: oldMenu, rhs: updatedMenu) )
93
+ }
94
+
95
+ func testDoMenuActionMatch_whenMenusAreDifferentButHaveSameActionsAndActionStates_returnsFalse( ) {
96
+ let action1_ON = UIAction ( title: " Action 1 " , state: . on, handler: { _ in } )
97
+ let action2_OFF = UIAction ( title: " Action 2 " , state: . off, handler: { _ in } )
98
+
99
+ let oldMenu = UIMenu ( title: " Old Menu " , children: [ action1_ON, action2_OFF] )
100
+ let updatedMenu = UIMenu ( title: " Updated Menu " , children: [ action1_ON, action2_OFF] )
101
+
102
+ XCTAssertTrue ( UIMenu . match ( lhs: oldMenu, rhs: updatedMenu) )
103
+ }
104
+
105
+ func testDoMenuActionMatch_whenMenusAreDifferentAndHaveSameActionsButDifferentActionStates_returnsFalse( ) {
106
+ let action1_ON = UIAction ( title: " Action 1 " , state: . on, handler: { _ in } )
107
+ let action1_OFF = UIAction ( title: " Action 1 " , state: . off, handler: { _ in } )
108
+ let action2_ON = UIAction ( title: " Action 2 " , state: . on, handler: { _ in } )
109
+ let action2_OFF = UIAction ( title: " Action 2 " , state: . off, handler: { _ in } )
110
+
111
+ let oldMenu = UIMenu ( title: " Old Menu " , children: [ action1_ON, action2_OFF] )
112
+ let updatedMenu = UIMenu ( title: " Updated Menu " , children: [ action1_OFF, action2_ON] )
113
+
114
+ XCTAssertFalse ( UIMenu . match ( lhs: oldMenu, rhs: updatedMenu) )
115
+ }
116
+
117
+ func testMatch_sameActionStates_returnsFalse( ) {
118
+ let action1_ON = UIAction ( title: " Action 1 " , state: . on, handler: { _ in } )
119
+ let menu1 = UIMenu ( title: " Updated Menu " , options: [ ] , children: [ action1_ON] )
120
+ let menu2 = UIMenu ( title: " Updated Menu " , options: [ ] , children: [ action1_ON] )
121
+
122
+ let result = UIMenu . match ( lhs: menu1, rhs: menu2)
123
+
124
+ XCTAssertTrue ( result)
125
+ }
126
+
127
+ func testMatch_differentActionStates_returnsFalse( ) {
128
+ let action1_ON = UIAction ( title: " Action 1 " , state: . on, handler: { _ in } )
129
+ let menu1 = UIMenu ( title: " Updated Menu " , options: [ ] , children: [ action1_ON] )
130
+ let action1_OFF = UIAction ( title: " Action 1 " , state: . off, handler: { _ in } )
131
+ let menu2 = UIMenu ( title: " Updated Menu " , options: [ ] , children: [ action1_OFF] )
132
+
133
+ let result = UIMenu . match ( lhs: menu1, rhs: menu2)
134
+
135
+ XCTAssertFalse ( result)
136
+ }
84
137
}
0 commit comments