| // |
| // GTMNSString+FindFolderTest.m |
| // |
| // Copyright 2006-2008 Google Inc. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| // use this file except in compliance with the License. You may obtain a copy |
| // of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| // License for the specific language governing permissions and limitations under |
| // the License. |
| // |
| |
| #import "GTMSenTestCase.h" |
| #import "GTMNSString+FindFolder.h" |
| |
| @interface GTMNSString_FindFolderTest : GTMTestCase |
| @end |
| |
| @implementation GTMNSString_FindFolderTest |
| |
| - (void)testStringWithPathForFolder { |
| // for gtm_stringWithPathForFolder:inDomain:doCreate: |
| // the parameters all get passed through to FSFindFolder so there's no point testing |
| // other combinations; our semantics will match FSFindFolder's |
| NSString *prefsPath = [NSString gtm_stringWithPathForFolder:kPreferencesFolderType |
| inDomain:kUserDomain |
| doCreate:NO]; |
| NSString *realPrefsPath = [@"~/Library/Preferences" stringByExpandingTildeInPath]; |
| XCTAssertEqualObjects(realPrefsPath, prefsPath, @"Found incorrect prefs path"); |
| |
| |
| // test the subfolder method; it should return nil if we pass NO and the |
| // subfolder doesn't already exist |
| |
| NSString *googCacheNoCreatePath = [NSString gtm_stringWithPathForFolder:kCachedDataFolderType |
| subfolderName:@"GTMUnitTestDuzntExist" |
| inDomain:kUserDomain |
| doCreate:NO]; |
| XCTAssertNil(googCacheNoCreatePath, @"Should not exist: %@", googCacheNoCreatePath); |
| |
| // test creating ~/Library/Cache/GTMUnitTestCreated |
| |
| NSString *folderName = @"GTMUnitTestCreated"; |
| NSString *gtmCachePath = [NSString gtm_stringWithPathForFolder:kCachedDataFolderType |
| subfolderName:folderName |
| inDomain:kUserDomain |
| doCreate:YES]; |
| NSString *testPath = [NSString gtm_stringWithPathForFolder:kCachedDataFolderType |
| inDomain:kUserDomain |
| doCreate:NO]; |
| NSString *testPathAppended = [testPath stringByAppendingPathComponent:folderName]; |
| XCTAssertEqualObjects(gtmCachePath, testPathAppended, @"Unexpected path name"); |
| |
| NSFileManager* fileMgr = [NSFileManager defaultManager]; |
| BOOL isDir = NO; |
| BOOL pathExists = [fileMgr fileExistsAtPath:gtmCachePath isDirectory:&isDir] && isDir; |
| XCTAssertTrue(pathExists, @"Path %@ is not existing like it should", gtmCachePath); |
| |
| // test finding it again w/o having to create it |
| NSString *gtmCachePath2 = [NSString gtm_stringWithPathForFolder:kCachedDataFolderType |
| subfolderName:folderName |
| inDomain:kUserDomain |
| doCreate:NO]; |
| XCTAssertEqualObjects(gtmCachePath2, gtmCachePath); |
| |
| #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 |
| NSError *error = nil; |
| BOOL didRemove = [fileMgr removeItemAtPath:gtmCachePath error:&error]; |
| XCTAssertTrue(didRemove, @"Error removing %@ (%@)", gtmCachePath, error); |
| #else |
| BOOL didRemove = [fileMgr removeFileAtPath:gtmCachePath |
| handler:nil]; |
| XCTAssertTrue(didRemove, @"Error removing %@", gtmCachePath); |
| #endif // MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 |
| } |
| |
| @end |