Skip to content

Commit

Permalink
Remove Xcode 7 warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
irace committed Sep 10, 2015
1 parent 26587be commit e5cd024
Show file tree
Hide file tree
Showing 8 changed files with 54 additions and 35 deletions.
6 changes: 6 additions & 0 deletions Tests/CustomParameters.m
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

static NSString * const CustomParameterKey = @"CustomParameterKey";

@interface CustomParameters ()

- (instancetype)initWithDictionary:(NSDictionary *)dictionary NS_DESIGNATED_INITIALIZER;

@end

@implementation CustomParameters

- (instancetype)initWithDictionary:(NSDictionary *)dictionary {
Expand Down
2 changes: 1 addition & 1 deletion Tests/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>com.tumblr.$(PRODUCT_NAME:rfc1034identifier)</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
Expand Down
3 changes: 2 additions & 1 deletion Tests/XExtensionItemTestHelpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
@implementation XExtensionItemSource (Testing)

- (id)facebookItem {
return [self activityViewController:nil itemForActivityType:UIActivityTypePostToFacebook];
return [self activityViewController:[[UIActivityViewController alloc] initWithActivityItems:@[] applicationActivities:@[]]
itemForActivityType:UIActivityTypePostToFacebook];
}

@end
Expand Down
52 changes: 28 additions & 24 deletions Tests/XExtensionItemTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -102,12 +102,12 @@ - (void)testPlaceholderInitializerProducesDifferentItemsBasedOnActivityType {
NSExtensionItem *expectedTwitter = [[NSExtensionItem alloc] init];
expectedTwitter.attachments = @[[[NSItemProvider alloc] initWithItem:twitterString typeIdentifier:(NSString *)kUTTypePlainText]];

XExtensionItemAssertEqualItems(expectedTwitter, [itemSource activityViewController:nil itemForActivityType:UIActivityTypePostToTwitter]);
XExtensionItemAssertEqualItems(expectedTwitter, [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToTwitter]);

NSExtensionItem *expectedNonTwitter = [[NSExtensionItem alloc] init];
expectedNonTwitter.attachments = @[[[NSItemProvider alloc] initWithItem:defaultString typeIdentifier:(NSString *)kUTTypePlainText]];

XExtensionItemAssertEqualItems(expectedNonTwitter, [itemSource activityViewController:nil itemForActivityType:UIActivityTypePostToFacebook]);
XExtensionItemAssertEqualItems(expectedNonTwitter, [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToFacebook]);
}

- (void)testPlaceholderProvidedTypeIdentifierIsReturnedByActivityItemSourceDelegateMethod {
Expand All @@ -117,33 +117,33 @@ - (void)testPlaceholderProvidedTypeIdentifierIsReturnedByActivityItemSourceDeleg
typeIdentifier:dataTypeIdentifier
itemBlock:nil];

XCTAssertEqualObjects(dataTypeIdentifier, [source activityViewController:nil dataTypeIdentifierForActivityType:nil]);
XCTAssertEqualObjects(dataTypeIdentifier, [source activityViewController:[[self class] activityViewController] dataTypeIdentifierForActivityType:nil]);
}

- (void)testPlaceholderTypeIdentifierIsInferredForURL {
XExtensionItemSource *source = [[XExtensionItemSource alloc] initWithURL:[NSURL URLWithString:@"http://irace.me"]];

XCTAssertEqualObjects((NSString *)kUTTypeURL, [source activityViewController:nil dataTypeIdentifierForActivityType:nil]);
XCTAssertEqualObjects((NSString *)kUTTypeURL, [source activityViewController:[[self class] activityViewController] dataTypeIdentifierForActivityType:nil]);
}

- (void)testPlaceholderTypeIdentifierIsInferredForFileURL {
XExtensionItemSource *source = [[XExtensionItemSource alloc] initWithURL:
[NSURL fileURLWithPath:[[NSBundle bundleForClass:self.class] pathForResource:@"mountain"
ofType:@"png"]]];

XCTAssertEqualObjects((NSString *)kUTTypePNG, [source activityViewController:nil dataTypeIdentifierForActivityType:nil]);
XCTAssertEqualObjects((NSString *)kUTTypePNG, [source activityViewController:[[self class] activityViewController] dataTypeIdentifierForActivityType:nil]);
}

- (void)testPlaceholderTypeIdentifierIsInferredForString {
XExtensionItemSource *source = [[XExtensionItemSource alloc] initWithString:@"Foo"];

XCTAssertEqualObjects((NSString *)kUTTypePlainText, [source activityViewController:nil dataTypeIdentifierForActivityType:nil]);
XCTAssertEqualObjects((NSString *)kUTTypePlainText, [source activityViewController:[[self class] activityViewController] dataTypeIdentifierForActivityType:nil]);
}

- (void)testPlaceholderTypeIdentifierIsInferredForImage {
XExtensionItemSource *source = [[XExtensionItemSource alloc] initWithImage:[[UIImage alloc] init]];

XCTAssertEqualObjects((NSString *)kUTTypeImage, [source activityViewController:nil dataTypeIdentifierForActivityType:nil]);
XCTAssertEqualObjects((NSString *)kUTTypeImage, [source activityViewController:[[self class] activityViewController] dataTypeIdentifierForActivityType:nil]);
}

#pragma mark - Output verification
Expand All @@ -154,7 +154,7 @@ - (void)testTextReturnedForSystemActivityThatCannotProcessExtensionItemInput {
XExtensionItemSource *source = [[XExtensionItemSource alloc] initWithString:text];
source.additionalAttachments = @[[[NSItemProvider alloc] initWithItem:@"Bar" typeIdentifier:(NSString *)kUTTypeText]];

XCTAssertEqualObjects(text, [source activityViewController:nil itemForActivityType:UIActivityTypeMail]);
XCTAssertEqualObjects(text, [source activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypeMail]);
}

- (void)testExtensionItemReturnedForSystemActivityThatCanProcessExtensionItemInput {
Expand All @@ -166,7 +166,7 @@ - (void)testExtensionItemReturnedForSystemActivityThatCanProcessExtensionItemInp
NSExtensionItem *expected = [[NSExtensionItem alloc] init];
expected.attachments = attachments;

id actual = [source activityViewController:nil itemForActivityType:UIActivityTypePostToTwitter];
id actual = [source activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToTwitter];

XCTAssertTrue([actual isKindOfClass:[NSExtensionItem class]]);
}
Expand All @@ -180,7 +180,7 @@ - (void)testExtensionItemReturnedForNonSystemExtension {
NSExtensionItem *expected = [[NSExtensionItem alloc] init];
expected.attachments = attachments;

NSExtensionItem *actual = [source activityViewController:nil itemForActivityType:@"com.irace.me.SomeExtension"];
NSExtensionItem *actual = [source activityViewController:[[self class] activityViewController] itemForActivityType:@"com.irace.me.SomeExtension"];

XCTAssertTrue([actual isKindOfClass:[NSExtensionItem class]]);
}
Expand All @@ -202,7 +202,7 @@ - (void)testTitleReturnedForSubject {
XExtensionItemSource *itemSource = [[XExtensionItemSource alloc] initWithString:@""];
itemSource.title = subject;

XCTAssertEqualObjects(subject, [itemSource activityViewController:nil subjectForActivityType:UIActivityTypeMail]);
XCTAssertEqualObjects(subject, [itemSource activityViewController:[[self class] activityViewController] subjectForActivityType:UIActivityTypeMail]);
}

- (void)testAttributedContentText {
Expand All @@ -222,12 +222,12 @@ - (void)testSeparateAttributedContentTextValueForTwitter {
itemSource.attributedContentText = defaultContentText;
[itemSource setAttributedContentText:twitterContentText forActivityType:UIActivityTypePostToTwitter];

NSExtensionItem *defaultExtensionItem = [itemSource activityViewController:nil itemForActivityType:nil];
NSExtensionItem *defaultExtensionItem = [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToFacebook];

// Wish I could test `NSAttributedString` equality here, but `NSExtensionItem`’s `attributedContentText` setter appears to add an `NSParagraphStyle` attribute
XCTAssertEqualObjects(defaultContentText.string, defaultExtensionItem.attributedContentText.string);

NSExtensionItem *twitterExtensionItem = [itemSource activityViewController:nil itemForActivityType:UIActivityTypePostToTwitter];
NSExtensionItem *twitterExtensionItem = [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToTwitter];

// Wish I could test `NSAttributedString` equality here, but `NSExtensionItem`’s `attributedContentText` setter appears to add an `NSParagraphStyle` attribute
XCTAssertEqualObjects(twitterContentText.string, twitterExtensionItem.attributedContentText.string);
Expand All @@ -241,24 +241,24 @@ - (void)testAttributedContentForActivityTypeClearedByPassingNil {
itemSource.attributedContentText = defaultContentText;
[itemSource setAttributedContentText:twitterContentText forActivityType:UIActivityTypePostToTwitter];

NSExtensionItem *defaultExtensionItem = [itemSource activityViewController:nil itemForActivityType:nil];
NSExtensionItem *twitterExtensionItem = [itemSource activityViewController:nil itemForActivityType:UIActivityTypePostToTwitter];
NSExtensionItem *defaultExtensionItem = [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToFacebook];
NSExtensionItem *twitterExtensionItem = [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToTwitter];

XCTAssertNotNil(defaultExtensionItem.attributedContentText);
XCTAssertNotNil(twitterExtensionItem.attributedContentText);

[itemSource setAttributedContentText:nil forActivityType:nil];

defaultExtensionItem = [itemSource activityViewController:nil itemForActivityType:nil];
twitterExtensionItem = [itemSource activityViewController:nil itemForActivityType:UIActivityTypePostToTwitter];
defaultExtensionItem = [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToFacebook];
twitterExtensionItem = [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToTwitter];

XCTAssertNil(defaultExtensionItem.attributedContentText);
XCTAssertNotNil(twitterExtensionItem.attributedContentText);

[itemSource setAttributedContentText:nil forActivityType:UIActivityTypePostToTwitter];

defaultExtensionItem = [itemSource activityViewController:nil itemForActivityType:nil];
twitterExtensionItem = [itemSource activityViewController:nil itemForActivityType:UIActivityTypePostToTwitter];
defaultExtensionItem = [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToFacebook];
twitterExtensionItem = [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToTwitter];

XCTAssertNil(defaultExtensionItem.attributedContentText);
XCTAssertNil(twitterExtensionItem.attributedContentText);
Expand Down Expand Up @@ -358,13 +358,13 @@ - (void)testSeparateAdditionalAttachmentsForTwitter {
defaultExpected.attachments = @[[[NSItemProvider alloc] initWithItem:URL typeIdentifier:(NSString *)kUTTypeURL],
[[NSItemProvider alloc] initWithItem:defaultText typeIdentifier:(NSString *)kUTTypePlainText]];

XExtensionItemAssertEqualItems(defaultExpected, [itemSource activityViewController:nil itemForActivityType:nil]);
XExtensionItemAssertEqualItems(defaultExpected, [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToFacebook]);

NSExtensionItem *twitterExpected = [[NSExtensionItem alloc] init];
twitterExpected.attachments = @[[[NSItemProvider alloc] initWithItem:URL typeIdentifier:(NSString *)kUTTypeURL],
[[NSItemProvider alloc] initWithItem:twitterText typeIdentifier:(NSString *)kUTTypePlainText]];

XExtensionItemAssertEqualItems(twitterExpected, [itemSource activityViewController:nil itemForActivityType:UIActivityTypePostToTwitter]);
XExtensionItemAssertEqualItems(twitterExpected, [itemSource activityViewController:[[self class] activityViewController] itemForActivityType:UIActivityTypePostToTwitter]);
}

- (void)testAdditionalAttachmentsForActivityTypeClearedByPassingNil {
Expand Down Expand Up @@ -440,14 +440,14 @@ - (void)testThumbnailProvider {

};

XCTAssertEqualObjects(emailImage, [itemSource activityViewController:nil thumbnailImageForActivityType:UIActivityTypePostToTwitter suggestedSize:CGSizeZero]);
XCTAssertEqualObjects(defaultImage, [itemSource activityViewController:nil thumbnailImageForActivityType:UIActivityTypeMail suggestedSize:CGSizeZero]);
XCTAssertEqualObjects(emailImage, [itemSource activityViewController:[[self class] activityViewController] thumbnailImageForActivityType:UIActivityTypePostToTwitter suggestedSize:CGSizeZero]);
XCTAssertEqualObjects(defaultImage, [itemSource activityViewController:[[self class] activityViewController] thumbnailImageForActivityType:UIActivityTypeMail suggestedSize:CGSizeZero]);
}

- (void)testActivityItemSourceDelegateDoesNotThrowIfNoThumbnailBlock {
XExtensionItemSource *itemSource = [[XExtensionItemSource alloc] initWithString:@""];

XCTAssertNoThrow([itemSource activityViewController:nil thumbnailImageForActivityType:UIActivityTypePostToTwitter suggestedSize:CGSizeZero]);
XCTAssertNoThrow([itemSource activityViewController:[[self class] activityViewController] thumbnailImageForActivityType:UIActivityTypePostToTwitter suggestedSize:CGSizeZero]);
}

#pragma mark - Custom parameters
Expand Down Expand Up @@ -504,6 +504,10 @@ - (void)testUserInfoAndCustomParameters {

#pragma mark - Misc.

+ (UIActivityViewController *)activityViewController {
return [[UIActivityViewController alloc] initWithActivityItems:@[] applicationActivities:@[]];
}

- (void)testTypeSafety {
/*
Try to break things by intentionally using the wrong types for these keys, then calling methods that would only
Expand Down
4 changes: 2 additions & 2 deletions XExtensionItem.podspec.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "XExtensionItem",
"version": "0.9.2",
"version": "0.9.3",
"summary": "Easier sharing between iOS applications and share extensions.",
"authors": {
"Bryan Irace": "bryan@irace.me"
Expand All @@ -16,7 +16,7 @@
"requires_arc": true,
"source": {
"git": "https://github.com/tumblr/XExtensionItem.git",
"tag": "0.9.2"
"tag": "0.9.3"
},
"frameworks": [
"Foundation",
Expand Down
7 changes: 6 additions & 1 deletion XExtensionItem.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@
93E53BF01B0405D700A74760 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0630;
LastUpgradeCheck = 0700;
ORGANIZATIONNAME = "Bryan Irace";
TargetAttributes = {
93E53BF81B0405D700A74760 = {
Expand Down Expand Up @@ -319,6 +319,7 @@
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
Expand Down Expand Up @@ -397,6 +398,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = XExtensionItem/module.modulemap;
ONLY_ACTIVE_ARCH = NO;
PRODUCT_BUNDLE_IDENTIFIER = "com.tumblr.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
VALID_ARCHS = "arm64 armv7 armv7s i386";
Expand All @@ -414,6 +416,7 @@
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = XExtensionItem/module.modulemap;
PRODUCT_BUNDLE_IDENTIFIER = "com.tumblr.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
VALID_ARCHS = "arm64 armv7 armv7s i386";
Expand All @@ -434,6 +437,7 @@
INFOPLIST_FILE = Tests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = XExtensionItem/module.modulemap;
PRODUCT_BUNDLE_IDENTIFIER = "com.tumblr.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
Expand All @@ -448,6 +452,7 @@
INFOPLIST_FILE = Tests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = XExtensionItem/module.modulemap;
PRODUCT_BUNDLE_IDENTIFIER = "com.tumblr.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0630"
LastUpgradeVersion = "0700"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down Expand Up @@ -37,10 +37,10 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
Expand All @@ -62,15 +62,18 @@
ReferencedContainer = "container:XExtensionItem.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
Expand All @@ -85,10 +88,10 @@
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
Expand Down
2 changes: 1 addition & 1 deletion XExtensionItem/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>com.tumblr.$(PRODUCT_NAME:rfc1034identifier)</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
Expand Down

0 comments on commit e5cd024

Please sign in to comment.