Integrate shared Message Backup integration test repo

This commit is contained in:
Sasha Weiss
2024-05-20 14:37:05 -07:00
committed by GitHub
parent fefbf7e5c3
commit 0abdf5793b
9 changed files with 36 additions and 236 deletions

3
.gitmodules vendored
View File

@@ -1,3 +1,6 @@
[submodule "Pods"]
path = Pods
url = https://github.com/signalapp/Signal-Pods.git
[submodule "SignalServiceKit/tests/MessageBackup/Signal-Message-Backup-Tests"]
path = SignalServiceKit/tests/MessageBackup/Signal-Message-Backup-Tests
url = https://github.com/signalapp/Signal-Message-Backup-Tests

View File

@@ -1671,6 +1671,12 @@
D91AC9402B63393300814975 /* OWSGroupCallMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D91AC93F2B63393300814975 /* OWSGroupCallMessage.swift */; };
D91F0B4E2B193A5C0086DB30 /* GroupCallRecordRingUpdateDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B91D8D2B17E2A600BCB11A /* GroupCallRecordRingUpdateDelegate.swift */; };
D91F0B4F2B193A7A0086DB30 /* GroupCallRecordRingUpdateDelegateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D91F0B4B2B1939B60086DB30 /* GroupCallRecordRingUpdateDelegateTest.swift */; };
D9247E9E2BFBED2A00DFEF6F /* registered-blocked-contact.jsonproto in Resources */ = {isa = PBXBuildFile; fileRef = D9247E982BFBED2A00DFEF6F /* registered-blocked-contact.jsonproto */; };
D9247E9F2BFBED2A00DFEF6F /* unregistered-contact.jsonproto in Resources */ = {isa = PBXBuildFile; fileRef = D9247E992BFBED2A00DFEF6F /* unregistered-contact.jsonproto */; };
D9247EA02BFBED2A00DFEF6F /* account-data.jsonproto in Resources */ = {isa = PBXBuildFile; fileRef = D9247E9A2BFBED2A00DFEF6F /* account-data.jsonproto */; };
D9247EA12BFBED2A00DFEF6F /* account-data.binproto in Resources */ = {isa = PBXBuildFile; fileRef = D9247E9B2BFBED2A00DFEF6F /* account-data.binproto */; };
D9247EA22BFBED2A00DFEF6F /* unregistered-contact.binproto in Resources */ = {isa = PBXBuildFile; fileRef = D9247E9C2BFBED2A00DFEF6F /* unregistered-contact.binproto */; };
D9247EA32BFBED2A00DFEF6F /* registered-blocked-contact.binproto in Resources */ = {isa = PBXBuildFile; fileRef = D9247E9D2BFBED2A00DFEF6F /* registered-blocked-contact.binproto */; };
D925937A28B0497900D5D437 /* LocalUserLeaveGroupJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = D925937928B0497900D5D437 /* LocalUserLeaveGroupJob.swift */; };
D925C7BB2B7BEC0F00AC73B0 /* OutgoingCallLogEventSyncMessageTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D925C7BA2B7BEC0F00AC73B0 /* OutgoingCallLogEventSyncMessageTest.swift */; };
D925F5512983399D00158EE4 /* CircleButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = D925F5502983399D00158EE4 /* CircleButton.swift */; };
@@ -1786,9 +1792,6 @@
D9AE0ADB29188A170063488B /* LegacyMessageDecryptJobRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9AE0ADA29188A170063488B /* LegacyMessageDecryptJobRecord.swift */; };
D9AE0ADD2918B2960063488B /* JobRecord+Columns.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9AE0ADC2918B2960063488B /* JobRecord+Columns.swift */; };
D9B0AC7429EF42960070F31C /* TSInfoMessage+DisplayableGroupUpdateItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B0AC7329EF42960070F31C /* TSInfoMessage+DisplayableGroupUpdateItem.swift */; };
D9B6FD752BF2B94A00BB7DF1 /* account-data.jsonproto in Resources */ = {isa = PBXBuildFile; fileRef = D9B6FD742BF2B94A00BB7DF1 /* account-data.jsonproto */; };
D9B6FD7A2BF40A7200BB7DF1 /* unregistered-contact.jsonproto in Resources */ = {isa = PBXBuildFile; fileRef = D9B6FD782BF40A7200BB7DF1 /* unregistered-contact.jsonproto */; };
D9B6FD852BF53FCF00BB7DF1 /* registered-blocked-contact.jsonproto in Resources */ = {isa = PBXBuildFile; fileRef = D9B6FD7C2BF53C0100BB7DF1 /* registered-blocked-contact.jsonproto */; };
D9B8541229137C150058F97B /* JobRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B8541129137C150058F97B /* JobRecord.swift */; };
D9B95A9629E6830B00D7CB95 /* JobRecordTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B95A9429E682E900D7CB95 /* JobRecordTest.swift */; };
D9B95A9829E8906200D7CB95 /* OWSDeviceTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B95A9729E8906200D7CB95 /* OWSDeviceTest.swift */; };
@@ -4572,6 +4575,12 @@
D91AC93F2B63393300814975 /* OWSGroupCallMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OWSGroupCallMessage.swift; sourceTree = "<group>"; };
D91F0B4B2B1939B60086DB30 /* GroupCallRecordRingUpdateDelegateTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupCallRecordRingUpdateDelegateTest.swift; sourceTree = "<group>"; };
D91F7A2C2935A32F00012C64 /* DonationMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DonationMode.swift; sourceTree = "<group>"; };
D9247E982BFBED2A00DFEF6F /* registered-blocked-contact.jsonproto */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "registered-blocked-contact.jsonproto"; path = "Signal-Message-Backup-Tests/test-cases/registered-blocked-contact.jsonproto"; sourceTree = "<group>"; };
D9247E992BFBED2A00DFEF6F /* unregistered-contact.jsonproto */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "unregistered-contact.jsonproto"; path = "Signal-Message-Backup-Tests/test-cases/unregistered-contact.jsonproto"; sourceTree = "<group>"; };
D9247E9A2BFBED2A00DFEF6F /* account-data.jsonproto */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "account-data.jsonproto"; path = "Signal-Message-Backup-Tests/test-cases/account-data.jsonproto"; sourceTree = "<group>"; };
D9247E9B2BFBED2A00DFEF6F /* account-data.binproto */ = {isa = PBXFileReference; lastKnownFileType = file; name = "account-data.binproto"; path = "Signal-Message-Backup-Tests/test-cases/account-data.binproto"; sourceTree = "<group>"; };
D9247E9C2BFBED2A00DFEF6F /* unregistered-contact.binproto */ = {isa = PBXFileReference; lastKnownFileType = file; name = "unregistered-contact.binproto"; path = "Signal-Message-Backup-Tests/test-cases/unregistered-contact.binproto"; sourceTree = "<group>"; };
D9247E9D2BFBED2A00DFEF6F /* registered-blocked-contact.binproto */ = {isa = PBXFileReference; lastKnownFileType = file; name = "registered-blocked-contact.binproto"; path = "Signal-Message-Backup-Tests/test-cases/registered-blocked-contact.binproto"; sourceTree = "<group>"; };
D925937928B0497900D5D437 /* LocalUserLeaveGroupJob.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalUserLeaveGroupJob.swift; sourceTree = "<group>"; };
D925C7BA2B7BEC0F00AC73B0 /* OutgoingCallLogEventSyncMessageTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingCallLogEventSyncMessageTest.swift; sourceTree = "<group>"; };
D925F5502983399D00158EE4 /* CircleButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircleButton.swift; sourceTree = "<group>"; };
@@ -4696,9 +4705,6 @@
D9AE0ADA29188A170063488B /* LegacyMessageDecryptJobRecord.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyMessageDecryptJobRecord.swift; sourceTree = "<group>"; };
D9AE0ADC2918B2960063488B /* JobRecord+Columns.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JobRecord+Columns.swift"; sourceTree = "<group>"; };
D9B0AC7329EF42960070F31C /* TSInfoMessage+DisplayableGroupUpdateItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TSInfoMessage+DisplayableGroupUpdateItem.swift"; sourceTree = "<group>"; };
D9B6FD742BF2B94A00BB7DF1 /* account-data.jsonproto */ = {isa = PBXFileReference; lastKnownFileType = text; path = "account-data.jsonproto"; sourceTree = "<group>"; };
D9B6FD782BF40A7200BB7DF1 /* unregistered-contact.jsonproto */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "unregistered-contact.jsonproto"; sourceTree = "<group>"; };
D9B6FD7C2BF53C0100BB7DF1 /* registered-blocked-contact.jsonproto */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "registered-blocked-contact.jsonproto"; sourceTree = "<group>"; };
D9B8541129137C150058F97B /* JobRecord.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JobRecord.swift; sourceTree = "<group>"; };
D9B91D8D2B17E2A600BCB11A /* GroupCallRecordRingUpdateDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupCallRecordRingUpdateDelegate.swift; sourceTree = "<group>"; };
D9B95A9429E682E900D7CB95 /* JobRecordTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JobRecordTest.swift; sourceTree = "<group>"; };
@@ -9337,6 +9343,19 @@
path = Megaphones;
sourceTree = "<group>";
};
D9247E4F2BFBE9B400DFEF6F /* TestCases */ = {
isa = PBXGroup;
children = (
D9247E9B2BFBED2A00DFEF6F /* account-data.binproto */,
D9247E9A2BFBED2A00DFEF6F /* account-data.jsonproto */,
D9247E9D2BFBED2A00DFEF6F /* registered-blocked-contact.binproto */,
D9247E982BFBED2A00DFEF6F /* registered-blocked-contact.jsonproto */,
D9247E9C2BFBED2A00DFEF6F /* unregistered-contact.binproto */,
D9247E992BFBED2A00DFEF6F /* unregistered-contact.jsonproto */,
);
name = TestCases;
sourceTree = "<group>";
};
D925F55C298C6A6000158EE4 /* Usernames */ = {
isa = PBXGroup;
children = (
@@ -9585,16 +9604,6 @@
path = Individual;
sourceTree = "<group>";
};
D9B6FD732BF2B92000BB7DF1 /* TestCases */ = {
isa = PBXGroup;
children = (
D9B6FD742BF2B94A00BB7DF1 /* account-data.jsonproto */,
D9B6FD7C2BF53C0100BB7DF1 /* registered-blocked-contact.jsonproto */,
D9B6FD782BF40A7200BB7DF1 /* unregistered-contact.jsonproto */,
);
path = TestCases;
sourceTree = "<group>";
};
D9B95A9329E682CA00D7CB95 /* JobRecords */ = {
isa = PBXGroup;
children = (
@@ -9627,7 +9636,7 @@
D9C964152BE56DE20058F143 /* MessageBackup */ = {
isa = PBXGroup;
children = (
D9B6FD732BF2B92000BB7DF1 /* TestCases */,
D9247E4F2BFBE9B400DFEF6F /* TestCases */,
D9C964182BE59E270058F143 /* MessageBackupIntegrationTest.swift */,
D9C964162BE56DFB0058F143 /* MessageBackupIntegrationTestCase.swift */,
);
@@ -12019,13 +12028,16 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D9B6FD752BF2B94A00BB7DF1 /* account-data.jsonproto in Resources */,
D9B6FD852BF53FCF00BB7DF1 /* registered-blocked-contact.jsonproto in Resources */,
D9247EA12BFBED2A00DFEF6F /* account-data.binproto in Resources */,
D9247EA02BFBED2A00DFEF6F /* account-data.jsonproto in Resources */,
D9247EA32BFBED2A00DFEF6F /* registered-blocked-contact.binproto in Resources */,
D9247E9E2BFBED2A00DFEF6F /* registered-blocked-contact.jsonproto in Resources */,
F942628B289B1B5600460798 /* sample-sticker.encrypted in Resources */,
F942628C289B1B5600460798 /* sample-sticker.webp in Resources */,
F908AA7D28CE629700472E68 /* test-apng.png in Resources */,
F927478828CFE9B10056EAFE /* test-png.png in Resources */,
D9B6FD7A2BF40A7200BB7DF1 /* unregistered-contact.jsonproto in Resources */,
D9247EA22BFBED2A00DFEF6F /* unregistered-contact.binproto in Resources */,
D9247E9F2BFBED2A00DFEF6F /* unregistered-contact.jsonproto in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@@ -11,17 +11,10 @@ import XCTest
private extension MessageBackupIntegrationTestCase {
var depBridge: DependenciesBridge { .shared }
func skipTestForNow() throws {
// [Backup] TODO: unwind this once we've codified shared integration test cases.
throw XCTSkip("Skipped while we codify shared integration test cases.")
}
}
final class MessageBackupAccountDataTest: MessageBackupIntegrationTestCase {
func testAccountData() async throws {
try skipTestForNow()
try await runTest(backupName: "account-data") { sdsTx, tx in
XCTAssertNotNil(profileManager.localProfileKey())
@@ -100,8 +93,6 @@ final class MessageBackupContactTest: MessageBackupIntegrationTestCase {
}
func testRegisteredBlockedContact() async throws {
try skipTestForNow()
try await runTest(backupName: "registered-blocked-contact") { sdsTx, tx in
let allRecipients = depBridge.recipientDatabaseTable.allRecipients(tx: tx)
XCTAssertEqual(allRecipients.count, 1)
@@ -120,8 +111,6 @@ final class MessageBackupContactTest: MessageBackupIntegrationTestCase {
}
func testUnregisteredContact() async throws {
try skipTestForNow()
try await runTest(backupName: "unregistered-contact") { sdsTx, tx in
let allRecipients = depBridge.recipientDatabaseTable.allRecipients(tx: tx)
XCTAssertEqual(allRecipients.count, 1)

View File

@@ -1,9 +0,0 @@
#!/usr/bin/env zsh
if [ "$#" -ne 1 ]; then
length=32
else
length="$1"
fi
openssl rand -base64 "$length"

View File

@@ -1,6 +0,0 @@
#!/usr/bin/env zsh
uuid=$(uuidgen)
echo "UUID: $uuid"
echo "UUID Base64: $(echo $uuid | xxd -r -p | base64)"

View File

@@ -1,42 +0,0 @@
[
{
"version": "1",
"backupTimeMs": "1715636551000"
},
{
"account": {
"profileKey": "YQKRq+3DQklInaOaMcmlzZnN0m/1hzLiaONX7gB12dg=",
"username": "boba_fett.66",
"usernameLink": {
"entropy": "ZWdcc9AOsBAF47t8SkfylstlVPeJgSOIFekV2CT9LpM=",
"serverId": "YcEBogDVQheJwgUY2El68A==",
"color": "OLIVE"
},
"givenName": "Boba",
"familyName": "Fett",
"avatarUrlPath": "",
"subscriberId": "7LtoxzQzGi6jM82nR8mMRVNlImFYK0/OWuDeqE3OZRk=",
"subscriberCurrencyCode": "USD",
"subscriptionManuallyCancelled": true,
"accountSettings": {
"readReceipts": true,
"sealedSenderIndicators": true,
"typingIndicators": true,
"linkPreviews": false,
"notDiscoverableByPhoneNumber": true,
"preferContactAvatars": true,
"universalExpireTimer": 3600,
"preferredReactionEmoji": ["🏎️"],
"displayBadgesOnProfile": true,
"keepMutedChatsArchived": true,
"hasSetMyStoriesPrivacy": true,
"hasViewedOnboardingStory": true,
"storiesDisabled": true,
"storyViewReceiptsEnabled": true,
"hasSeenGroupStoryEducationSheet": true,
"hasCompletedUsernameOnboarding": true,
"phoneNumberSharingMode": "NOBODY"
}
}
}
]

View File

@@ -1,74 +0,0 @@
[
{
"version": "1",
"backupTimeMs": "1715636551000"
},
{
"account": {
"profileKey": "YQKRq+3DQklInaOaMcmlzZnN0m/1hzLiaONX7gB12dg=",
"givenName": "Boba",
"familyName": "Fett",
"avatarUrlPath": "",
"subscriberId": "",
"subscriberCurrencyCode": "",
"subscriptionManuallyCancelled": false,
"accountSettings": {
"readReceipts": false,
"sealedSenderIndicators": true,
"typingIndicators": false,
"linkPreviews": false,
"notDiscoverableByPhoneNumber": false,
"preferContactAvatars": false,
"universalExpireTimer": 0,
"preferredReactionEmoji": [],
"displayBadgesOnProfile": false,
"keepMutedChatsArchived": false,
"hasSetMyStoriesPrivacy": false,
"hasViewedOnboardingStory": false,
"storiesDisabled": false,
"storyViewReceiptsEnabled": false,
"hasSeenGroupStoryEducationSheet": false,
"hasCompletedUsernameOnboarding": false,
"phoneNumberSharingMode": "NOBODY"
}
}
},
{
"recipient": {
"id": "1",
"self": {}
}
},
{
"recipient": {
"id": "2",
"contact": {
"aci": "QHaZXgUxQEKp5B5np33zWA==",
"pni": "JvwCorpYSn2wgZ2iOXFXCg==",
"username": "han_solo.44",
"e164": "17735550199",
"blocked": true,
"hidden": true,
"registered": "REGISTERED",
"unregisteredTimestamp": 0,
"profileKey": "nH0NX5+LqtIe85lAy958oyRNH9INMHFn2eb1VF6i4/o=",
"profileSharing": false,
"profileGivenName": "Han",
"profileFamilyName": "Solo",
"hideStory": true
}
}
},
{
"chat": {
"id": "1",
"recipientId": "1"
}
},
{
"chat": {
"id": "2",
"recipientId": "2"
}
}
]

View File

@@ -1,74 +0,0 @@
[
{
"version": "1",
"backupTimeMs": "1715636551000"
},
{
"account": {
"profileKey": "YQKRq+3DQklInaOaMcmlzZnN0m/1hzLiaONX7gB12dg=",
"givenName": "Boba",
"familyName": "Fett",
"avatarUrlPath": "",
"subscriberId": "",
"subscriberCurrencyCode": "",
"subscriptionManuallyCancelled": false,
"accountSettings": {
"readReceipts": false,
"sealedSenderIndicators": true,
"typingIndicators": false,
"linkPreviews": false,
"notDiscoverableByPhoneNumber": false,
"preferContactAvatars": false,
"universalExpireTimer": 0,
"preferredReactionEmoji": [],
"displayBadgesOnProfile": false,
"keepMutedChatsArchived": false,
"hasSetMyStoriesPrivacy": false,
"hasViewedOnboardingStory": false,
"storiesDisabled": false,
"storyViewReceiptsEnabled": false,
"hasSeenGroupStoryEducationSheet": false,
"hasCompletedUsernameOnboarding": false,
"phoneNumberSharingMode": "NOBODY"
}
}
},
{
"recipient": {
"id": "1",
"self": {}
}
},
{
"recipient": {
"id": "2",
"contact": {
"aci": "QHaZXgUxQEKp5B5np33zWA==",
"pni": "JvwCorpYSn2wgZ2iOXFXCg==",
"username": "han_solo.44",
"e164": "17735550199",
"blocked": false,
"hidden": false,
"registered": "NOT_REGISTERED",
"unregisteredTimestamp": 1713157772000,
"profileKey": "nH0NX5+LqtIe85lAy958oyRNH9INMHFn2eb1VF6i4/o=",
"profileSharing": true,
"profileGivenName": "Han",
"profileFamilyName": "Solo",
"hideStory": true
}
}
},
{
"chat": {
"id": "1",
"recipientId": "1"
}
},
{
"chat": {
"id": "2",
"recipientId": "2"
}
}
]