Skip to content

Commit

Permalink
[NEW] cleanup tests
Browse files Browse the repository at this point in the history
[NEW] tested against aws iot platform
  • Loading branch information
Christoph Krey committed Oct 11, 2015
1 parent 3c3e2a0 commit 88b5b60
Show file tree
Hide file tree
Showing 11 changed files with 402 additions and 192 deletions.
12 changes: 4 additions & 8 deletions MQTTClient/MQTTClient.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
/* Begin PBXBuildFile section */
840507C5193DCF2E002EBBD2 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840507C4193DCF2E002EBBD2 /* UIKit.framework */; };
840715FA1BBE999700FBB3CB /* mosquitto.org.cer in Resources */ = {isa = PBXBuildFile; fileRef = 8482D3C91B49332700D81CC8 /* mosquitto.org.cer */; };
840715FB1BBE999700FBB3CB /* info@owntracks.org.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 8482D3C51B4922E100D81CC8 /* info@owntracks.org.p12 */; };
840715FC1BBE999700FBB3CB /* KreyChristoph.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 8482D3C31B49110200D81CC8 /* KreyChristoph.p12 */; };
840715FD1BBE999700FBB3CB /* server.der in Resources */ = {isa = PBXBuildFile; fileRef = C21D3CA71B1ED2F40012DD2F /* server.der */; };
840715FE1BBE999700FBB3CB /* ADNNetServerTrustChain in Resources */ = {isa = PBXBuildFile; fileRef = C21D3C9D1B1EC4400012DD2F /* ADNNetServerTrustChain */; };
Expand Down Expand Up @@ -74,7 +73,6 @@
8407163E1BBEF16E00FBB3CB /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8407163D1BBEF16E00FBB3CB /* CFNetwork.framework */; };
840716401BBEF17600FBB3CB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8407163F1BBEF17600FBB3CB /* Foundation.framework */; };
840716411BBEF18B00FBB3CB /* mosquitto.org.cer in Resources */ = {isa = PBXBuildFile; fileRef = 8482D3C91B49332700D81CC8 /* mosquitto.org.cer */; };
840716421BBEF18B00FBB3CB /* info@owntracks.org.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 8482D3C51B4922E100D81CC8 /* info@owntracks.org.p12 */; };
840716431BBEF18B00FBB3CB /* KreyChristoph.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 8482D3C31B49110200D81CC8 /* KreyChristoph.p12 */; };
840716441BBEF18B00FBB3CB /* server.der in Resources */ = {isa = PBXBuildFile; fileRef = C21D3CA71B1ED2F40012DD2F /* server.der */; };
840716451BBEF18B00FBB3CB /* adn_0.cer in Resources */ = {isa = PBXBuildFile; fileRef = C21D3CA11B1EC63E0012DD2F /* adn_0.cer */; };
Expand Down Expand Up @@ -149,7 +147,6 @@
8462436C1ABEAAF900B72519 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8462436B1ABEAAF900B72519 /* CoreData.framework */; };
8462436D1ABEAB2900B72519 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8462436B1ABEAAF900B72519 /* CoreData.framework */; };
8482D3C41B49110200D81CC8 /* KreyChristoph.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 8482D3C31B49110200D81CC8 /* KreyChristoph.p12 */; };
8482D3C61B4922E200D81CC8 /* info@owntracks.org.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 8482D3C51B4922E100D81CC8 /* info@owntracks.org.p12 */; };
8482D3CA1B49332700D81CC8 /* mosquitto.org.cer in Resources */ = {isa = PBXBuildFile; fileRef = 8482D3C91B49332700D81CC8 /* mosquitto.org.cer */; };
848BB8F3195FF7A2004FCAE2 /* MQTTClientOnlyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 848BB8F2195FF7A2004FCAE2 /* MQTTClientOnlyTests.m */; };
84B1AFEE196C7AF60056B959 /* MultiThreadingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B1AFED196C7AF60056B959 /* MultiThreadingTests.m */; };
Expand Down Expand Up @@ -291,7 +288,6 @@
846243681ABE9E5900B72519 /* MQTTPersistence.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MQTTPersistence.m; sourceTree = "<group>"; };
8462436B1ABEAAF900B72519 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
8482D3C31B49110200D81CC8 /* KreyChristoph.p12 */ = {isa = PBXFileReference; lastKnownFileType = file; path = KreyChristoph.p12; sourceTree = "<group>"; };
8482D3C51B4922E100D81CC8 /* info@owntracks.org.p12 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "info@owntracks.org.p12"; sourceTree = "<group>"; };
8482D3C91B49332700D81CC8 /* mosquitto.org.cer */ = {isa = PBXFileReference; lastKnownFileType = file; path = mosquitto.org.cer; sourceTree = "<group>"; };
848BB8F2195FF7A2004FCAE2 /* MQTTClientOnlyTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MQTTClientOnlyTests.m; sourceTree = "<group>"; };
84B1AFED196C7AF60056B959 /* MultiThreadingTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MultiThreadingTests.m; sourceTree = "<group>"; };
Expand Down Expand Up @@ -375,7 +371,6 @@
isa = PBXGroup;
children = (
8482D3C91B49332700D81CC8 /* mosquitto.org.cer */,
8482D3C51B4922E100D81CC8 /* info@owntracks.org.p12 */,
8482D3C31B49110200D81CC8 /* KreyChristoph.p12 */,
C21D3CA71B1ED2F40012DD2F /* server.der */,
C21D3CA11B1EC63E0012DD2F /* adn_0.cer */,
Expand Down Expand Up @@ -770,7 +765,6 @@
buildActionMask = 2147483647;
files = (
840716411BBEF18B00FBB3CB /* mosquitto.org.cer in Resources */,
840716421BBEF18B00FBB3CB /* info@owntracks.org.p12 in Resources */,
840716431BBEF18B00FBB3CB /* KreyChristoph.p12 in Resources */,
840716441BBEF18B00FBB3CB /* server.der in Resources */,
840716451BBEF18B00FBB3CB /* adn_0.cer in Resources */,
Expand All @@ -796,7 +790,6 @@
840716081BBE99B000FBB3CB /* adn_1.cer in Resources */,
840716091BBE99B000FBB3CB /* adn_2.cer in Resources */,
840715FA1BBE999700FBB3CB /* mosquitto.org.cer in Resources */,
840715FB1BBE999700FBB3CB /* info@owntracks.org.p12 in Resources */,
840715FC1BBE999700FBB3CB /* KreyChristoph.p12 in Resources */,
840715FD1BBE999700FBB3CB /* server.der in Resources */,
840715FE1BBE999700FBB3CB /* ADNNetServerTrustChain in Resources */,
Expand All @@ -823,7 +816,6 @@
8482D3CA1B49332700D81CC8 /* mosquitto.org.cer in Resources */,
C21D3C9B1B1EC40A0012DD2F /* COMODO_RSA_Certification_Authority.cer in Resources */,
C21D3C9C1B1EC40C0012DD2F /* COMODO_RSA_Domain_Validation_Secure_Server_CA.cer in Resources */,
8482D3C61B4922E200D81CC8 /* info@owntracks.org.p12 in Resources */,
8482D3C41B49110200D81CC8 /* KreyChristoph.p12 in Resources */,
C21D3C961B1EC4000012DD2F /* AltName.cer in Resources */,
C21D3C971B1EC4010012DD2F /* NoDomains.cer in Resources */,
Expand Down Expand Up @@ -1022,6 +1014,7 @@
buildSettings = {
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_IDENTITY = "-";
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
Expand All @@ -1041,6 +1034,7 @@
buildSettings = {
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_IDENTITY = "-";
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DYLIB_COMPATIBILITY_VERSION = 1;
Expand Down Expand Up @@ -1380,6 +1374,7 @@
8407161C1BBEEF9C00FBB3CB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
8407163A1BBEF13A00FBB3CB /* Build configuration list for PBXNativeTarget "MQTTClientOSXTests" */ = {
isa = XCConfigurationList;
Expand All @@ -1388,6 +1383,7 @@
8407163C1BBEF13A00FBB3CB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
8425D6DF1BBE8B45005AD733 /* Build configuration list for PBXNativeTarget "MQTTClientTV" */ = {
isa = XCConfigurationList;
Expand Down
1 change: 1 addition & 0 deletions MQTTClient/MQTTClient/MQTTSessionManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#import <UIKit/UIKit.h>
#endif
#import "MQTTSession.h"
#import "MQTTSSLSecurityPolicy.h"

/** delegate gives your application access to received messages
*/
Expand Down
56 changes: 52 additions & 4 deletions MQTTClient/MQTTClientTests/MQTTACLTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,9 @@ - (void)test_connect_user_pwd_MQTT_3_1_2_19_MQTT_3_1_2_21 {
willRetainFlag:NO
protocolLevel:[parameters[@"protocollevel"] intValue]
runLoop:[NSRunLoop currentRunLoop]
forMode:NSRunLoopCommonModes];
forMode:NSRunLoopCommonModes
securityPolicy:[self securityPolicy:parameters]
certificates:[self clientCerts:parameters]];
self.session.persistence.persistent = PERSISTENT;
[self connect:self.session parameters:parameters];
XCTAssertEqual(self.event, MQTTSessionEventConnected, @"Not Connected %ld %@", (long)self.event, self.error);
Expand Down Expand Up @@ -81,7 +83,9 @@ - (void)test_connect_user_no_pwd_MQTT_3_1_2_19_MQTT_3_1_2_20 {
willRetainFlag:NO
protocolLevel:[parameters[@"protocollevel"] intValue]
runLoop:[NSRunLoop currentRunLoop]
forMode:NSRunLoopCommonModes];
forMode:NSRunLoopCommonModes
securityPolicy:[self securityPolicy:parameters]
certificates:[self clientCerts:parameters]];
self.session.persistence.persistent = PERSISTENT;

[self connect:self.session parameters:parameters];
Expand Down Expand Up @@ -112,7 +116,9 @@ - (void)test_connect_no_user_no_pwd_MQTT_3_1_2_18_MQTT_3_1_2_20 {
willRetainFlag:NO
protocolLevel:[parameters[@"protocollevel"] intValue]
runLoop:[NSRunLoop currentRunLoop]
forMode:NSRunLoopCommonModes];
forMode:NSRunLoopCommonModes
securityPolicy:[self securityPolicy:parameters]
certificates:[self clientCerts:parameters]];
self.session.persistence.persistent = PERSISTENT;

[self connect:self.session parameters:parameters];
Expand Down Expand Up @@ -142,7 +148,9 @@ - (void)test_connect_no_user_but_pwd_MQTT_3_1_2_22 {
willRetainFlag:NO
protocolLevel:[parameters[@"protocollevel"] intValue]
runLoop:[NSRunLoop currentRunLoop]
forMode:NSRunLoopCommonModes];
forMode:NSRunLoopCommonModes
securityPolicy:[self securityPolicy:parameters]
certificates:[self clientCerts:parameters]];
self.session.persistence.persistent = PERSISTENT;

[self connect:self.session parameters:parameters];
Expand All @@ -153,6 +161,46 @@ - (void)test_connect_no_user_but_pwd_MQTT_3_1_2_22 {

#pragma mark helpers

- (NSArray *)clientCerts:(NSDictionary *)parameters {
NSArray *clientCerts = nil;
if (parameters[@"clientp12"] && parameters[@"clientp12pass"]) {

NSString *path = [[NSBundle bundleForClass:[MQTTACLTests class]] pathForResource:parameters[@"clientp12"]
ofType:@"p12"];

clientCerts = [MQTTSession clientCertsFromP12:path passphrase:parameters[@"clientp12pass"]];
if (!clientCerts) {
XCTFail(@"invalid p12 file");
}
}
return clientCerts;
}

- (MQTTSSLSecurityPolicy *)securityPolicy:(NSDictionary *)parameters {
MQTTSSLSecurityPolicy *securityPolicy = nil;

if (parameters[@"serverCER"]) {

NSString *path = [[NSBundle bundleForClass:[MQTTACLTests class]] pathForResource:parameters[@"serverCER"]
ofType:@"cer"];
if (path) {
NSData *certificateData = [NSData dataWithContentsOfFile:path];
if (certificateData) {
securityPolicy = [MQTTSSLSecurityPolicy policyWithPinningMode:MQTTSSLPinningModeCertificate];
securityPolicy.pinnedCertificates = [[NSArray alloc] initWithObjects:certificateData, nil];
securityPolicy.validatesCertificateChain = TRUE;
securityPolicy.allowInvalidCertificates = FALSE;
securityPolicy.validatesDomainName = TRUE;
} else {
XCTFail(@"error reading cer file");
}
} else {
XCTFail(@"cer file not found");
}
}
return securityPolicy;
}

- (void)received:(MQTTSession *)session type:(int)type qos:(MQTTQosLevel)qos retained:(BOOL)retained duped:(BOOL)duped mid:(UInt16)mid data:(NSData *)data {
//NSLog(@"received:%d qos:%d retained:%d duped:%d mid:%d data:%@", type, qos, retained, duped, mid, data);
self.type = type;
Expand Down
44 changes: 43 additions & 1 deletion MQTTClient/MQTTClientTests/MQTTClientPublishTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,46 @@ - (void)testPublish_q2_dup_MQTT_3_3_1_2
* helpers
*/

- (NSArray *)clientCerts:(NSDictionary *)parameters {
NSArray *clientCerts = nil;
if (parameters[@"clientp12"] && parameters[@"clientp12pass"]) {

NSString *path = [[NSBundle bundleForClass:[MQTTClientPublishTests class]] pathForResource:parameters[@"clientp12"]
ofType:@"p12"];

clientCerts = [MQTTSession clientCertsFromP12:path passphrase:parameters[@"clientp12pass"]];
if (!clientCerts) {
XCTFail(@"invalid p12 file");
}
}
return clientCerts;
}

- (MQTTSSLSecurityPolicy *)securityPolicy:(NSDictionary *)parameters {
MQTTSSLSecurityPolicy *securityPolicy = nil;

if (parameters[@"serverCER"]) {

NSString *path = [[NSBundle bundleForClass:[MQTTClientPublishTests class]] pathForResource:parameters[@"serverCER"]
ofType:@"cer"];
if (path) {
NSData *certificateData = [NSData dataWithContentsOfFile:path];
if (certificateData) {
securityPolicy = [MQTTSSLSecurityPolicy policyWithPinningMode:MQTTSSLPinningModeCertificate];
securityPolicy.pinnedCertificates = [[NSArray alloc] initWithObjects:certificateData, nil];
securityPolicy.validatesCertificateChain = TRUE;
securityPolicy.allowInvalidCertificates = FALSE;
securityPolicy.validatesDomainName = TRUE;
} else {
XCTFail(@"error reading cer file");
}
} else {
XCTFail(@"cer file not found");
}
}
return securityPolicy;
}

- (void)testPublishCloseExpected:(NSData *)data onTopic:(NSString *)topic retain:(BOOL)retain atLevel:(UInt8)qos
{
[self testPublishCore:data onTopic:topic retain:retain atLevel:qos];
Expand Down Expand Up @@ -507,7 +547,9 @@ - (void)connect:(NSDictionary *)parameters {
willRetainFlag:NO
protocolLevel:[parameters[@"protocollevel"] intValue]
runLoop:[NSRunLoop currentRunLoop]
forMode:NSRunLoopCommonModes];
forMode:NSRunLoopCommonModes
securityPolicy:[self securityPolicy:parameters]
certificates:[self clientCerts:parameters]];
self.session.delegate = self;
self.session.persistence.persistent = PERSISTENT;

Expand Down
45 changes: 44 additions & 1 deletion MQTTClient/MQTTClientTests/MQTTClientSubscriptionTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -537,6 +537,47 @@ - (void)testMultiUnsubscribe_more
* helpers
*/


- (NSArray *)clientCerts:(NSDictionary *)parameters {
NSArray *clientCerts = nil;
if (parameters[@"clientp12"] && parameters[@"clientp12pass"]) {

NSString *path = [[NSBundle bundleForClass:[MQTTClientSubscriptionTests class]] pathForResource:parameters[@"clientp12"]
ofType:@"p12"];

clientCerts = [MQTTSession clientCertsFromP12:path passphrase:parameters[@"clientp12pass"]];
if (!clientCerts) {
XCTFail(@"invalid p12 file");
}
}
return clientCerts;
}

- (MQTTSSLSecurityPolicy *)securityPolicy:(NSDictionary *)parameters {
MQTTSSLSecurityPolicy *securityPolicy = nil;

if (parameters[@"serverCER"]) {

NSString *path = [[NSBundle bundleForClass:[MQTTClientSubscriptionTests class]] pathForResource:parameters[@"serverCER"]
ofType:@"cer"];
if (path) {
NSData *certificateData = [NSData dataWithContentsOfFile:path];
if (certificateData) {
securityPolicy = [MQTTSSLSecurityPolicy policyWithPinningMode:MQTTSSLPinningModeCertificate];
securityPolicy.pinnedCertificates = [[NSArray alloc] initWithObjects:certificateData, nil];
securityPolicy.validatesCertificateChain = TRUE;
securityPolicy.allowInvalidCertificates = FALSE;
securityPolicy.validatesDomainName = TRUE;
} else {
XCTFail(@"error reading cer file");
}
} else {
XCTFail(@"cer file not found");
}
}
return securityPolicy;
}

- (void)testSubscribeSubackExpected:(NSString *)topic atLevel:(UInt8)qos
{
[self testSubscribe:topic atLevel:qos];
Expand Down Expand Up @@ -771,7 +812,9 @@ - (void)connect:(NSDictionary *)parameters {
willRetainFlag:NO
protocolLevel:[parameters[@"protocollevel"] intValue]
runLoop:[NSRunLoop currentRunLoop]
forMode:NSRunLoopCommonModes];
forMode:NSRunLoopCommonModes
securityPolicy:[self securityPolicy:parameters]
certificates:[self clientCerts:parameters]];
self.session.delegate = self;
self.session.persistence.persistent = PERSISTENT;
self.event = -1;
Expand Down
Loading

0 comments on commit 88b5b60

Please sign in to comment.