@@ -157,35 +157,48 @@ - (void)testSDScaledImageForKey {
157
157
- (void )testSDCallbackQueue {
158
158
XCTestExpectation *expectation1 = [self expectationWithDescription: @" SDCallbackQueue SafeExecute works" ];
159
159
XCTestExpectation *expectation2 = [self expectationWithDescription: @" SDCallbackQueue Dispatch works" ];
160
+ XCTestExpectation *expectation3 = [self expectationWithDescription: @" SDCallbackQueue Invoke works" ];
160
161
dispatch_queue_t queue = dispatch_queue_create (" testSDCallbackQueue" , NULL );
161
162
SDCallbackQueue *callbackQueue = [[SDCallbackQueue alloc ] initWithDispatchQueue: queue];
162
- __block BOOL called1 = NO ;
163
+ __block BOOL called = NO ;
163
164
[callbackQueue sync: ^{
164
- called1 = YES ;
165
+ called = YES ;
165
166
}];
166
- expect (called1 ).beTruthy ();
167
+ expect (called ).beTruthy ();
167
168
168
- __block BOOL called2 = NO ;
169
+ __block BOOL called1 = NO ;
169
170
callbackQueue.policy = SDCallbackPolicySafeExecute;
170
171
dispatch_async (queue, ^{
171
172
// Should execute in sync
172
173
[callbackQueue async: ^{
173
- called2 = YES ;
174
+ called1 = YES ;
174
175
[expectation1 fulfill ];
175
176
}];
176
- expect (called2 ).beTruthy ();
177
+ expect (called1 ).beTruthy ();
177
178
});
178
179
179
180
SDCallbackQueue *callbackQueue2 = [[SDCallbackQueue alloc ] initWithDispatchQueue: queue];
180
- __block BOOL called3 = NO ;
181
+ __block BOOL called2 = NO ;
181
182
callbackQueue2.policy = SDCallbackPolicyDispatch;
182
183
dispatch_async (queue, ^{
183
184
// Should execute in async
184
185
[callbackQueue2 async: ^{
185
- called3 = YES ;
186
+ called2 = YES ;
186
187
[expectation2 fulfill ];
187
188
}];
188
- expect (called3).beFalsy ();
189
+ expect (called2).beFalsy ();
190
+ });
191
+
192
+ SDCallbackQueue *callbackQueue3 = [[SDCallbackQueue alloc ] initWithDispatchQueue: queue];
193
+ __block BOOL called3 = NO ;
194
+ callbackQueue3.policy = SDCallbackPolicyInvoke;
195
+ dispatch_async (queue, ^{
196
+ // Should execute in sync
197
+ [callbackQueue3 async: ^{
198
+ called3 = YES ;
199
+ [expectation3 fulfill ];
200
+ }];
201
+ expect (called3).beTruthy ();
189
202
});
190
203
191
204
[self waitForExpectationsWithCommonTimeout ];
0 commit comments