chemistry-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gavincornw...@apache.org
Subject svn commit: r1631391 - in /chemistry/objectivecmis/trunk: ObjectiveCMIS/Bindings/ ObjectiveCMIS/Bindings/AtomPub/ ObjectiveCMIS/Bindings/Browser/ ObjectiveCMIS/Client/ ObjectiveCMIS/Common/ ObjectiveCMISTests/
Date Mon, 13 Oct 2014 13:41:53 GMT
Author: gavincornwell
Date: Mon Oct 13 13:41:53 2014
New Revision: 1631391

URL: http://svn.apache.org/r1631391
Log:
CMIS-856: Add support for retrieving a users checked out documents

Modified:
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubNavigationService.m
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/Browser/CMISBrowserNavigationService.m
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISNavigationService.h
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.h
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m
    chemistry/objectivecmis/trunk/ObjectiveCMISTests/ObjectiveCMISTests.m

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubNavigationService.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubNavigationService.m?rev=1631391&r1=1631390&r2=1631391&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubNavigationService.m
(original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubNavigationService.m
Mon Oct 13 13:41:53 2014
@@ -155,4 +155,68 @@
     return request;
 }
 
+- (CMISRequest*)retrieveCheckedOutDocumentsInFolder:(NSString *)folderId
+                                            orderBy:(NSString *)orderBy
+                                             filter:(NSString *)filter
+                                      relationships:(CMISIncludeRelationship)relationships
+                                    renditionFilter:(NSString *)renditionFilter
+                            includeAllowableActions:(BOOL)includeAllowableActions
+                                          skipCount:(NSNumber *)skipCount
+                                           maxItems:(NSNumber *)maxItems
+                                    completionBlock:(void (^)(CMISObjectList *objectList,
NSError *error))completionBlock
+{
+    // Get checked out link
+    NSString *checkedoutLink = [self.bindingSession objectForKey:kCMISAtomBindingSessionKeyCheckedoutCollection];
+    if (checkedoutLink == nil) {
+        CMISLogDebug(@"Checkedout not supported!");
+        completionBlock(nil, [CMISErrors createCMISErrorWithCode:kCMISErrorCodeNotSupported
detailedDescription:nil]);
+        return nil;
+    }
+    
+    // add the parameters to the URL (CMISUrlUtil will not append if the param name or value
is nil)
+    checkedoutLink = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterFolderId value:folderId
urlString:checkedoutLink];
+    checkedoutLink = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterFilter value:filter
urlString:checkedoutLink];
+    checkedoutLink = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterOrderBy value:orderBy
urlString:checkedoutLink];
+    checkedoutLink = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterIncludeAllowableActions
value:(includeAllowableActions ? @"true" : @"false") urlString:checkedoutLink];
+    checkedoutLink = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterIncludeRelationships
value:[CMISEnums stringForIncludeRelationShip:relationships] urlString:checkedoutLink];
+    checkedoutLink = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterRenditionFilter
value:renditionFilter urlString:checkedoutLink];
+    checkedoutLink = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterMaxItems value:[maxItems
stringValue] urlString:checkedoutLink];
+    checkedoutLink = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterSkipCount value:[skipCount
stringValue] urlString:checkedoutLink];
+    
+    // retrieve the list
+    CMISRequest *request = [[CMISRequest alloc] init];
+    [self.bindingSession.networkProvider invokeGET:[NSURL URLWithString:checkedoutLink]
+                                           session:self.bindingSession
+                                       cmisRequest:request
+                                   completionBlock:^(CMISHttpResponse *httpResponse, NSError
*error) {
+        if (httpResponse) {
+            if (httpResponse.data == nil) {
+                NSError *error = [CMISErrors createCMISErrorWithCode:kCMISErrorCodeConnection
detailedDescription:nil];
+                completionBlock(nil, error);
+                return;
+            }
+             
+            // Parse the feed (containing entries for the documents)
+            CMISAtomFeedParser *parser = [[CMISAtomFeedParser alloc] initWithData:httpResponse.data];
+            NSError *internalError = nil;
+            if ([parser parseAndReturnError:&internalError]) {
+                NSString *nextLink = [parser.linkRelations linkHrefForRel:kCMISLinkRelationNext];
+                 
+                CMISObjectList *objectList = [[CMISObjectList alloc] init];
+                objectList.hasMoreItems = (nextLink != nil);
+                objectList.numItems = parser.numItems;
+                objectList.objects = parser.entries;
+                completionBlock(objectList, nil);
+            } else {
+                NSError *error = [CMISErrors cmisError:internalError cmisErrorCode:kCMISErrorCodeRuntime];
+                completionBlock(nil, error);
+            }
+        } else {
+            completionBlock(nil, error);
+        }
+    }];
+
+    return request;
+}
+
 @end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/Browser/CMISBrowserNavigationService.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/Browser/CMISBrowserNavigationService.m?rev=1631391&r1=1631390&r2=1631391&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/Browser/CMISBrowserNavigationService.m
(original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/Browser/CMISBrowserNavigationService.m
Mon Oct 13 13:41:53 2014
@@ -112,4 +112,52 @@
     return cmisRequest;
 }
 
+- (CMISRequest*)retrieveCheckedOutDocumentsInFolder:(NSString *)folderId
+                                            orderBy:(NSString *)orderBy
+                                             filter:(NSString *)filter
+                                      relationships:(CMISIncludeRelationship)relationships
+                                    renditionFilter:(NSString *)renditionFilter
+                            includeAllowableActions:(BOOL)includeAllowableActions
+                                          skipCount:(NSNumber *)skipCount
+                                           maxItems:(NSNumber *)maxItems
+                                    completionBlock:(void (^)(CMISObjectList *objectList,
NSError *error))completionBlock
+{
+    NSString *checkedOutUrl = nil;
+    if (folderId != nil) {
+        checkedOutUrl = [self retrieveObjectUrlForObjectWithId:folderId selector:kCMISBrowserJSONSelectorCheckedout];
+    } else {
+        checkedOutUrl = [self retrieveRepositoryUrlWithSelector:kCMISBrowserJSONSelectorCheckedout];
+    }
+    checkedOutUrl = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterFilter value:filter
urlString:checkedOutUrl];
+    checkedOutUrl = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterOrderBy value:orderBy
urlString:checkedOutUrl];
+    checkedOutUrl = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterIncludeAllowableActions
boolValue:includeAllowableActions urlString:checkedOutUrl];
+    checkedOutUrl = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterIncludeRelationships
value:[CMISEnums stringForIncludeRelationShip:relationships] urlString:checkedOutUrl];
+    checkedOutUrl = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterRenditionFilter
value:renditionFilter urlString:checkedOutUrl];
+    checkedOutUrl = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterMaxItems numberValue:maxItems
urlString:checkedOutUrl];
+    checkedOutUrl = [CMISURLUtil urlStringByAppendingParameter:kCMISParameterSkipCount numberValue:skipCount
urlString:checkedOutUrl];
+    checkedOutUrl = [CMISURLUtil urlStringByAppendingParameter:kCMISBrowserJSONParameterSuccinct
value:kCMISParameterValueTrue urlString:checkedOutUrl];
+    
+    CMISRequest *cmisRequest = [[CMISRequest alloc] init];
+    
+    [self.bindingSession.networkProvider invokeGET:[NSURL URLWithString:checkedOutUrl]
+                                           session:self.bindingSession
+                                       cmisRequest:cmisRequest
+                                   completionBlock:^(CMISHttpResponse *httpResponse, NSError
*error) {
+                                       if (httpResponse.statusCode == 200 && httpResponse.data)
{
+                                           CMISBrowserTypeCache *typeCache = [[CMISBrowserTypeCache
alloc] initWithRepositoryId:self.bindingSession.repositoryId bindingService:self];
+                                           [CMISBrowserUtil objectListFromJSONData:httpResponse.data
typeCache:typeCache isQueryResult:NO completionBlock:^(CMISObjectList *objectList, NSError
*error) {
+                                               if (error) {
+                                                   completionBlock(nil, error);
+                                               } else {
+                                                   completionBlock(objectList, nil);
+                                               }
+                                           }];
+                                       } else {
+                                           completionBlock(nil, error);
+                                       }
+                                   }];
+    
+    return cmisRequest;
+}
+
 @end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISNavigationService.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISNavigationService.h?rev=1631391&r1=1631390&r2=1631391&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISNavigationService.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISNavigationService.h Mon Oct 13
13:41:53 2014
@@ -31,15 +31,15 @@
  * completionBlock returns object list or nil if unsuccessful
  */
 - (CMISRequest*)retrieveChildren:(NSString *)objectId
-                 orderBy:(NSString *)orderBy
-                  filter:(NSString *)filter
-           relationships:(CMISIncludeRelationship)relationships
-         renditionFilter:(NSString *)renditionFilter
- includeAllowableActions:(BOOL)includeAllowableActions
-      includePathSegment:(BOOL)includePathSegment
-               skipCount:(NSNumber *)skipCount
-                maxItems:(NSNumber *)maxItems
-         completionBlock:(void (^)(CMISObjectList *objectList, NSError *error))completionBlock;
+                         orderBy:(NSString *)orderBy
+                          filter:(NSString *)filter
+                   relationships:(CMISIncludeRelationship)relationships
+                 renditionFilter:(NSString *)renditionFilter
+         includeAllowableActions:(BOOL)includeAllowableActions
+              includePathSegment:(BOOL)includePathSegment
+                       skipCount:(NSNumber *)skipCount
+                        maxItems:(NSNumber *)maxItems
+                 completionBlock:(void (^)(CMISObjectList *objectList, NSError *error))completionBlock;
 
 /**
  * Retrieves the parent of a given object.
@@ -49,12 +49,24 @@
  * completionBlock returns array of parents or nil if unsuccessful
  */
 - (CMISRequest*)retrieveParentsForObject:(NSString *)objectId
-                          filter:(NSString *)filter
-                   relationships:(CMISIncludeRelationship)relationships
-                 renditionFilter:(NSString *)renditionFilter
-         includeAllowableActions:(BOOL)includeAllowableActions
-      includeRelativePathSegment:(BOOL)includeRelativePathSegment
-                 completionBlock:(void (^)(NSArray *parents, NSError *error))completionBlock;
+                                  filter:(NSString *)filter
+                           relationships:(CMISIncludeRelationship)relationships
+                         renditionFilter:(NSString *)renditionFilter
+                 includeAllowableActions:(BOOL)includeAllowableActions
+              includeRelativePathSegment:(BOOL)includeRelativePathSegment
+                         completionBlock:(void (^)(NSArray *parents, NSError *error))completionBlock;
 
+/**
+ * Retrieves the checked out documents for the current user.
+ */
+- (CMISRequest*)retrieveCheckedOutDocumentsInFolder:(NSString *)folderId
+                                            orderBy:(NSString *)orderBy
+                                             filter:(NSString *)filter
+                                      relationships:(CMISIncludeRelationship)relationships
+                                    renditionFilter:(NSString *)renditionFilter
+                            includeAllowableActions:(BOOL)includeAllowableActions
+                                          skipCount:(NSNumber *)skipCount
+                                           maxItems:(NSNumber *)maxItems
+                                    completionBlock:(void (^)(CMISObjectList *objectList,
NSError *error))completionBlock;
 
 @end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.h?rev=1631391&r1=1631390&r2=1631391&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.h Mon Oct 13 13:41:53 2014
@@ -76,7 +76,20 @@
  */
 - (CMISRequest*)retrieveFolderWithOperationContext:(CMISOperationContext *)operationContext
                            completionBlock:(void (^)(CMISFolder *folder, NSError *error))completionBlock;
- 
+
+/**
+ * Retrieves a list of documents the current user has checked out.
+ * completionBlock returns the checked out documents as a paged results object or nil if
unsuccessful.
+ */
+- (CMISRequest*)retrieveCheckedOutDocumentsWithCompletionBlock:(void (^)(CMISPagedResult
*result, NSError *error))completionBlock;
+
+/**
+ * Retrieves a list of documents the current user has checked out using the provided operation
context.
+ * completionBlock returns the checked out documents as a paged results object or nil if
unsuccessful.
+ */
+- (CMISRequest*)retrieveCheckedOutDocumentsWithOperationContext:(CMISOperationContext *)operationContext
+                                                completionBlock:(void (^)(CMISPagedResult
*result, NSError *error))completionBlock;
+
 /**
  * Retrieves the object with the given identifier.
  * completionBlock returns the CMIS object or nil if unsuccessful

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m?rev=1631391&r1=1631390&r2=1631391&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m Mon Oct 13 13:41:53 2014
@@ -186,6 +186,59 @@
     }];
 }
 
+- (CMISRequest*)retrieveCheckedOutDocumentsWithCompletionBlock:(void (^)(CMISPagedResult
*result, NSError *error))completionBlock
+{
+    return [self retrieveCheckedOutDocumentsWithOperationContext:[CMISOperationContext defaultOperationContext]
completionBlock:completionBlock];
+}
+
+- (CMISRequest*)retrieveCheckedOutDocumentsWithOperationContext:(CMISOperationContext *)operationContext
+                                                completionBlock:(void (^)(CMISPagedResult
*result, NSError *error))completionBlock
+{
+    CMISRequest *request = [[CMISRequest alloc] init];
+    CMISFetchNextPageBlock fetchNextPageBlock = ^(int skipCount, int maxItems, CMISFetchNextPageBlockCompletionBlock
pageBlockCompletionBlock)
+    {
+        // Fetch results through navigationService
+        CMISRequest * checkedoutRequest = [self.binding.navigationService retrieveCheckedOutDocumentsInFolder:nil
+                                                                                 orderBy:operationContext.orderBy
+                                                                                  filter:operationContext.filterString
+                                                                           relationships:operationContext.relationships
+                                                                         renditionFilter:operationContext.renditionFilterString
+                                                                 includeAllowableActions:operationContext.includeAllowableActions
+                                                                               skipCount:[NSNumber
numberWithInt:skipCount]
+                                                                                maxItems:[NSNumber
numberWithInt:maxItems]
+                                                                         completionBlock:^(CMISObjectList
*objectList, NSError *error) {
+                                                                             if (error) {
+                                                                                 pageBlockCompletionBlock(nil,
[CMISErrors cmisError:error cmisErrorCode:kCMISErrorCodeConnection]);
+                                                                             } else {
+                                                                                 CMISFetchNextPageBlockResult
*result = [[CMISFetchNextPageBlockResult alloc] init];
+                                                                                 result.hasMoreItems
= objectList.hasMoreItems;
+                                                                                 result.numItems
= objectList.numItems;
+                                                                                 
+                                                                                 [self.objectConverter
convertObjects:objectList.objects
+                                                                                        
             completionBlock:^(NSArray *objects, NSError *error) {
+                                                                                        
                 result.resultArray = objects;
+                                                                                        
                 pageBlockCompletionBlock(result, error);
+                                                                                        
             }];
+                                                                             }
+                                                                         }];
+        
+        // set the underlying request object on the object returned to the original caller
+        request.httpRequest = checkedoutRequest.httpRequest;
+    };
+    
+    [CMISPagedResult pagedResultUsingFetchBlock:fetchNextPageBlock
+                                limitToMaxItems:operationContext.maxItemsPerPage
+                             startFromSkipCount:operationContext.skipCount
+                                completionBlock:^(CMISPagedResult *result, NSError *error)
{
+                                    if (error) {
+                                        completionBlock(nil, [CMISErrors cmisError:error
cmisErrorCode:kCMISErrorCodeRuntime]);
+                                    } else {
+                                        completionBlock(result, nil);
+                                    }
+                                }];
+    return request;
+}
+
 - (CMISRequest*)retrieveObject:(NSString *)objectId completionBlock:(void (^)(CMISObject
*object, NSError *error))completionBlock
 {
     return [self retrieveObject:objectId operationContext:[CMISOperationContext defaultOperationContext]
completionBlock:completionBlock];

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h?rev=1631391&r1=1631390&r2=1631391&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h Mon Oct 13 13:41:53
2014
@@ -103,6 +103,7 @@ extern NSString * const kCMISParameterIn
 extern NSString * const kCMISParameterFilter;
 extern NSString * const kCMISParameterMaxItems;
 extern NSString * const kCMISParameterObjectId;
+extern NSString * const kCMISParameterFolderId;
 extern NSString * const kCMISParameterOrderBy;
 extern NSString * const kCMISParameterIncludePathSegment;
 extern NSString * const kCMISParameterIncludeRelationships;

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m?rev=1631391&r1=1631390&r2=1631391&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m Mon Oct 13 13:41:53
2014
@@ -115,6 +115,7 @@ NSString * const kCMISParameterIncludeAl
 NSString * const kCMISParameterFilter = @"filter";
 NSString * const kCMISParameterMaxItems = @"maxItems";
 NSString * const kCMISParameterObjectId = @"objectId";
+NSString * const kCMISParameterFolderId = @"folderId";
 NSString * const kCMISParameterOrderBy = @"orderBy";
 NSString * const kCMISParameterIncludePathSegment = @"includePathSegment";
 NSString * const kCMISParameterIncludeRelationships = @"includeRelationships";

Modified: chemistry/objectivecmis/trunk/ObjectiveCMISTests/ObjectiveCMISTests.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMISTests/ObjectiveCMISTests.m?rev=1631391&r1=1631390&r2=1631391&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMISTests/ObjectiveCMISTests.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMISTests/ObjectiveCMISTests.m Mon Oct 13 13:41:53
2014
@@ -2368,6 +2368,67 @@
     }];
 }
 
+- (void)testCheckedOutDocuments
+{
+    [self runTest:^ {
+        // Upload test file
+        [self uploadTestFileWithCompletionBlock:^(CMISDocument *testDocument) {
+            
+            XCTAssertNotNil(testDocument, @"Expected testDocument to be uploaded!");
+            
+            // checkout the uploaded test document
+            [testDocument checkOutWithCompletionBlock:^(CMISDocument *privateWorkingCopy,
NSError *checkOutError) {
+                XCTAssertNotNil(privateWorkingCopy, @"Expected to recieve the private working
copy object");
+
+                // retrieve the checked out documents
+                [self.session retrieveCheckedOutDocumentsWithCompletionBlock:^(CMISPagedResult
*checkedOutDocs, NSError *retrieveError) {
+                    XCTAssertNotNil(checkedOutDocs, @"Expected to receive a paged result");
+                    
+                    // ensure the PWC is part of the list
+                    BOOL pwcFound = NO;
+                    for (CMISObject *object in checkedOutDocs.resultArray)
+                    {
+                        if ([object.identifier isEqualToString:privateWorkingCopy.identifier])
+                        {
+                            pwcFound = YES;
+                            break;
+                        }
+                    }
+                    XCTAssertTrue(pwcFound, @"Expected to find the private working copy in
the checkedout files");
+                    
+                    // cancel checkout of the test document
+                    [privateWorkingCopy cancelCheckOutWithCompletionBlock:^(BOOL checkoutCancelled,
NSError *cancelError) {
+                        XCTAssertTrue(checkoutCancelled, @"Expected cancel checkout to be
successful");
+                        
+                        // retrieve checked out documents and ensure test document is not
listed
+                        [self.session retrieveCheckedOutDocumentsWithCompletionBlock:^(CMISPagedResult
*checkedOutDocs2, NSError *retrieveError2) {
+                            XCTAssertNotNil(checkedOutDocs2, @"Expected to receive a paged
result");
+                            
+                            // ensure the PWC is NOT part of the list
+                            BOOL pwcFound2 = NO;
+                            for (CMISObject *object in checkedOutDocs2.resultArray)
+                            {
+                                if ([object.identifier isEqualToString:privateWorkingCopy.identifier])
+                                {
+                                    pwcFound2 = YES;
+                                    break;
+                                }
+                            }
+                            XCTAssertFalse(pwcFound2, @"Did not expect to find the private
working copy in the checkedout files");
+                            
+                            // delete the test document
+                            [self deleteDocumentAndVerify:testDocument completionBlock:^{
+                                // mark the test as completed
+                                self.testCompleted = YES;
+                            }];
+                        }];
+                    }];
+                }];
+            }];
+        }];
+    }];
+}
+
 - (void)testSecondaryTypes
 {
     [self runTest:^ {



Mime
View raw message