Skip to content

Commit

Permalink
Merge pull request #8 from kissmetrics/iPhone6-6plus
Browse files Browse the repository at this point in the history
Adds hardware detection for iPhone 6 and iPhone 6 Plus.
  • Loading branch information
willrust committed Sep 23, 2014
2 parents 6fc0b01 + cca5f90 commit 8684003
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 16 deletions.
Expand Up @@ -10,41 +10,41 @@
<string>KISSmetrics-iOS-SDK</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>0BE6AFAF-DCB1-4A72-9B22-E3AFAC6A8AFA</key>
<key>8372B87BEE59222E93EC0068EBDE98ADE182F55F</key>
<string>ssh://github.com/willrust/MockNSURLConnection.git</string>
<key>AA7FB4BF-5400-41A1-A158-7137AF0D9FCE</key>
<key>F3D139DFC5397739DBA0D653ED16217BDC9EBFA2</key>
<string>ssh://github.com/kissmetrics/KISSmetrics-iOS-SDK.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>KISSmetrics-iOS-SDK.xcworkspace</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>0BE6AFAF-DCB1-4A72-9B22-E3AFAC6A8AFA</key>
<key>8372B87BEE59222E93EC0068EBDE98ADE182F55F</key>
<string>../TestFrameworks/MockNSURLConnection</string>
<key>AA7FB4BF-5400-41A1-A158-7137AF0D9FCE</key>
<key>F3D139DFC5397739DBA0D653ED16217BDC9EBFA2</key>
<string>..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>ssh://github.com/kissmetrics/KISSmetrics-iOS-SDK.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>110</integer>
<integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>AA7FB4BF-5400-41A1-A158-7137AF0D9FCE</string>
<string>F3D139DFC5397739DBA0D653ED16217BDC9EBFA2</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>AA7FB4BF-5400-41A1-A158-7137AF0D9FCE</string>
<string>F3D139DFC5397739DBA0D653ED16217BDC9EBFA2</string>
<key>IDESourceControlWCCName</key>
<string>KISSmetrics-iOS-SDK</string>
</dict>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>0BE6AFAF-DCB1-4A72-9B22-E3AFAC6A8AFA</string>
<string>8372B87BEE59222E93EC0068EBDE98ADE182F55F</string>
<key>IDESourceControlWCCName</key>
<string>MockNSURLConnection</string>
</dict>
Expand Down
2 changes: 1 addition & 1 deletion KISSmetricsAPI/KMAArchiver.m
Expand Up @@ -40,7 +40,7 @@
static NSString * const kKMABaseUrlKey = @"baseUrl";
static NSString * const kKMABaseUrlDefault = @"https://trk.kissmetrics.com";
static NSString * const kKMAAPIClientType = @"mobile_app";
static NSString * const kKMAAPIUserAgent = @"kissmetrics-ios/2.1.0";
static NSString * const kKMAAPIUserAgent = @"kissmetrics-ios/2.2.0";
static NSString * const kKMAKeychainAppVersionKey = @"KMAAppVersion";

static KMAArchiver *sSharedArchiver = nil;
Expand Down
4 changes: 4 additions & 0 deletions KISSmetricsAPI/UIDevice+KMAHardware.h
Expand Up @@ -22,6 +22,8 @@
#define KMA_IPHONE_5_NAMESTRING @"iPhone 5"
#define KMA_IPHONE_5C_NAMESTRING @"iPhone 5C"
#define KMA_IPHONE_5S_NAMESTRING @"iPhone 5S"
#define KMA_IPHONE_6_NAMESTRING @"iPhone 6"
#define KMA_IPHONE_6PLUS_NAMESTRING @"iPhone 6 Plus"
#define KMA_IPHONE_UNKNOWN_NAMESTRING @"Unknown iPhone"

#define KMA_IPOD_TOUCH_1_NAMESTRING @"iPod touch 1"
Expand Down Expand Up @@ -76,6 +78,8 @@ typedef enum {
KMA_UIDeviceiPhone5CGSMCDMA,
KMA_UIDeviceiPhone5SGSM,
KMA_UIDeviceiPhone5SGSMCDMA,
KMA_UIDeviceiPhone6,
KMA_UIDeviceiPhone6Plus,

KMA_UIDeviceiPodTouch1,
KMA_UIDeviceiPodTouch2,
Expand Down
6 changes: 6 additions & 0 deletions KISSmetricsAPI/UIDevice+KMAHardware.m
Expand Up @@ -74,6 +74,8 @@ @implementation UIDevice (KMAHardware)
iPhone5,4 -> iPhone 5C/GSM+CDMA, N49
iPhone6,1 -> iPhone 5S/GSM, N51
iPhone6,2 -> iPhone 5S/GSM+CDMA, N53
iPhone7,1 -> iPhone 6 Plus, N56
iPhone7,2 -> iPhone 6, N61
iPod1,1 -> iPod touch 1, N45
iPod2,1 -> iPod touch 2, N72
Expand Down Expand Up @@ -257,6 +259,8 @@ + (NSUInteger) kmac_platformTypeForString:(NSString *)platform
if ([platform isEqualToString:@"iPhone5,4"]) return KMA_UIDeviceiPhone5CGSMCDMA;
if ([platform isEqualToString:@"iPhone6,1"]) return KMA_UIDeviceiPhone5SGSM;
if ([platform isEqualToString:@"iPhone6,2"]) return KMA_UIDeviceiPhone5SGSMCDMA;
if ([platform isEqualToString:@"iPhone7,1"]) return KMA_UIDeviceiPhone6Plus;
if ([platform isEqualToString:@"iPhone7,2"]) return KMA_UIDeviceiPhone6;

// iPod
if ([platform hasPrefix:@"iPod1"]) return KMA_UIDeviceiPodTouch1;
Expand Down Expand Up @@ -340,6 +344,8 @@ + (NSString *) kmac_platformStringForType:(NSUInteger)platformType
case KMA_UIDeviceiPhone5CGSMCDMA: return KMA_IPHONE_5C_NAMESTRING;
case KMA_UIDeviceiPhone5SGSM: return KMA_IPHONE_5S_NAMESTRING;
case KMA_UIDeviceiPhone5SGSMCDMA: return KMA_IPHONE_5S_NAMESTRING;
case KMA_UIDeviceiPhone6: return KMA_IPHONE_6_NAMESTRING;
case KMA_UIDeviceiPhone6Plus: return KMA_IPHONE_6PLUS_NAMESTRING;
case KMA_UIDeviceUnknowniPhone: return KMA_IPHONE_UNKNOWN_NAMESTRING;

case KMA_UIDeviceiPodTouch1: return KMA_IPOD_TOUCH_1_NAMESTRING;
Expand Down
Binary file modified KISSmetricsSDK.framework/KISSmetricsSDK
Binary file not shown.
Expand Up @@ -98,7 +98,7 @@ - (void)setUp

_key = @"b8f68fe5004d29bcd21d3138b43ae755a16c12cf";
_clientType = @"mobile_app";
_userAgent = @"kissmetrics-ios/2.1.0";
_userAgent = @"kissmetrics-ios/2.2.0";

[KMAArchiver sharedArchiverWithKey:_key];

Expand Down Expand Up @@ -851,7 +851,7 @@ - (void)testArchiveData
{
NSMutableArray *sendQueue = [[KMAArchiver sharedArchiver] uth_getSendQueue];

[sendQueue addObject:@"https://trk.kissmetrics.com/a?_k=b8f68fe5004d29bcd21d3138b43ae755a16c12cf&_x=ios/2.1.0&_p=testnewuser%40example.com&_n=testolduser%40example.com"];
[sendQueue addObject:@"https://trk.kissmetrics.com/a?_k=b8f68fe5004d29bcd21d3138b43ae755a16c12cf&_x=ios/2.2.0&_p=testnewuser%40example.com&_n=testolduser%40example.com"];

NSLog(@"sendQueue = %@", sendQueue);

Expand Down
Expand Up @@ -43,7 +43,7 @@ @implementation KMADeviceHardwareTests
- (void)testkmac_platformReturnsPlatfromString
{
NSArray *expectedPlatforms = @[@"iFPGA",
@"iPhone1,1", @"iPhone1,2", @"iPhone 3G", @"iPhone2,1", @"iPhone3,1", @"iPhone3,2", @"iPhone3,3", @"iPhone4,1", @"iPhone5,1", @"iPhone5,2", @"iPhone5,3", @"iPhone5,4", @"iPhone6,1", @"iPhone6,2",
@"iPhone1,1", @"iPhone1,2", @"iPhone 3G", @"iPhone2,1", @"iPhone3,1", @"iPhone3,2", @"iPhone3,3", @"iPhone4,1", @"iPhone5,1", @"iPhone5,2", @"iPhone5,3", @"iPhone5,4", @"iPhone6,1", @"iPhone6,2", @"iPhone7,1", @"iPhone7,2",
@"iPod1,1", @"iPod2,1", @"iPod2,2", @"iPod3,1", @"iPod4,1",
@"ipad0,1", @"iPad3,2", @"iPad3,3", @"iPad4,1", @"iPad4,2", @"iPad4,3",
@"iProd2,1",
Expand Down Expand Up @@ -129,6 +129,16 @@ - (void)testkmac_platformTypeForString_iPhone6_2
XCTAssert(([UIDevice kmac_platformTypeForString:@"iPhone6,2"] == KMA_UIDeviceiPhone5SGSMCDMA), @"Expected iPhone6,2 to return KMA_UIDeviceiPhone5SGSMCDMA");
}

- (void)testkmac_platformTypeForString_iPhone7_1
{
XCTAssert(([UIDevice kmac_platformTypeForString:@"iPhone7,1"] == KMA_UIDeviceiPhone6Plus), @"Expected iPhone7,1 to return KMA_UIDeviceiPhone6Plus");
}

- (void)testkmac_platformTypeForString_iPhone7_2
{
XCTAssert(([UIDevice kmac_platformTypeForString:@"iPhone7,2"] == KMA_UIDeviceiPhone6), @"Expected iPhone7,2 to return KMA_UIDeviceiPhone6");
}

- (void)testkmac_platformTypeForString_iPod1
{
XCTAssert(([UIDevice kmac_platformTypeForString:@"iPod1,1"] == KMA_UIDeviceiPodTouch1), @"Expected iPod1,1 to return KMA_UIDeviceiPodTouch1");
Expand Down
Expand Up @@ -53,7 +53,7 @@ - (void)setUp {

_key = @"b8f68fe5004d29bcd21d3138b43ae755a16c12cf";
_clientType = @"mobile_app";
_userAgent = @"kissmetrics-ios/2.1.0";
_userAgent = @"kissmetrics-ios/2.2.0";

_queryEncoder = [[KMAQueryEncoder alloc] initWithKey:_key
clientType:_clientType
Expand Down Expand Up @@ -152,7 +152,7 @@ - (void)test_createUrlForEventAndProperties {
identity:@"testuser@example.com"
timestamp:timestamp];

NSString *expectedUrl = @"/e?_k=b8f68fe5004d29bcd21d3138b43ae755a16c12cf&_c=mobile_app&_u=kissmetrics-ios/2.1.0&_p=testuser%40example.com";
NSString *expectedUrl = @"/e?_k=b8f68fe5004d29bcd21d3138b43ae755a16c12cf&_c=mobile_app&_u=kissmetrics-ios/2.2.0&_p=testuser%40example.com";
expectedUrl = [expectedUrl stringByAppendingString:[NSString stringWithFormat:@"&_n=testEvent&_d=1&_t=%i&propertyOne=testPropertyOne&propertyTwo=testPropertyTwo", timestamp]];

XCTAssertEqualObjects(createdUrl, expectedUrl, @"URL incorrect");
Expand All @@ -167,7 +167,7 @@ - (void)test_createUrlForProperties {
identity:@"testuser@example.com"
timestamp:timestamp];

NSString *expectedUrl = @"/s?_k=b8f68fe5004d29bcd21d3138b43ae755a16c12cf&_c=mobile_app&_u=kissmetrics-ios/2.1.0&_p=testuser%40example.com&_d=1&_t=";
NSString *expectedUrl = @"/s?_k=b8f68fe5004d29bcd21d3138b43ae755a16c12cf&_c=mobile_app&_u=kissmetrics-ios/2.2.0&_p=testuser%40example.com&_d=1&_t=";

expectedUrl = [expectedUrl stringByAppendingString:[NSString stringWithFormat:@"%i", timestamp]];
expectedUrl = [expectedUrl stringByAppendingString:@"&propertyOne=testPropertyOne&propertyTwo=testPropertyTwo"];
Expand All @@ -180,7 +180,7 @@ - (void)test_createUrlForIdentity {

NSString *createdUrl = [_queryEncoder createAliasQueryWithAlias:@"testnewuser@example.com" andIdentity:@"testolduser@example.com"];

NSString *expectedUrl = @"/a?_k=b8f68fe5004d29bcd21d3138b43ae755a16c12cf&_c=mobile_app&_u=kissmetrics-ios/2.1.0&_p=testnewuser%40example.com&_n=testolduser%40example.com";
NSString *expectedUrl = @"/a?_k=b8f68fe5004d29bcd21d3138b43ae755a16c12cf&_c=mobile_app&_u=kissmetrics-ios/2.2.0&_p=testnewuser%40example.com&_n=testolduser%40example.com";

XCTAssertEqualObjects(createdUrl, expectedUrl, @"URL incorrect");
}
Expand Down

0 comments on commit 8684003

Please sign in to comment.