Skip to content

Commit fe1e270

Browse files
committed
Basic one to one chat module implementation
1 parent f15b9b4 commit fe1e270

8 files changed

Lines changed: 184 additions & 0 deletions

File tree

Core/XMPPFramework.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@
159159
#import "XMPPRoomLightCoreDataStorage.h"
160160
#import "XMPPRoomLightCoreDataStorageProtected.h"
161161
#import "XMPPRoomLightMessageCoreDataStorageObject.h"
162+
#import "XMPPOneToOneChat.h"
162163

163164

164165
FOUNDATION_EXPORT double XMPPFrameworkVersionNumber;
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#import "XMPPModule.h"
2+
3+
NS_ASSUME_NONNULL_BEGIN
4+
5+
@class XMPPMessage;
6+
7+
/// @brief A module that handles one-to-one chat messaging.
8+
/// @discussion This module triggers delegate callbacks for all sent or received messages of type 'chat'.
9+
@interface XMPPOneToOneChat : XMPPModule
10+
11+
@end
12+
13+
/// A protocol defining @c XMPPOneToOneChat module delegate API.
14+
@protocol XMPPOneToOneChatDelegate <NSObject>
15+
16+
@optional
17+
/// Notifies the delegate that a chat message has been received in the stream.
18+
- (void)xmppOneToOneChat:(XMPPOneToOneChat *)xmppOneToOneChat didReceiveChatMessage:(XMPPMessage *)message
19+
NS_SWIFT_NAME(xmppOneToOneChat(_:didReceiveChatMessage:));
20+
21+
/// Notifies the delegate that a chat message has been sent in the stream.
22+
- (void)xmppOneToOneChat:(XMPPOneToOneChat *)xmppOneToOneChat didSendChatMessage:(XMPPMessage *)message
23+
NS_SWIFT_NAME(xmppOneToOneChat(_:didSendChatMessage:));
24+
25+
@end
26+
27+
NS_ASSUME_NONNULL_END
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#import "XMPPOneToOneChat.h"
2+
#import "XMPPMessage.h"
3+
#import "XMPPStream.h"
4+
#import "XMPPLogging.h"
5+
6+
// Log levels: off, error, warn, info, verbose
7+
// Log flags: trace
8+
#if DEBUG
9+
static const int xmppLogLevel = XMPP_LOG_LEVEL_WARN; // | XMPP_LOG_FLAG_TRACE;
10+
#else
11+
static const int xmppLogLevel = XMPP_LOG_LEVEL_WARN;
12+
#endif
13+
14+
@implementation XMPPOneToOneChat
15+
16+
- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message
17+
{
18+
XMPPLogTrace();
19+
20+
if (![message isChatMessage]) {
21+
return;
22+
}
23+
24+
XMPPLogInfo(@"Received chat message from %@", [message from]);
25+
[multicastDelegate xmppOneToOneChat:self didReceiveChatMessage:message];
26+
}
27+
28+
- (void)xmppStream:(XMPPStream *)sender didSendMessage:(XMPPMessage *)message
29+
{
30+
XMPPLogTrace();
31+
32+
if (![message isChatMessage]) {
33+
return;
34+
}
35+
36+
XMPPLogInfo(@"Sent chat message to %@", [message to]);
37+
[multicastDelegate xmppOneToOneChat:self didSendChatMessage:message];
38+
}
39+
40+
@end

XMPPFramework.xcodeproj/project.pbxproj

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -923,6 +923,12 @@
923923
DD1E733A1ED88622009B529B /* XMPPRoomLightCoreDataStorageProtected.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1E73391ED88622009B529B /* XMPPRoomLightCoreDataStorageProtected.h */; settings = {ATTRIBUTES = (Public, ); }; };
924924
DD1E733B1ED88622009B529B /* XMPPRoomLightCoreDataStorageProtected.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1E73391ED88622009B529B /* XMPPRoomLightCoreDataStorageProtected.h */; settings = {ATTRIBUTES = (Public, ); }; };
925925
DD1E733C1ED88622009B529B /* XMPPRoomLightCoreDataStorageProtected.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1E73391ED88622009B529B /* XMPPRoomLightCoreDataStorageProtected.h */; settings = {ATTRIBUTES = (Public, ); }; };
926+
DD26F5701F7CD9B500F54F18 /* XMPPOneToOneChat.h in Headers */ = {isa = PBXBuildFile; fileRef = DD26F56E1F7CD9B500F54F18 /* XMPPOneToOneChat.h */; settings = {ATTRIBUTES = (Public, ); }; };
927+
DD26F5711F7CD9B500F54F18 /* XMPPOneToOneChat.h in Headers */ = {isa = PBXBuildFile; fileRef = DD26F56E1F7CD9B500F54F18 /* XMPPOneToOneChat.h */; settings = {ATTRIBUTES = (Public, ); }; };
928+
DD26F5721F7CD9B500F54F18 /* XMPPOneToOneChat.h in Headers */ = {isa = PBXBuildFile; fileRef = DD26F56E1F7CD9B500F54F18 /* XMPPOneToOneChat.h */; settings = {ATTRIBUTES = (Public, ); }; };
929+
DD26F5731F7CD9B500F54F18 /* XMPPOneToOneChat.m in Sources */ = {isa = PBXBuildFile; fileRef = DD26F56F1F7CD9B500F54F18 /* XMPPOneToOneChat.m */; };
930+
DD26F5741F7CD9B500F54F18 /* XMPPOneToOneChat.m in Sources */ = {isa = PBXBuildFile; fileRef = DD26F56F1F7CD9B500F54F18 /* XMPPOneToOneChat.m */; };
931+
DD26F5751F7CD9B500F54F18 /* XMPPOneToOneChat.m in Sources */ = {isa = PBXBuildFile; fileRef = DD26F56F1F7CD9B500F54F18 /* XMPPOneToOneChat.m */; };
926932
/* End PBXBuildFile section */
927933

928934
/* Begin PBXContainerItemProxy section */
@@ -1514,6 +1520,8 @@
15141520
DD1E73311ED885FD009B529B /* XMPPRoomLightCoreDataStorage+XEP_0313.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "XMPPRoomLightCoreDataStorage+XEP_0313.h"; sourceTree = "<group>"; };
15151521
DD1E73321ED885FD009B529B /* XMPPRoomLightCoreDataStorage+XEP_0313.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "XMPPRoomLightCoreDataStorage+XEP_0313.m"; sourceTree = "<group>"; };
15161522
DD1E73391ED88622009B529B /* XMPPRoomLightCoreDataStorageProtected.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMPPRoomLightCoreDataStorageProtected.h; sourceTree = "<group>"; };
1523+
DD26F56E1F7CD9B500F54F18 /* XMPPOneToOneChat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XMPPOneToOneChat.h; sourceTree = "<group>"; };
1524+
DD26F56F1F7CD9B500F54F18 /* XMPPOneToOneChat.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XMPPOneToOneChat.m; sourceTree = "<group>"; };
15171525
/* End PBXFileReference section */
15181526

15191527
/* Begin PBXFrameworksBuildPhase section */
@@ -1757,6 +1765,7 @@
17571765
D9DCD1431E6250930010D1C7 /* Reconnect */,
17581766
D9DCD1461E6250930010D1C7 /* Roster */,
17591767
D9DCD15E1E6250930010D1C7 /* SystemInputActivityMonitor */,
1768+
DD26F56D1F7CD99100F54F18 /* OneToOneChat */,
17601769
D9DCD1611E6250930010D1C7 /* XEP-0009 */,
17611770
D9DCD1681E6250930010D1C7 /* XEP-0012 */,
17621771
D9DCD16D1E6250930010D1C7 /* XEP-0016 */,
@@ -2533,6 +2542,15 @@
25332542
name = Frameworks;
25342543
sourceTree = "<group>";
25352544
};
2545+
DD26F56D1F7CD99100F54F18 /* OneToOneChat */ = {
2546+
isa = PBXGroup;
2547+
children = (
2548+
DD26F56E1F7CD9B500F54F18 /* XMPPOneToOneChat.h */,
2549+
DD26F56F1F7CD9B500F54F18 /* XMPPOneToOneChat.m */,
2550+
);
2551+
path = OneToOneChat;
2552+
sourceTree = "<group>";
2553+
};
25362554
/* End PBXGroup section */
25372555

25382556
/* Begin PBXHeadersBuildPhase section */
@@ -2675,6 +2693,7 @@
26752693
0D44BB4E1E537105000930E0 /* XMPPDigestMD5Authentication.h in Headers */,
26762694
0D44BB691E537110000930E0 /* GCDMulticastDelegate.h in Headers */,
26772695
0D44BB501E537105000930E0 /* XMPPPlainAuthentication.h in Headers */,
2696+
DD26F5701F7CD9B500F54F18 /* XMPPOneToOneChat.h in Headers */,
26782697
0D44BB211E5370ED000930E0 /* XMPPStream.h in Headers */,
26792698
0D44BB1F1E5370ED000930E0 /* XMPPPresence.h in Headers */,
26802699
0D44BB191E5370ED000930E0 /* XMPPMessage.h in Headers */,
@@ -2836,6 +2855,7 @@
28362855
D9DCD5191E6256D90010D1C7 /* XMPPDigestMD5Authentication.h in Headers */,
28372856
D9DCD51A1E6256D90010D1C7 /* GCDMulticastDelegate.h in Headers */,
28382857
D9DCD51B1E6256D90010D1C7 /* XMPPPlainAuthentication.h in Headers */,
2858+
DD26F5711F7CD9B500F54F18 /* XMPPOneToOneChat.h in Headers */,
28392859
D9DCD51C1E6256D90010D1C7 /* XMPPStream.h in Headers */,
28402860
D9DCD51D1E6256D90010D1C7 /* XMPPPresence.h in Headers */,
28412861
D9DCD51E1E6256D90010D1C7 /* XMPPMessage.h in Headers */,
@@ -2997,6 +3017,7 @@
29973017
D9DCD67C1E6258CF0010D1C7 /* XMPPDigestMD5Authentication.h in Headers */,
29983018
D9DCD67D1E6258CF0010D1C7 /* GCDMulticastDelegate.h in Headers */,
29993019
D9DCD67E1E6258CF0010D1C7 /* XMPPPlainAuthentication.h in Headers */,
3020+
DD26F5721F7CD9B500F54F18 /* XMPPOneToOneChat.h in Headers */,
30003021
D9DCD67F1E6258CF0010D1C7 /* XMPPStream.h in Headers */,
30013022
D9DCD6801E6258CF0010D1C7 /* XMPPPresence.h in Headers */,
30023023
D9DCD6811E6258CF0010D1C7 /* XMPPMessage.h in Headers */,
@@ -3403,6 +3424,7 @@
34033424
0D44BB221E5370ED000930E0 /* XMPPStream.m in Sources */,
34043425
D9DCD2BD1E6250930010D1C7 /* XMPPvCardTempBase.m in Sources */,
34053426
0D44BB4D1E537105000930E0 /* XMPPDeprecatedPlainAuthentication.m in Sources */,
3427+
DD26F5731F7CD9B500F54F18 /* XMPPOneToOneChat.m in Sources */,
34063428
D9DCD3171E6250930010D1C7 /* XMPPMessage+XEP_0224.m in Sources */,
34073429
D9DCD2E41E6250930010D1C7 /* XMPPCapabilitiesCoreDataStorage.m in Sources */,
34083430
0D44BB511E537105000930E0 /* XMPPPlainAuthentication.m in Sources */,
@@ -3555,6 +3577,7 @@
35553577
D9DCD4271E6256D90010D1C7 /* XMPPStream.m in Sources */,
35563578
D9DCD4281E6256D90010D1C7 /* XMPPvCardTempBase.m in Sources */,
35573579
D9DCD4291E6256D90010D1C7 /* XMPPDeprecatedPlainAuthentication.m in Sources */,
3580+
DD26F5741F7CD9B500F54F18 /* XMPPOneToOneChat.m in Sources */,
35583581
D9DCD42A1E6256D90010D1C7 /* XMPPMessage+XEP_0224.m in Sources */,
35593582
D9DCD42B1E6256D90010D1C7 /* XMPPCapabilitiesCoreDataStorage.m in Sources */,
35603583
D9DCD42C1E6256D90010D1C7 /* XMPPPlainAuthentication.m in Sources */,
@@ -3707,6 +3730,7 @@
37073730
D9DCD58A1E6258CF0010D1C7 /* XMPPStream.m in Sources */,
37083731
D9DCD58B1E6258CF0010D1C7 /* XMPPvCardTempBase.m in Sources */,
37093732
D9DCD58C1E6258CF0010D1C7 /* XMPPDeprecatedPlainAuthentication.m in Sources */,
3733+
DD26F5751F7CD9B500F54F18 /* XMPPOneToOneChat.m in Sources */,
37103734
D9DCD58D1E6258CF0010D1C7 /* XMPPMessage+XEP_0224.m in Sources */,
37113735
D9DCD58E1E6258CF0010D1C7 /* XMPPCapabilitiesCoreDataStorage.m in Sources */,
37123736
D9DCD58F1E6258CF0010D1C7 /* XMPPPlainAuthentication.m in Sources */,

Xcode/Testing-Carthage/XMPPFrameworkTests.xcodeproj/project.pbxproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@
6161
D9DCD70E1E625C560010D1C7 /* OMEMOTestStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = D99C5E0C1D99C48100FB068A /* OMEMOTestStorage.m */; };
6262
D9DCD7191E625CAE0010D1C7 /* XMPPFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9DCD6B01E625A9B0010D1C7 /* XMPPFramework.framework */; };
6363
D9E35E701D90B894002E7CF7 /* OMEMOElementTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D9E35E6F1D90B894002E7CF7 /* OMEMOElementTests.m */; };
64+
DD26F5881F7CF1AE00F54F18 /* XMPPOneToOneChatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DD26F5871F7CF1AE00F54F18 /* XMPPOneToOneChatTests.m */; };
65+
DD26F5891F7CF1B400F54F18 /* XMPPOneToOneChatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DD26F5871F7CF1AE00F54F18 /* XMPPOneToOneChatTests.m */; };
66+
DD26F58A1F7CF1B400F54F18 /* XMPPOneToOneChatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DD26F5871F7CF1AE00F54F18 /* XMPPOneToOneChatTests.m */; };
6467
/* End PBXBuildFile section */
6568

6669
/* Begin PBXContainerItemProxy section */
@@ -133,6 +136,7 @@
133136
D9DCD3EC1E6255E10010D1C7 /* XMPPFrameworkTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XMPPFrameworkTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
134137
D9DCD7151E625C560010D1C7 /* XMPPFrameworkTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XMPPFrameworkTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
135138
D9E35E6F1D90B894002E7CF7 /* OMEMOElementTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OMEMOElementTests.m; path = "../Testing-Shared/OMEMOElementTests.m"; sourceTree = SOURCE_ROOT; };
139+
DD26F5871F7CF1AE00F54F18 /* XMPPOneToOneChatTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XMPPOneToOneChatTests.m; sourceTree = "<group>"; };
136140
/* End PBXFileReference section */
137141

138142
/* Begin PBXFrameworksBuildPhase section */
@@ -202,6 +206,7 @@
202206
D973A0791D2F18040096F3ED /* XMPPStorageHintTests.m */,
203207
D973A07A1D2F18040096F3ED /* XMPPURITests.m */,
204208
D973A07B1D2F18040096F3ED /* XMPPvCardTests.m */,
209+
DD26F5871F7CF1AE00F54F18 /* XMPPOneToOneChatTests.m */,
205210
63F50D971C60208200CA0201 /* Info.plist */,
206211
);
207212
name = XMPPFrameworkTests;
@@ -385,6 +390,7 @@
385390
D973A07D1D2F18040096F3ED /* EncodeDecodeTest.m in Sources */,
386391
D973A0831D2F18040096F3ED /* XMPPRoomLightCoreDataStorageTests.m in Sources */,
387392
D973A0801D2F18040096F3ED /* XMPPMockStream.m in Sources */,
393+
DD26F5881F7CF1AE00F54F18 /* XMPPOneToOneChatTests.m in Sources */,
388394
D973A0841D2F18040096F3ED /* XMPPRoomLightTests.m in Sources */,
389395
D97509281D9C82DB002E6F51 /* OMEMOServerTests.m in Sources */,
390396
D99C5E0D1D99C48100FB068A /* OMEMOModuleTests.m in Sources */,
@@ -409,6 +415,7 @@
409415
D9DCD3D71E6255E10010D1C7 /* EncodeDecodeTest.m in Sources */,
410416
D9DCD3D81E6255E10010D1C7 /* XMPPRoomLightCoreDataStorageTests.m in Sources */,
411417
D9DCD3D91E6255E10010D1C7 /* XMPPMockStream.m in Sources */,
418+
DD26F5891F7CF1B400F54F18 /* XMPPOneToOneChatTests.m in Sources */,
412419
D9DCD3DA1E6255E10010D1C7 /* XMPPRoomLightTests.m in Sources */,
413420
D9DCD3DB1E6255E10010D1C7 /* OMEMOServerTests.m in Sources */,
414421
D9DCD3DC1E6255E10010D1C7 /* OMEMOModuleTests.m in Sources */,
@@ -433,6 +440,7 @@
433440
D9DCD7001E625C560010D1C7 /* EncodeDecodeTest.m in Sources */,
434441
D9DCD7011E625C560010D1C7 /* XMPPRoomLightCoreDataStorageTests.m in Sources */,
435442
D9DCD7021E625C560010D1C7 /* XMPPMockStream.m in Sources */,
443+
DD26F58A1F7CF1B400F54F18 /* XMPPOneToOneChatTests.m in Sources */,
436444
D9DCD7031E625C560010D1C7 /* XMPPRoomLightTests.m in Sources */,
437445
D9DCD7041E625C560010D1C7 /* OMEMOServerTests.m in Sources */,
438446
D9DCD7051E625C560010D1C7 /* OMEMOModuleTests.m in Sources */,
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
#import <XCTest/XCTest.h>
2+
#import "XMPPMockStream.h"
3+
4+
@interface XMPPOneToOneChatTests : XCTestCase <XMPPOneToOneChatDelegate>
5+
6+
@property (nonatomic, strong) XMPPMockStream *mockStream;
7+
@property (nonatomic, strong) XMPPOneToOneChat *oneToOneChat;
8+
@property (nonatomic, strong) XCTestExpectation *delegateCallbackExpectation;
9+
10+
@end
11+
12+
@implementation XMPPOneToOneChatTests
13+
14+
- (void)setUp
15+
{
16+
[super setUp];
17+
self.mockStream = [[XMPPMockStream alloc] init];
18+
self.oneToOneChat = [[XMPPOneToOneChat alloc] init];
19+
[self.oneToOneChat addDelegate:self delegateQueue:dispatch_get_main_queue()];
20+
[self.oneToOneChat activate:self.mockStream];
21+
}
22+
23+
- (void)testIncomingMessageHandling
24+
{
25+
self.delegateCallbackExpectation = [self expectationWithDescription:@"Incoming message delegate callback expectation"];
26+
27+
XMPPMessage *chatMessage = [[XMPPMessage alloc] initWithXMLString:
28+
@"<message from='juliet@example.com'"
29+
@" to='romeo@example.net'"
30+
@" type='chat'>"
31+
@" <body>Art thou not Romeo, and a Montague?</body>"
32+
@"</message>"
33+
error:nil];
34+
35+
XMPPMessage *emptyMessage = [[XMPPMessage alloc] initWithXMLString:
36+
@"<message from='juliet@example.com' to='romeo@example.net'/>"
37+
error:nil];
38+
39+
[self.mockStream fakeMessageResponse:chatMessage];
40+
[self.mockStream fakeMessageResponse:emptyMessage];
41+
42+
[self waitForExpectationsWithTimeout:5 handler:nil];
43+
}
44+
45+
- (void)testOutgoingMessageHandling
46+
{
47+
self.delegateCallbackExpectation = [self expectationWithDescription:@"Sent message delegate callback expectation"];
48+
49+
XMPPMessage *chatMessage = [[XMPPMessage alloc] initWithXMLString:
50+
@"<message to='romeo@example.net'"
51+
@" type='chat'>"
52+
@" <body>Art thou not Romeo, and a Montague?</body>"
53+
@"</message>"
54+
error:nil];
55+
56+
XMPPMessage *emptyMessage = [[XMPPMessage alloc] initWithXMLString:
57+
@"<message to='romeo@example.net'/>"
58+
error:nil];
59+
60+
[self.mockStream sendElement:chatMessage];
61+
[self.mockStream sendElement:emptyMessage];
62+
63+
[self waitForExpectationsWithTimeout:5 handler:nil];
64+
}
65+
66+
- (void)xmppOneToOneChat:(XMPPOneToOneChat *)xmppOneToOneChat didReceiveChatMessage:(XMPPMessage *)message
67+
{
68+
[self.delegateCallbackExpectation fulfill];
69+
}
70+
71+
- (void)xmppOneToOneChat:(XMPPOneToOneChat *)xmppOneToOneChat didSendChatMessage:(XMPPMessage *)message
72+
{
73+
[self.delegateCallbackExpectation fulfill];
74+
}
75+
76+
@end

Xcode/Testing-iOS/XMPPFrameworkTests.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
D99C5E0E1D99C48100FB068A /* OMEMOTestStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = D99C5E0C1D99C48100FB068A /* OMEMOTestStorage.m */; };
2626
D9E35E701D90B894002E7CF7 /* OMEMOElementTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D9E35E6F1D90B894002E7CF7 /* OMEMOElementTests.m */; };
2727
DD1E732C1ED86B7D009B529B /* XMPPPubSubTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1E732B1ED86B7D009B529B /* XMPPPubSubTests.m */; };
28+
DD26F5831F7CECD100F54F18 /* XMPPOneToOneChatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DD26F5821F7CECD100F54F18 /* XMPPOneToOneChatTests.m */; };
2829
FDD2AB232C05507F2045FFFC /* Pods_XMPPFrameworkTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CD0B17267211A912DE2098E /* Pods_XMPPFrameworkTests.framework */; };
2930
/* End PBXBuildFile section */
3031

@@ -55,6 +56,7 @@
5556
D99C5E0C1D99C48100FB068A /* OMEMOTestStorage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OMEMOTestStorage.m; path = "../../Testing-Shared/OMEMOTestStorage.m"; sourceTree = "<group>"; };
5657
D9E35E6F1D90B894002E7CF7 /* OMEMOElementTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OMEMOElementTests.m; path = "../../Testing-Shared/OMEMOElementTests.m"; sourceTree = "<group>"; };
5758
DD1E732B1ED86B7D009B529B /* XMPPPubSubTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = XMPPPubSubTests.m; path = "../../Testing-Shared/XMPPPubSubTests.m"; sourceTree = "<group>"; };
59+
DD26F5821F7CECD100F54F18 /* XMPPOneToOneChatTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = XMPPOneToOneChatTests.m; path = "../../Testing-Shared/XMPPOneToOneChatTests.m"; sourceTree = "<group>"; };
5860
/* End PBXFileReference section */
5961

6062
/* Begin PBXFrameworksBuildPhase section */
@@ -108,6 +110,7 @@
108110
D973A07A1D2F18040096F3ED /* XMPPURITests.m */,
109111
D973A07B1D2F18040096F3ED /* XMPPvCardTests.m */,
110112
DD1E732B1ED86B7D009B529B /* XMPPPubSubTests.m */,
113+
DD26F5821F7CECD100F54F18 /* XMPPOneToOneChatTests.m */,
111114
63F50D971C60208200CA0201 /* Info.plist */,
112115
D973A06E1D2F18030096F3ED /* XMPPFrameworkTests-Bridging-Header.h */,
113116
);
@@ -251,6 +254,7 @@
251254
buildActionMask = 2147483647;
252255
files = (
253256
D973A07C1D2F18040096F3ED /* CapabilitiesHashingTest.m in Sources */,
257+
DD26F5831F7CECD100F54F18 /* XMPPOneToOneChatTests.m in Sources */,
254258
D973A0811D2F18040096F3ED /* XMPPMUCLightTests.m in Sources */,
255259
D973A07D1D2F18040096F3ED /* EncodeDecodeTest.m in Sources */,
256260
D973A0831D2F18040096F3ED /* XMPPRoomLightCoreDataStorageTests.m in Sources */,

0 commit comments

Comments
 (0)