TwitterImagePipelineTests/TIPTests.m (54 lines of code) (raw):
//
// TIPTests.m
// TwitterImagePipeline
//
// Created on 8/31/16.
// Copyright © 2020 Twitter. All rights reserved.
//
#import "TIPTestImageFetchDownloadInternalWithStubbing.h"
#import "TIPTests.h"
Class TIPTestsImageFetchDownloadProviderOverrideClass()
{
static Class sImageFetchDownloadProviderClass = Nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSString *imageFetchClassName = nil;
for (NSBundle *innerBundle in [NSBundle allBundles]) {
if ([innerBundle.bundlePath hasSuffix:@".xctest"]) {
imageFetchClassName = [innerBundle objectForInfoDictionaryKey:kTIPTestsImageFetchDownloadProviderClassKey];
if (imageFetchClassName) {
break;
}
}
}
if (imageFetchClassName) {
sImageFetchDownloadProviderClass = NSClassFromString(imageFetchClassName);
if (!sImageFetchDownloadProviderClass) {
NSLog(@"\n\n********************\n\nFailed to load %@ class!\nNo %@ found!\n\n********************\n", kTIPTestsImageFetchDownloadProviderClassKey, imageFetchClassName);
}
}
if (!sImageFetchDownloadProviderClass) {
sImageFetchDownloadProviderClass = [TIPTestImageFetchDownloadProviderInternalWithStubbing class];
}
});
return sImageFetchDownloadProviderClass;
}
NSBundle *TIPTestsResourceBundle(void)
{
static NSBundle *sBundle = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSBundle *bundle = [NSBundle bundleWithIdentifier:@"com.twitter.TIPTestsResources"];
if (!bundle) {
for (NSBundle *innerBundle in [NSBundle allBundles]) {
if ([innerBundle.bundlePath hasSuffix:@".xctest"]) {
bundle = [NSBundle bundleWithPath:[innerBundle.bundlePath stringByAppendingPathComponent:@"TIPTestsResources.bundle"]];
if (!bundle) {
bundle = [NSBundle bundleWithPath:[innerBundle.resourcePath stringByAppendingPathComponent:@"TIPTestsResources.bundle"]];
}
}
if (bundle) {
break;
}
}
}
sBundle = bundle;
});
if (!sBundle) {
@throw [NSException exceptionWithName:NSGenericException reason:@"Missing TIPTests.framework bundle!" userInfo:nil];
}
return sBundle;
}