You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-ios/SignalServiceKit/Example/TSKitiOSTestApp/TSKitiOSTestApp.xcodeproj/project.pbxproj

821 lines
48 KiB
Plaintext

9 years ago
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
308D7DFA789594CEA62740D9 /* libPods-TSKitiOSTestAppTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C0DC1A83C39CBC09FB2405A3 /* libPods-TSKitiOSTestAppTests.a */; };
34D99C891F2250FF00D284D6 /* OWSAnalyticsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34D99C881F2250FF00D284D6 /* OWSAnalyticsTests.m */; };
45046FE01D95A6130015EFF2 /* TSMessagesManagerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 45046FDF1D95A6130015EFF2 /* TSMessagesManagerTest.m */; };
450E3C9A1D96DD2600BF4EB6 /* OWSDisappearingMessagesJobTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 450E3C991D96DD2600BF4EB6 /* OWSDisappearingMessagesJobTest.m */; };
451686AE1F527A9C00AC3D4B /* OWSProvisioningCipherTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 451686AD1F527A9C00AC3D4B /* OWSProvisioningCipherTest.m */; };
4516E3E81DD153CC00DC4206 /* TSGroupThreadTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 4516E3E71DD153CC00DC4206 /* TSGroupThreadTest.m */; };
4516E3EA1DD1542300DC4206 /* TSContactThreadTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 4516E3E91DD1542300DC4206 /* TSContactThreadTest.m */; };
452137231E8D6D2F0048FD10 /* OWSFakeMessageSender.m in Sources */ = {isa = PBXBuildFile; fileRef = 452137221E8D6D2F0048FD10 /* OWSFakeMessageSender.m */; };
452EE6CF1D4A754C00E934BA /* TSThreadTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 452EE6CE1D4A754C00E934BA /* TSThreadTest.m */; };
452EE6D51D4AC43300E934BA /* OWSOrphanedDataCleanerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 452EE6D41D4AC43300E934BA /* OWSOrphanedDataCleanerTest.m */; };
453E1FCF1DA8313100DDD7B7 /* OWSMessageSenderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 453E1FCE1DA8313100DDD7B7 /* OWSMessageSenderTest.m */; };
453E1FD81DA83E1000DDD7B7 /* OWSFakeContactsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 453E1FD71DA83E1000DDD7B7 /* OWSFakeContactsManager.m */; };
453E1FDB1DA83EFB00DDD7B7 /* OWSFakeContactsUpdater.m in Sources */ = {isa = PBXBuildFile; fileRef = 453E1FDA1DA83EFB00DDD7B7 /* OWSFakeContactsUpdater.m */; };
454021ED1D960ABF00F2126D /* OWSDisappearingMessageFinderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 454021EC1D960ABF00F2126D /* OWSDisappearingMessageFinderTest.m */; };
Explain send failures for text and media messages Motivation ---------- We were often swallowing errors or yielding generic errors when it would be better to provide specific errors. We also didn't create an attachment when attachments failed to send, making it impossible to show the user what was happening with an in-progress or failed attachment. Primary Changes --------------- - Funnel all message sending through MessageSender, and remove message sending from MessagesManager. - Record most recent sending error so we can expose it in the UI - Can resend attachments. - Update message status for attachments, just like text messages - Extracted UploadingService from MessagesManager - Saving attachment stream before uploading gives uniform API for send vs. resend - update status for downloading transcript attachments - TSAttachments have a local id, separate from the server allocated id This allows us to save the attachment before the allocation request. Which is is good because: 1. can show feedback to user faster. 2. allows us to show an error when allocation fails. Code Cleanup ------------ - Replaced a lot of global singleton access with injected dependencies to make for easier testing. - Never save group meta messages. Rather than checking before (hopefully) every save, do it in the save method. - Don't use callbacks for sync code. - Handle errors on writing attachment data - Fix old long broken tests that weren't even running. =( - Removed dead code - Use constants vs define - Port flaky travis fixes from Signal-iOS // FREEBIE
9 years ago
454092FA1DB7AFDE00579DE1 /* OWSFakeNetworkManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 454092F91DB7AFDE00579DE1 /* OWSFakeNetworkManager.m */; };
45458B751CC342B600A02153 /* SignedPreKeyDeletionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 45458B6A1CC342B600A02153 /* SignedPreKeyDeletionTests.m */; };
45458B771CC342B600A02153 /* TSMessageStorageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 45458B6E1CC342B600A02153 /* TSMessageStorageTests.m */; };
45458B781CC342B600A02153 /* TSStorageIdentityKeyStoreTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 45458B6F1CC342B600A02153 /* TSStorageIdentityKeyStoreTests.m */; };
45458B791CC342B600A02153 /* TSStoragePreKeyStoreTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 45458B701CC342B600A02153 /* TSStoragePreKeyStoreTests.m */; };
45458B7A1CC342B600A02153 /* TSStorageSignedPreKeyStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 45458B711CC342B600A02153 /* TSStorageSignedPreKeyStore.m */; };
45458B7B1CC342B600A02153 /* CryptographyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 45458B731CC342B600A02153 /* CryptographyTests.m */; };
45458B7C1CC342B600A02153 /* MessagePaddingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 45458B741CC342B600A02153 /* MessagePaddingTests.m */; };
45731A6C1DA87AA1007E22AA /* TSOutgoingMessageTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 45731A6B1DA87AA1007E22AA /* TSOutgoingMessageTest.m */; };
459850C11D22C6F2006FFEDB /* PhoneNumberTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 459850C01D22C6F2006FFEDB /* PhoneNumberTest.m */; };
45A856AC1D220BFF0056CD4D /* TSAttributesTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 45A856AB1D220BFF0056CD4D /* TSAttributesTest.m */; };
45AE48491E072711004D96C2 /* OWSUnitTestEnvironment.m in Sources */ = {isa = PBXBuildFile; fileRef = 45AE48481E072711004D96C2 /* OWSUnitTestEnvironment.m */; };
45AE484C1E072871004D96C2 /* OWSFakeCallMessageHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 45AE484B1E072871004D96C2 /* OWSFakeCallMessageHandler.m */; };
45AE484F1E072906004D96C2 /* OWSFakeNotificationsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 45AE484E1E072906004D96C2 /* OWSFakeNotificationsManager.m */; };
45B700971D9841E400269FFD /* OWSDisappearingMessagesConfigurationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 45B700961D9841E400269FFD /* OWSDisappearingMessagesConfigurationTest.m */; };
45B840211D988DA100F9E938 /* OWSReadReceiptTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 45B840201D988DA100F9E938 /* OWSReadReceiptTest.m */; };
45C6A09A1D2F029B007D8AC0 /* TSMessageTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 45C6A0991D2F029B007D8AC0 /* TSMessageTest.m */; };
45D7243F1D67899F00E0CA54 /* OWSDeviceProvisionerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D7243E1D67899F00E0CA54 /* OWSDeviceProvisionerTest.m */; };
45DC30C71F3B69B7008C4378 /* OWSFakeProfileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 45DC30C61F3B69B7008C4378 /* OWSFakeProfileManager.m */; };
45E741B61E5D14E800735842 /* OWSIncomingMessageFinderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 45E741B51E5D14E800735842 /* OWSIncomingMessageFinderTest.m */; };
51520592F83F2440F2DE4D67 /* libPods-TSKitiOSTestApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B8362AB8E280E0F64352F08A /* libPods-TSKitiOSTestApp.a */; };
6323E1F7730289398452E5C5 /* OWSFingerprintTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 6323E02A33682A8838FE3F27 /* OWSFingerprintTest.m */; };
6323E339D5B8F4CB77EB3ED4 /* SignalRecipientTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 6323E3E540CF763D71DACB59 /* SignalRecipientTest.m */; };
9 years ago
B6273DD61C13A2E500738558 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B6273DD51C13A2E500738558 /* main.m */; };
B6273DD91C13A2E500738558 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B6273DD81C13A2E500738558 /* AppDelegate.m */; };
B6273DDC1C13A2E500738558 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6273DDB1C13A2E500738558 /* ViewController.m */; };
B6273DDF1C13A2E500738558 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B6273DDD1C13A2E500738558 /* Main.storyboard */; };
B6273DE11C13A2E500738558 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B6273DE01C13A2E500738558 /* Assets.xcassets */; };
B6273DE41C13A2E500738558 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B6273DE21C13A2E500738558 /* LaunchScreen.storyboard */; };
D2AECE731DE8C3360068CE15 /* ContactSortingTest.m in Sources */ = {isa = PBXBuildFile; fileRef = D2AECE721DE8C3360068CE15 /* ContactSortingTest.m */; };
E95668321E0964F9002418B1 /* PhoneNumberUtilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E95668311E0964F9002418B1 /* PhoneNumberUtilTest.m */; };
9 years ago
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
B6273DEB1C13A2E500738558 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = B6273DC91C13A2E500738558 /* Project object */;
proxyType = 1;
remoteGlobalIDString = B6273DD01C13A2E500738558;
remoteInfo = TSKitiOSTestApp;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
1A50A62A8930EE2BC9B8AC11 /* Pods-TSKitiOSTestApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TSKitiOSTestApp.release.xcconfig"; path = "Pods/Target Support Files/Pods-TSKitiOSTestApp/Pods-TSKitiOSTestApp.release.xcconfig"; sourceTree = "<group>"; };
31DFDA8F9523F5B15EA2376B /* Pods-TSKitiOSTestApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TSKitiOSTestApp.debug.xcconfig"; path = "Pods/Target Support Files/Pods-TSKitiOSTestApp/Pods-TSKitiOSTestApp.debug.xcconfig"; sourceTree = "<group>"; };
34D99C881F2250FF00D284D6 /* OWSAnalyticsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSAnalyticsTests.m; sourceTree = "<group>"; };
36DA6C703F99948D553F4E3F /* Pods-TSKitiOSTestAppTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TSKitiOSTestAppTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-TSKitiOSTestAppTests/Pods-TSKitiOSTestAppTests.debug.xcconfig"; sourceTree = "<group>"; };
45046FDF1D95A6130015EFF2 /* TSMessagesManagerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TSMessagesManagerTest.m; path = ../../../tests/Messages/TSMessagesManagerTest.m; sourceTree = "<group>"; };
450E3C991D96DD2600BF4EB6 /* OWSDisappearingMessagesJobTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSDisappearingMessagesJobTest.m; path = ../../../tests/Messages/OWSDisappearingMessagesJobTest.m; sourceTree = "<group>"; };
451686AD1F527A9C00AC3D4B /* OWSProvisioningCipherTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSProvisioningCipherTest.m; path = ../../../tests/Devices/OWSProvisioningCipherTest.m; sourceTree = "<group>"; };
4516E3E71DD153CC00DC4206 /* TSGroupThreadTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TSGroupThreadTest.m; path = ../../../tests/Contacts/TSGroupThreadTest.m; sourceTree = "<group>"; };
4516E3E91DD1542300DC4206 /* TSContactThreadTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TSContactThreadTest.m; path = ../../../tests/Contacts/TSContactThreadTest.m; sourceTree = "<group>"; };
452137211E8D6D2F0048FD10 /* OWSFakeMessageSender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSFakeMessageSender.h; path = ../../../tests/TestSupport/Fakes/OWSFakeMessageSender.h; sourceTree = "<group>"; };
452137221E8D6D2F0048FD10 /* OWSFakeMessageSender.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSFakeMessageSender.m; path = ../../../tests/TestSupport/Fakes/OWSFakeMessageSender.m; sourceTree = "<group>"; };
452EE6CE1D4A754C00E934BA /* TSThreadTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TSThreadTest.m; path = ../../../tests/Contacts/TSThreadTest.m; sourceTree = "<group>"; };
452EE6D41D4AC43300E934BA /* OWSOrphanedDataCleanerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSOrphanedDataCleanerTest.m; sourceTree = "<group>"; };
453E1FCE1DA8313100DDD7B7 /* OWSMessageSenderTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSMessageSenderTest.m; path = ../../../tests/Messages/OWSMessageSenderTest.m; sourceTree = "<group>"; };
453E1FD61DA83E1000DDD7B7 /* OWSFakeContactsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSFakeContactsManager.h; path = ../../../tests/TestSupport/Fakes/OWSFakeContactsManager.h; sourceTree = "<group>"; };
453E1FD71DA83E1000DDD7B7 /* OWSFakeContactsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSFakeContactsManager.m; path = ../../../tests/TestSupport/Fakes/OWSFakeContactsManager.m; sourceTree = "<group>"; };
453E1FD91DA83EFB00DDD7B7 /* OWSFakeContactsUpdater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSFakeContactsUpdater.h; path = ../../../tests/TestSupport/Fakes/OWSFakeContactsUpdater.h; sourceTree = "<group>"; };
453E1FDA1DA83EFB00DDD7B7 /* OWSFakeContactsUpdater.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSFakeContactsUpdater.m; path = ../../../tests/TestSupport/Fakes/OWSFakeContactsUpdater.m; sourceTree = "<group>"; };
454021EC1D960ABF00F2126D /* OWSDisappearingMessageFinderTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSDisappearingMessageFinderTest.m; path = ../../../tests/Messages/OWSDisappearingMessageFinderTest.m; sourceTree = "<group>"; };
Explain send failures for text and media messages Motivation ---------- We were often swallowing errors or yielding generic errors when it would be better to provide specific errors. We also didn't create an attachment when attachments failed to send, making it impossible to show the user what was happening with an in-progress or failed attachment. Primary Changes --------------- - Funnel all message sending through MessageSender, and remove message sending from MessagesManager. - Record most recent sending error so we can expose it in the UI - Can resend attachments. - Update message status for attachments, just like text messages - Extracted UploadingService from MessagesManager - Saving attachment stream before uploading gives uniform API for send vs. resend - update status for downloading transcript attachments - TSAttachments have a local id, separate from the server allocated id This allows us to save the attachment before the allocation request. Which is is good because: 1. can show feedback to user faster. 2. allows us to show an error when allocation fails. Code Cleanup ------------ - Replaced a lot of global singleton access with injected dependencies to make for easier testing. - Never save group meta messages. Rather than checking before (hopefully) every save, do it in the save method. - Don't use callbacks for sync code. - Handle errors on writing attachment data - Fix old long broken tests that weren't even running. =( - Removed dead code - Use constants vs define - Port flaky travis fixes from Signal-iOS // FREEBIE
9 years ago
454092F81DB7AFDE00579DE1 /* OWSFakeNetworkManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSFakeNetworkManager.h; path = ../../../tests/TestSupport/Fakes/OWSFakeNetworkManager.h; sourceTree = "<group>"; };
454092F91DB7AFDE00579DE1 /* OWSFakeNetworkManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSFakeNetworkManager.m; path = ../../../tests/TestSupport/Fakes/OWSFakeNetworkManager.m; sourceTree = "<group>"; };
45458B6A1CC342B600A02153 /* SignedPreKeyDeletionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SignedPreKeyDeletionTests.m; sourceTree = "<group>"; };
45458B6E1CC342B600A02153 /* TSMessageStorageTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TSMessageStorageTests.m; sourceTree = "<group>"; };
45458B6F1CC342B600A02153 /* TSStorageIdentityKeyStoreTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TSStorageIdentityKeyStoreTests.m; sourceTree = "<group>"; };
45458B701CC342B600A02153 /* TSStoragePreKeyStoreTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TSStoragePreKeyStoreTests.m; sourceTree = "<group>"; };
45458B711CC342B600A02153 /* TSStorageSignedPreKeyStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TSStorageSignedPreKeyStore.m; sourceTree = "<group>"; };
45458B731CC342B600A02153 /* CryptographyTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CryptographyTests.m; sourceTree = "<group>"; };
45458B741CC342B600A02153 /* MessagePaddingTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessagePaddingTests.m; sourceTree = "<group>"; };
45731A6B1DA87AA1007E22AA /* TSOutgoingMessageTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TSOutgoingMessageTest.m; path = ../../../tests/Messages/Interactions/TSOutgoingMessageTest.m; sourceTree = "<group>"; };
459850C01D22C6F2006FFEDB /* PhoneNumberTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PhoneNumberTest.m; path = ../../../tests/Contacts/PhoneNumberTest.m; sourceTree = "<group>"; };
459FE0DA1D4AD49E00E1071A /* TSKitiOSTestApp-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TSKitiOSTestApp-Prefix.pch"; sourceTree = "<group>"; };
45A856AB1D220BFF0056CD4D /* TSAttributesTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TSAttributesTest.m; sourceTree = "<group>"; };
45AE48471E072711004D96C2 /* OWSUnitTestEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSUnitTestEnvironment.h; path = ../../../tests/TestSupport/Fakes/OWSUnitTestEnvironment.h; sourceTree = "<group>"; };
45AE48481E072711004D96C2 /* OWSUnitTestEnvironment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSUnitTestEnvironment.m; path = ../../../tests/TestSupport/Fakes/OWSUnitTestEnvironment.m; sourceTree = "<group>"; };
45AE484A1E072871004D96C2 /* OWSFakeCallMessageHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSFakeCallMessageHandler.h; path = ../../../tests/TestSupport/Fakes/OWSFakeCallMessageHandler.h; sourceTree = "<group>"; };
45AE484B1E072871004D96C2 /* OWSFakeCallMessageHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSFakeCallMessageHandler.m; path = ../../../tests/TestSupport/Fakes/OWSFakeCallMessageHandler.m; sourceTree = "<group>"; };
45AE484D1E072906004D96C2 /* OWSFakeNotificationsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSFakeNotificationsManager.h; path = ../../../tests/TestSupport/Fakes/OWSFakeNotificationsManager.h; sourceTree = "<group>"; };
45AE484E1E072906004D96C2 /* OWSFakeNotificationsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSFakeNotificationsManager.m; path = ../../../tests/TestSupport/Fakes/OWSFakeNotificationsManager.m; sourceTree = "<group>"; };
45B700961D9841E400269FFD /* OWSDisappearingMessagesConfigurationTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSDisappearingMessagesConfigurationTest.m; path = ../../../tests/Contacts/OWSDisappearingMessagesConfigurationTest.m; sourceTree = "<group>"; };
45B840201D988DA100F9E938 /* OWSReadReceiptTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSReadReceiptTest.m; path = ../../../tests/Devices/OWSReadReceiptTest.m; sourceTree = "<group>"; };
45C6A0991D2F029B007D8AC0 /* TSMessageTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TSMessageTest.m; path = ../../../tests/Messages/Interactions/TSMessageTest.m; sourceTree = "<group>"; };
45D7243E1D67899F00E0CA54 /* OWSDeviceProvisionerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSDeviceProvisionerTest.m; path = ../../../tests/Devices/OWSDeviceProvisionerTest.m; sourceTree = "<group>"; };
45DC30C51F3B69B7008C4378 /* OWSFakeProfileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSFakeProfileManager.h; path = ../../../tests/TestSupport/Fakes/OWSFakeProfileManager.h; sourceTree = "<group>"; };
45DC30C61F3B69B7008C4378 /* OWSFakeProfileManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSFakeProfileManager.m; path = ../../../tests/TestSupport/Fakes/OWSFakeProfileManager.m; sourceTree = "<group>"; };
45E741B51E5D14E800735842 /* OWSIncomingMessageFinderTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSIncomingMessageFinderTest.m; path = ../../../tests/Messages/OWSIncomingMessageFinderTest.m; sourceTree = "<group>"; };
6323E02A33682A8838FE3F27 /* OWSFingerprintTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSFingerprintTest.m; path = ../../../tests/Security/OWSFingerprintTest.m; sourceTree = "<group>"; };
6323E3E540CF763D71DACB59 /* SignalRecipientTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SignalRecipientTest.m; path = ../../tests/Contacts/SignalRecipientTest.m; sourceTree = "<group>"; };
9 years ago
B6273DD11C13A2E500738558 /* TSKitiOSTestApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TSKitiOSTestApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
B6273DD51C13A2E500738558 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
B6273DD71C13A2E500738558 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
B6273DD81C13A2E500738558 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
B6273DDA1C13A2E500738558 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
B6273DDB1C13A2E500738558 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
B6273DDE1C13A2E500738558 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
B6273DE01C13A2E500738558 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
B6273DE31C13A2E500738558 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
B6273DE51C13A2E500738558 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B6273DEA1C13A2E500738558 /* TSKitiOSTestAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TSKitiOSTestAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
B6273DF01C13A2E500738558 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B8362AB8E280E0F64352F08A /* libPods-TSKitiOSTestApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-TSKitiOSTestApp.a"; sourceTree = BUILT_PRODUCTS_DIR; };
C0DC1A83C39CBC09FB2405A3 /* libPods-TSKitiOSTestAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-TSKitiOSTestAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
D2AECE721DE8C3360068CE15 /* ContactSortingTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ContactSortingTest.m; path = ../../../tests/Contacts/ContactSortingTest.m; sourceTree = "<group>"; };
D3737F7A041D7147015C02C2 /* Pods-TSKitiOSTestAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TSKitiOSTestAppTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-TSKitiOSTestAppTests/Pods-TSKitiOSTestAppTests.release.xcconfig"; sourceTree = "<group>"; };
E95668311E0964F9002418B1 /* PhoneNumberUtilTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PhoneNumberUtilTest.m; path = ../../../tests/Contacts/PhoneNumberUtilTest.m; sourceTree = "<group>"; };
9 years ago
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
B6273DCE1C13A2E500738558 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
51520592F83F2440F2DE4D67 /* libPods-TSKitiOSTestApp.a in Frameworks */,
9 years ago
);
runOnlyForDeploymentPostprocessing = 0;
};
B6273DE71C13A2E500738558 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
308D7DFA789594CEA62740D9 /* libPods-TSKitiOSTestAppTests.a in Frameworks */,
9 years ago
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
453E1FD41DA83DD500DDD7B7 /* TestSupport */ = {
isa = PBXGroup;
children = (
453E1FD51DA83DDC00DDD7B7 /* Fakes */,
);
name = TestSupport;
sourceTree = "<group>";
};
453E1FD51DA83DDC00DDD7B7 /* Fakes */ = {
isa = PBXGroup;
children = (
45DC30C51F3B69B7008C4378 /* OWSFakeProfileManager.h */,
45DC30C61F3B69B7008C4378 /* OWSFakeProfileManager.m */,
453E1FD61DA83E1000DDD7B7 /* OWSFakeContactsManager.h */,
453E1FD71DA83E1000DDD7B7 /* OWSFakeContactsManager.m */,
453E1FD91DA83EFB00DDD7B7 /* OWSFakeContactsUpdater.h */,
453E1FDA1DA83EFB00DDD7B7 /* OWSFakeContactsUpdater.m */,
Explain send failures for text and media messages Motivation ---------- We were often swallowing errors or yielding generic errors when it would be better to provide specific errors. We also didn't create an attachment when attachments failed to send, making it impossible to show the user what was happening with an in-progress or failed attachment. Primary Changes --------------- - Funnel all message sending through MessageSender, and remove message sending from MessagesManager. - Record most recent sending error so we can expose it in the UI - Can resend attachments. - Update message status for attachments, just like text messages - Extracted UploadingService from MessagesManager - Saving attachment stream before uploading gives uniform API for send vs. resend - update status for downloading transcript attachments - TSAttachments have a local id, separate from the server allocated id This allows us to save the attachment before the allocation request. Which is is good because: 1. can show feedback to user faster. 2. allows us to show an error when allocation fails. Code Cleanup ------------ - Replaced a lot of global singleton access with injected dependencies to make for easier testing. - Never save group meta messages. Rather than checking before (hopefully) every save, do it in the save method. - Don't use callbacks for sync code. - Handle errors on writing attachment data - Fix old long broken tests that weren't even running. =( - Removed dead code - Use constants vs define - Port flaky travis fixes from Signal-iOS // FREEBIE
9 years ago
454092F81DB7AFDE00579DE1 /* OWSFakeNetworkManager.h */,
454092F91DB7AFDE00579DE1 /* OWSFakeNetworkManager.m */,
45AE48471E072711004D96C2 /* OWSUnitTestEnvironment.h */,
45AE48481E072711004D96C2 /* OWSUnitTestEnvironment.m */,
45AE484A1E072871004D96C2 /* OWSFakeCallMessageHandler.h */,
45AE484B1E072871004D96C2 /* OWSFakeCallMessageHandler.m */,
45AE484D1E072906004D96C2 /* OWSFakeNotificationsManager.h */,
45AE484E1E072906004D96C2 /* OWSFakeNotificationsManager.m */,
452137211E8D6D2F0048FD10 /* OWSFakeMessageSender.h */,
452137221E8D6D2F0048FD10 /* OWSFakeMessageSender.m */,
);
name = Fakes;
sourceTree = "<group>";
};
45458B691CC342B600A02153 /* Account */ = {
isa = PBXGroup;
children = (
45458B6A1CC342B600A02153 /* SignedPreKeyDeletionTests.m */,
45A856AB1D220BFF0056CD4D /* TSAttributesTest.m */,
);
name = Account;
path = ../../../tests/Account;
sourceTree = "<group>";
};
45458B6D1CC342B600A02153 /* Storage */ = {
isa = PBXGroup;
children = (
45458B6E1CC342B600A02153 /* TSMessageStorageTests.m */,
45458B6F1CC342B600A02153 /* TSStorageIdentityKeyStoreTests.m */,
45458B701CC342B600A02153 /* TSStoragePreKeyStoreTests.m */,
45458B711CC342B600A02153 /* TSStorageSignedPreKeyStore.m */,
452EE6D41D4AC43300E934BA /* OWSOrphanedDataCleanerTest.m */,
);
name = Storage;
path = ../../../tests/Storage;
sourceTree = "<group>";
};
45458B721CC342B600A02153 /* Util */ = {
isa = PBXGroup;
children = (
45458B731CC342B600A02153 /* CryptographyTests.m */,
45458B741CC342B600A02153 /* MessagePaddingTests.m */,
34D99C881F2250FF00D284D6 /* OWSAnalyticsTests.m */,
);
name = Util;
path = ../../../tests/Util;
sourceTree = "<group>";
};
454AB2261D89CC6E006325C9 /* Security */ = {
isa = PBXGroup;
children = (
6323E02A33682A8838FE3F27 /* OWSFingerprintTest.m */,
);
name = Security;
sourceTree = "<group>";
};
459850BF1D22C6C4006FFEDB /* Contacts */ = {
isa = PBXGroup;
children = (
D2AECE721DE8C3360068CE15 /* ContactSortingTest.m */,
45B700961D9841E400269FFD /* OWSDisappearingMessagesConfigurationTest.m */,
459850C01D22C6F2006FFEDB /* PhoneNumberTest.m */,
E95668311E0964F9002418B1 /* PhoneNumberUtilTest.m */,
452EE6CE1D4A754C00E934BA /* TSThreadTest.m */,
4516E3E71DD153CC00DC4206 /* TSGroupThreadTest.m */,
4516E3E91DD1542300DC4206 /* TSContactThreadTest.m */,
);
name = Contacts;
sourceTree = "<group>";
};
45C6A0971D2F0254007D8AC0 /* Messages */ = {
isa = PBXGroup;
children = (
450E3C991D96DD2600BF4EB6 /* OWSDisappearingMessagesJobTest.m */,
45C6A0981D2F0264007D8AC0 /* Interactions */,
45046FDF1D95A6130015EFF2 /* TSMessagesManagerTest.m */,
454021EC1D960ABF00F2126D /* OWSDisappearingMessageFinderTest.m */,
453E1FCE1DA8313100DDD7B7 /* OWSMessageSenderTest.m */,
45E741B51E5D14E800735842 /* OWSIncomingMessageFinderTest.m */,
);
name = Messages;
sourceTree = "<group>";
};
45C6A0981D2F0264007D8AC0 /* Interactions */ = {
isa = PBXGroup;
children = (
45C6A0991D2F029B007D8AC0 /* TSMessageTest.m */,
45731A6B1DA87AA1007E22AA /* TSOutgoingMessageTest.m */,
);
name = Interactions;
sourceTree = "<group>";
};
45D7243D1D67894100E0CA54 /* Devices */ = {
isa = PBXGroup;
children = (
45D7243E1D67899F00E0CA54 /* OWSDeviceProvisionerTest.m */,
45B840201D988DA100F9E938 /* OWSReadReceiptTest.m */,
451686AD1F527A9C00AC3D4B /* OWSProvisioningCipherTest.m */,
);
name = Devices;
sourceTree = "<group>";
};
5183572EFCE99F6F1791272A /* Pods */ = {
9 years ago
isa = PBXGroup;
children = (
31DFDA8F9523F5B15EA2376B /* Pods-TSKitiOSTestApp.debug.xcconfig */,
1A50A62A8930EE2BC9B8AC11 /* Pods-TSKitiOSTestApp.release.xcconfig */,
36DA6C703F99948D553F4E3F /* Pods-TSKitiOSTestAppTests.debug.xcconfig */,
D3737F7A041D7147015C02C2 /* Pods-TSKitiOSTestAppTests.release.xcconfig */,
9 years ago
);
name = Pods;
sourceTree = "<group>";
};
AD6EE8912464E5C2A7FF5BA1 /* Frameworks */ = {
isa = PBXGroup;
children = (
B8362AB8E280E0F64352F08A /* libPods-TSKitiOSTestApp.a */,
C0DC1A83C39CBC09FB2405A3 /* libPods-TSKitiOSTestAppTests.a */,
);
name = Frameworks;
sourceTree = "<group>";
};
9 years ago
B6273DC81C13A2E500738558 = {
isa = PBXGroup;
children = (
B6273DD31C13A2E500738558 /* TSKitiOSTestApp */,
B6273DED1C13A2E500738558 /* TSKitiOSTestAppTests */,
B6273DD21C13A2E500738558 /* Products */,
5183572EFCE99F6F1791272A /* Pods */,
AD6EE8912464E5C2A7FF5BA1 /* Frameworks */,
6323E3E540CF763D71DACB59 /* SignalRecipientTest.m */,
9 years ago
);
sourceTree = "<group>";
};
B6273DD21C13A2E500738558 /* Products */ = {
isa = PBXGroup;
children = (
B6273DD11C13A2E500738558 /* TSKitiOSTestApp.app */,
B6273DEA1C13A2E500738558 /* TSKitiOSTestAppTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
B6273DD31C13A2E500738558 /* TSKitiOSTestApp */ = {
isa = PBXGroup;
children = (
B6273DD71C13A2E500738558 /* AppDelegate.h */,
B6273DD81C13A2E500738558 /* AppDelegate.m */,
B6273DDA1C13A2E500738558 /* ViewController.h */,
B6273DDB1C13A2E500738558 /* ViewController.m */,
B6273DDD1C13A2E500738558 /* Main.storyboard */,
B6273DE01C13A2E500738558 /* Assets.xcassets */,
B6273DE21C13A2E500738558 /* LaunchScreen.storyboard */,
B6273DE51C13A2E500738558 /* Info.plist */,
B6273DD41C13A2E500738558 /* Supporting Files */,
459FE0DA1D4AD49E00E1071A /* TSKitiOSTestApp-Prefix.pch */,
9 years ago
);
path = TSKitiOSTestApp;
sourceTree = "<group>";
};
B6273DD41C13A2E500738558 /* Supporting Files */ = {
isa = PBXGroup;
children = (
B6273DD51C13A2E500738558 /* main.m */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
B6273DED1C13A2E500738558 /* TSKitiOSTestAppTests */ = {
isa = PBXGroup;
children = (
453E1FD41DA83DD500DDD7B7 /* TestSupport */,
45458B691CC342B600A02153 /* Account */,
459850BF1D22C6C4006FFEDB /* Contacts */,
45D7243D1D67894100E0CA54 /* Devices */,
45C6A0971D2F0254007D8AC0 /* Messages */,
454AB2261D89CC6E006325C9 /* Security */,
45458B6D1CC342B600A02153 /* Storage */,
45458B721CC342B600A02153 /* Util */,
9 years ago
B6273DF01C13A2E500738558 /* Info.plist */,
);
path = TSKitiOSTestAppTests;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
B6273DD01C13A2E500738558 /* TSKitiOSTestApp */ = {
isa = PBXNativeTarget;
buildConfigurationList = B6273DF31C13A2E500738558 /* Build configuration list for PBXNativeTarget "TSKitiOSTestApp" */;
buildPhases = (
017ACCC36CB4DFE28280A303 /* [CP] Check Pods Manifest.lock */,
9 years ago
B6273DCD1C13A2E500738558 /* Sources */,
B6273DCE1C13A2E500738558 /* Frameworks */,
B6273DCF1C13A2E500738558 /* Resources */,
7240F1DFEB8F39F882DA4F72 /* [CP] Embed Pods Frameworks */,
79F90B25B480501ADACC3092 /* [CP] Copy Pods Resources */,
9 years ago
);
buildRules = (
);
dependencies = (
);
name = TSKitiOSTestApp;
productName = TSKitiOSTestApp;
productReference = B6273DD11C13A2E500738558 /* TSKitiOSTestApp.app */;
productType = "com.apple.product-type.application";
};
B6273DE91C13A2E500738558 /* TSKitiOSTestAppTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = B6273DF61C13A2E500738558 /* Build configuration list for PBXNativeTarget "TSKitiOSTestAppTests" */;
buildPhases = (
B8404FA1C41E385E21870729 /* [CP] Check Pods Manifest.lock */,
9 years ago
B6273DE61C13A2E500738558 /* Sources */,
B6273DE71C13A2E500738558 /* Frameworks */,
B6273DE81C13A2E500738558 /* Resources */,
7543E717C58488BBB892DDCC /* [CP] Embed Pods Frameworks */,
276B029791E679B0E87877B7 /* [CP] Copy Pods Resources */,
9 years ago
);
buildRules = (
);
dependencies = (
B6273DEC1C13A2E500738558 /* PBXTargetDependency */,
);
name = TSKitiOSTestAppTests;
productName = TSKitiOSTestAppTests;
productReference = B6273DEA1C13A2E500738558 /* TSKitiOSTestAppTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
B6273DC91C13A2E500738558 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0710;
ORGANIZATIONNAME = "Open Whisper Systems";
TargetAttributes = {
B6273DD01C13A2E500738558 = {
CreatedOnToolsVersion = 7.1.1;
DevelopmentTeam = U68MSDN6DR;
9 years ago
};
B6273DE91C13A2E500738558 = {
CreatedOnToolsVersion = 7.1.1;
DevelopmentTeam = U68MSDN6DR;
9 years ago
TestTargetID = B6273DD01C13A2E500738558;
};
};
};
buildConfigurationList = B6273DCC1C13A2E500738558 /* Build configuration list for PBXProject "TSKitiOSTestApp" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = B6273DC81C13A2E500738558;
productRefGroup = B6273DD21C13A2E500738558 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
B6273DD01C13A2E500738558 /* TSKitiOSTestApp */,
B6273DE91C13A2E500738558 /* TSKitiOSTestAppTests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
B6273DCF1C13A2E500738558 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B6273DE41C13A2E500738558 /* LaunchScreen.storyboard in Resources */,
B6273DE11C13A2E500738558 /* Assets.xcassets in Resources */,
B6273DDF1C13A2E500738558 /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B6273DE81C13A2E500738558 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
017ACCC36CB4DFE28280A303 /* [CP] Check Pods Manifest.lock */ = {
9 years ago
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
9 years ago
);
name = "[CP] Check Pods Manifest.lock";
9 years ago
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-TSKitiOSTestApp-checkManifestLockResult.txt",
9 years ago
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
9 years ago
showEnvVarsInLog = 0;
};
276B029791E679B0E87877B7 /* [CP] Copy Pods Resources */ = {
9 years ago
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
9 years ago
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-TSKitiOSTestAppTests/Pods-TSKitiOSTestAppTests-resources.sh\"\n";
9 years ago
showEnvVarsInLog = 0;
};
7240F1DFEB8F39F882DA4F72 /* [CP] Embed Pods Frameworks */ = {
9 years ago
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
9 years ago
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-TSKitiOSTestApp/Pods-TSKitiOSTestApp-frameworks.sh\"\n";
9 years ago
showEnvVarsInLog = 0;
};
7543E717C58488BBB892DDCC /* [CP] Embed Pods Frameworks */ = {
9 years ago
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
9 years ago
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-TSKitiOSTestAppTests/Pods-TSKitiOSTestAppTests-frameworks.sh\"\n";
9 years ago
showEnvVarsInLog = 0;
};
79F90B25B480501ADACC3092 /* [CP] Copy Pods Resources */ = {
9 years ago
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${SRCROOT}/Pods/Target Support Files/Pods-TSKitiOSTestApp/Pods-TSKitiOSTestApp-resources.sh",
"${PODS_ROOT}/SAMKeychain/Support/SAMKeychain.bundle",
"${PODS_ROOT}/../../../src/Security/PinningCertificate/textsecure.cer",
"${PODS_ROOT}/../../../src/Security/PinningCertificate/GIAG2.crt",
9 years ago
);
name = "[CP] Copy Pods Resources";
9 years ago
outputPaths = (
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}",
9 years ago
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-TSKitiOSTestApp/Pods-TSKitiOSTestApp-resources.sh\"\n";
9 years ago
showEnvVarsInLog = 0;
};
B8404FA1C41E385E21870729 /* [CP] Check Pods Manifest.lock */ = {
9 years ago
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
9 years ago
);
name = "[CP] Check Pods Manifest.lock";
9 years ago
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-TSKitiOSTestAppTests-checkManifestLockResult.txt",
9 years ago
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
9 years ago
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
B6273DCD1C13A2E500738558 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B6273DDC1C13A2E500738558 /* ViewController.m in Sources */,
B6273DD91C13A2E500738558 /* AppDelegate.m in Sources */,
B6273DD61C13A2E500738558 /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B6273DE61C13A2E500738558 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
45B840211D988DA100F9E938 /* OWSReadReceiptTest.m in Sources */,
45458B781CC342B600A02153 /* TSStorageIdentityKeyStoreTests.m in Sources */,
45B700971D9841E400269FFD /* OWSDisappearingMessagesConfigurationTest.m in Sources */,
45458B751CC342B600A02153 /* SignedPreKeyDeletionTests.m in Sources */,
45458B7B1CC342B600A02153 /* CryptographyTests.m in Sources */,
45D7243F1D67899F00E0CA54 /* OWSDeviceProvisionerTest.m in Sources */,
4516E3E81DD153CC00DC4206 /* TSGroupThreadTest.m in Sources */,
45458B791CC342B600A02153 /* TSStoragePreKeyStoreTests.m in Sources */,
45E741B61E5D14E800735842 /* OWSIncomingMessageFinderTest.m in Sources */,
452EE6D51D4AC43300E934BA /* OWSOrphanedDataCleanerTest.m in Sources */,
450E3C9A1D96DD2600BF4EB6 /* OWSDisappearingMessagesJobTest.m in Sources */,
34D99C891F2250FF00D284D6 /* OWSAnalyticsTests.m in Sources */,
452EE6CF1D4A754C00E934BA /* TSThreadTest.m in Sources */,
45C6A09A1D2F029B007D8AC0 /* TSMessageTest.m in Sources */,
453E1FCF1DA8313100DDD7B7 /* OWSMessageSenderTest.m in Sources */,
45AE484C1E072871004D96C2 /* OWSFakeCallMessageHandler.m in Sources */,
45AE48491E072711004D96C2 /* OWSUnitTestEnvironment.m in Sources */,
459850C11D22C6F2006FFEDB /* PhoneNumberTest.m in Sources */,
45DC30C71F3B69B7008C4378 /* OWSFakeProfileManager.m in Sources */,
451686AE1F527A9C00AC3D4B /* OWSProvisioningCipherTest.m in Sources */,
45458B7A1CC342B600A02153 /* TSStorageSignedPreKeyStore.m in Sources */,
453E1FDB1DA83EFB00DDD7B7 /* OWSFakeContactsUpdater.m in Sources */,
452137231E8D6D2F0048FD10 /* OWSFakeMessageSender.m in Sources */,
D2AECE731DE8C3360068CE15 /* ContactSortingTest.m in Sources */,
453E1FD81DA83E1000DDD7B7 /* OWSFakeContactsManager.m in Sources */,
454021ED1D960ABF00F2126D /* OWSDisappearingMessageFinderTest.m in Sources */,
4516E3EA1DD1542300DC4206 /* TSContactThreadTest.m in Sources */,
45458B771CC342B600A02153 /* TSMessageStorageTests.m in Sources */,
45046FE01D95A6130015EFF2 /* TSMessagesManagerTest.m in Sources */,
E95668321E0964F9002418B1 /* PhoneNumberUtilTest.m in Sources */,
45458B7C1CC342B600A02153 /* MessagePaddingTests.m in Sources */,
45A856AC1D220BFF0056CD4D /* TSAttributesTest.m in Sources */,
45731A6C1DA87AA1007E22AA /* TSOutgoingMessageTest.m in Sources */,
6323E339D5B8F4CB77EB3ED4 /* SignalRecipientTest.m in Sources */,
45AE484F1E072906004D96C2 /* OWSFakeNotificationsManager.m in Sources */,
6323E1F7730289398452E5C5 /* OWSFingerprintTest.m in Sources */,
Explain send failures for text and media messages Motivation ---------- We were often swallowing errors or yielding generic errors when it would be better to provide specific errors. We also didn't create an attachment when attachments failed to send, making it impossible to show the user what was happening with an in-progress or failed attachment. Primary Changes --------------- - Funnel all message sending through MessageSender, and remove message sending from MessagesManager. - Record most recent sending error so we can expose it in the UI - Can resend attachments. - Update message status for attachments, just like text messages - Extracted UploadingService from MessagesManager - Saving attachment stream before uploading gives uniform API for send vs. resend - update status for downloading transcript attachments - TSAttachments have a local id, separate from the server allocated id This allows us to save the attachment before the allocation request. Which is is good because: 1. can show feedback to user faster. 2. allows us to show an error when allocation fails. Code Cleanup ------------ - Replaced a lot of global singleton access with injected dependencies to make for easier testing. - Never save group meta messages. Rather than checking before (hopefully) every save, do it in the save method. - Don't use callbacks for sync code. - Handle errors on writing attachment data - Fix old long broken tests that weren't even running. =( - Removed dead code - Use constants vs define - Port flaky travis fixes from Signal-iOS // FREEBIE
9 years ago
454092FA1DB7AFDE00579DE1 /* OWSFakeNetworkManager.m in Sources */,
9 years ago
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
B6273DEC1C13A2E500738558 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = B6273DD01C13A2E500738558 /* TSKitiOSTestApp */;
targetProxy = B6273DEB1C13A2E500738558 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
B6273DDD1C13A2E500738558 /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
B6273DDE1C13A2E500738558 /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
B6273DE21C13A2E500738558 /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
B6273DE31C13A2E500738558 /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
B6273DF11C13A2E500738558 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.1;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
B6273DF21C13A2E500738558 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.1;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
B6273DF41C13A2E500738558 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 31DFDA8F9523F5B15EA2376B /* Pods-TSKitiOSTestApp.debug.xcconfig */;
9 years ago
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
DEVELOPMENT_TEAM = U68MSDN6DR;
9 years ago
INFOPLIST_FILE = TSKitiOSTestApp/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.whispersystems.TSKitiOSTestApp;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
B6273DF51C13A2E500738558 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1A50A62A8930EE2BC9B8AC11 /* Pods-TSKitiOSTestApp.release.xcconfig */;
9 years ago
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
DEVELOPMENT_TEAM = U68MSDN6DR;
9 years ago
INFOPLIST_FILE = TSKitiOSTestApp/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.whispersystems.TSKitiOSTestApp;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
B6273DF71C13A2E500738558 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 36DA6C703F99948D553F4E3F /* Pods-TSKitiOSTestAppTests.debug.xcconfig */;
9 years ago
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
DEVELOPMENT_TEAM = U68MSDN6DR;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SRCROOT)/$(PROJECT_NAME)/TSKitiOSTestApp-Prefix.pch";
9 years ago
INFOPLIST_FILE = TSKitiOSTestAppTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.whispersystems.TSKitiOSTestAppTests;
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TSKitiOSTestApp.app/TSKitiOSTestApp";
};
name = Debug;
};
B6273DF81C13A2E500738558 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = D3737F7A041D7147015C02C2 /* Pods-TSKitiOSTestAppTests.release.xcconfig */;
9 years ago
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
DEVELOPMENT_TEAM = U68MSDN6DR;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SRCROOT)/$(PROJECT_NAME)/TSKitiOSTestApp-Prefix.pch";
9 years ago
INFOPLIST_FILE = TSKitiOSTestAppTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.whispersystems.TSKitiOSTestAppTests;
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TSKitiOSTestApp.app/TSKitiOSTestApp";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
B6273DCC1C13A2E500738558 /* Build configuration list for PBXProject "TSKitiOSTestApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B6273DF11C13A2E500738558 /* Debug */,
B6273DF21C13A2E500738558 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
B6273DF31C13A2E500738558 /* Build configuration list for PBXNativeTarget "TSKitiOSTestApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B6273DF41C13A2E500738558 /* Debug */,
B6273DF51C13A2E500738558 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
B6273DF61C13A2E500738558 /* Build configuration list for PBXNativeTarget "TSKitiOSTestAppTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B6273DF71C13A2E500738558 /* Debug */,
B6273DF81C13A2E500738558 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = B6273DC91C13A2E500738558 /* Project object */;
}